weterynarzfred/local-tts-server

0

stars

9

commits

Python

primary language

May 10, 2026

updated

README

TTS

A quick local text-to-speech web UI. Three engines, multi-voice speaker tags, MP3 output.

screenshot

Engines

EngineSpeedMethod
Chatterboxslowvoice cloning from audio sample
Kokoro 82Mfastpre-trained voice models
Qwen3 VoiceDesignvery slowtext description → voice

Requirements

  • Python 3.10+
  • Node.js
  • CUDA GPU (strongly recommended)
  • ffmpeg on PATH

Setup

setup.bat

Downloads model weights automatically on first use (~300 MB for Kokoro, larger for Chatterbox/Qwen3).

Run

run.bat

Opens http://localhost:3776 in your default browser.

Voice samples (Chatterbox)

Drop .mp3/.wav files into voice_samples/ — they appear in the voice dropdown.

Speaker tags

Instead of using the voice dropdown, you can insert [name] tags anywhere in the text to switch voices mid-generation:

[geralt] Some text in Geralt's voice.
[narrator] Back to the narrator.

For Qwen3, define a voice on first use with a description:

[narrator: Calm professional male narrator, slight British accent]
Text here...

The sample is saved to voice_samples/qwen3/ and reused in future generations. Generating again with a tag that includes description will override the saved voice.

Contributors

weterynarzfred/local-tts-server

0

stars

9

commits

Python

primary language

May 10, 2026

updated

README

TTS

A quick local text-to-speech web UI. Three engines, multi-voice speaker tags, MP3 output.

screenshot

Engines

EngineSpeedMethod
Chatterboxslowvoice cloning from audio sample
Kokoro 82Mfastpre-trained voice models
Qwen3 VoiceDesignvery slowtext description → voice

Requirements

  • Python 3.10+
  • Node.js
  • CUDA GPU (strongly recommended)
  • ffmpeg on PATH

Setup

setup.bat

Downloads model weights automatically on first use (~300 MB for Kokoro, larger for Chatterbox/Qwen3).

Run

run.bat

Opens http://localhost:3776 in your default browser.

Voice samples (Chatterbox)

Drop .mp3/.wav files into voice_samples/ — they appear in the voice dropdown.

Speaker tags

Instead of using the voice dropdown, you can insert [name] tags anywhere in the text to switch voices mid-generation:

[geralt] Some text in Geralt's voice.
[narrator] Back to the narrator.

For Qwen3, define a voice on first use with a description:

[narrator: Calm professional male narrator, slight British accent]
Text here...

The sample is saved to voice_samples/qwen3/ and reused in future generations. Generating again with a tag that includes description will override the saved voice.

Contributors

Languages

Python

47.9%

JavaScript

30.4%

CSS

12.3%

HTML

6.6%

Batchfile

2.8%