Skip to content

Chatterbox TTS

Use servers/tts/chatterbox/server.py for a fast, multilingual TTS voice cloning endpoint. It defaults to Chatterbox-Turbo, preserving bracket delivery tags and fast inference.

Run these commands from the TomoriBot repo root, the folder where you cloned TomoriBot:

Terminal window
python -m venv servers\tts\chatterbox\.venv
servers\tts\chatterbox\.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
pip install numpy
pip install -r servers\tts\chatterbox\requirements.txt
python servers\tts\chatterbox\server.py
Terminal window
python3 -m venv servers/tts/chatterbox/.venv
source servers/tts/chatterbox/.venv/bin/activate
python -m pip install --upgrade pip
python -m pip install numpy
python -m pip install -r servers/tts/chatterbox/requirements.txt
python servers/tts/chatterbox/server.py

Keep that terminal open while TomoriBot is using Chatterbox. The default endpoint URL is http://127.0.0.1:8011.

Run /provider custom-endpoint add:

  • capability: speech
  • api_style: tts-clone
  • endpoint_url: http://127.0.0.1:8011

In the modal:

  • Voice Source Mode: Clone
  • Script Markup Style: Bracket Tags

Registration makes the endpoint active immediately. Use /model speech later only when switching between speech endpoints.

  1. Prepare a clean 10-20 second voice clip with one speaker and no background music.
  2. Run /speech voice-add and upload the clip.
  3. Run /speech voice-assign, then choose the persona and the voice sample.

Chatterbox can use bracket delivery tags such as [laugh] and [sigh] when Turbo mode is enabled.

Use /speech chatterbox parameters to tune the Chatterbox request payload:

  • turbo defaults to true. When enabled, TomoriBot keeps supported Chatterbox-Turbo event tags and strips unsupported bracket descriptors before the wrapper uses ChatterboxTurboTTS.model.generate(...).
  • cfg_weight defaults to 0.5. Minimum is 0; TomoriBot does not set a hard maximum. It only applies when turbo is false; lower values can help slow fast reference voices, while higher values follow the reference more strongly.
  • exaggeration defaults to 0.5. Minimum is 0; TomoriBot does not set a hard maximum. It only applies when turbo is false; higher values make delivery more expressive or dramatic and may speed speech up.

Supported Turbo event tags are [clear throat], [sigh], [shush], [cough], [groan], [sniff], [gasp], [chuckle], and [laugh]. Unsupported descriptors such as [stammers], [blushes], or [smiles] are stripped instead of being sent to TTS.

When turbo is disabled, TomoriBot strips all bracket descriptors before sending text to TTS, then the wrapper lazily loads the standard ChatterboxTTS model and calls model.generate(..., cfg_weight, exaggeration).