Minimal FastAPI wrapper around Chatterbox TTS with:
POST /v1/audio/speechGET /v1/modelsGET /health- startup model loading
- default, Hugging Face repo, and local model loading
- non-streaming WAV responses and SSE streaming
- per-response usage metadata:
input_charsand audio duration
git clone https://github.com/travisvn/chatterbox-tts-api
cd chatterbox-tts-api
cp .env.example .env
uv sync
uv run uvicorn app.main:app --host 0.0.0.0 --port 4123Or with pip:
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
uvicorn app.main:app --host 0.0.0.0 --port 4123curl -X POST http://localhost:4123/v1/audio/speech \
-H "Content-Type: application/json" \
-d '{"input":"Hello from Chatterbox"}' \
--output speech.wav -iResponse headers include:
X-Usage-Input-CharsX-Usage-Audio-Seconds
curl -X POST http://localhost:4123/v1/audio/speech \
-H "Content-Type: application/json" \
-H "Accept: text/event-stream" \
-d '{"input":"Hello from Chatterbox","stream_format":"sse"}'The final speech.audio.done event includes:
usage.input_charsusage.audio_seconds
curl http://localhost:4123/v1/modelscurl http://localhost:4123/healthImportant settings:
VOICE_SAMPLE_PATHDEVICEMODEL_SOURCEMODEL_CLASSMODEL_REPO_IDMODEL_LOCAL_PATHMODEL_SUPPORTED_LANGUAGESDEFAULT_LANGUAGEEXAGGERATIONCFG_WEIGHTTEMPERATUREMAX_CHUNK_LENGTHMAX_TOTAL_LENGTH
See .env.example and .env.example.docker for full examples.
MODEL_SOURCE=default
USE_MULTILINGUAL_MODEL=trueMODEL_SOURCE=hf_repo
MODEL_CLASS=multilingual
MODEL_REPO_ID=CoRal-project/roest-v3-chatterbox-500m
MODEL_SUPPORTED_LANGUAGES=da,en
DEFAULT_LANGUAGE=daMODEL_SOURCE=local_dir
MODEL_CLASS=multilingual
MODEL_LOCAL_PATH=./models/coral-roest-v3
MODEL_SUPPORTED_LANGUAGES=da,en
DEFAULT_LANGUAGE=daOne maintained GPU-capable Dockerfile is provided in docker/Dockerfile.
Build and run it directly:
docker build -f docker/Dockerfile -t chatterbox-tts-api .
docker run --rm -p 4123:4123 \
-v "$PWD/voice-sample.mp3:/app/voice-sample.mp3:ro" \
chatterbox-tts-apidocs/API_README.mddocs/STREAMING_API.mddocs/MULTILINGUAL.mddocs/DOCKER_README.md
python tests/run_tests.py