Instructions to use BricksDisplay/Chatterbox-Multilingual-TTS-GGUF with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Chatterbox
How to use BricksDisplay/Chatterbox-Multilingual-TTS-GGUF with Chatterbox:
# pip install chatterbox-tts import torchaudio as ta from chatterbox.tts import ChatterboxTTS model = ChatterboxTTS.from_pretrained(device="cuda") text = "Ezreal and Jinx teamed up with Ahri, Yasuo, and Teemo to take down the enemy's Nexus in an epic late-game pentakill." wav = model.generate(text) ta.save("test-1.wav", wav, model.sr) # If you want to synthesize with a different voice, specify the audio prompt AUDIO_PROMPT_PATH="YOUR_FILE.wav" wav = model.generate(text, audio_prompt_path=AUDIO_PROMPT_PATH) ta.save("test-2.wav", wav, model.sr) - Notebooks
- Google Colab
- Kaggle
Chatterbox Multilingual — GGUF
ResembleAI's Chatterbox Multilingual: expressive speech in 23 languages, with voice cloning.
Two files make one model, as with llama.cpp's multimodal projectors: the model file is the text-to-speech LM backbone, run by llama.cpp; the codec file holds the audio side (decoder / vocoder, speaker encoders and the adaptor between the two), run by codec.cpp. The runtimes below wire the two graphs together, on CPU or GPU (CUDA, Vulkan, Metal), fully offline.
Files
Every run needs one model file + one codec file from this repo.
--backbone |
--model (codec) |
Total | |
|---|---|---|---|
| Recommended | chatterbox-mtl-t3-q8_0.gguf |
chatterbox-mtl-codec-q8_0.gguf |
854 MB |
| Smallest | chatterbox-mtl-t3-q4_k_m.gguf |
chatterbox-mtl-codec-q4_k_m.gguf |
494 MB |
| Best quality | chatterbox-mtl-t3-f16.gguf |
chatterbox-mtl-codec-f16.gguf |
1.6 GB |
chatterbox-mtl-s3t.gguf is only for codec.cpp builds older than 2026-10; current codec files include it.
Other files
| File | Size |
|---|---|
chatterbox-mtl-codec-f32.gguf |
1.2 GB |
chatterbox-mtl-codec-q5_k_m.gguf |
224 MB |
chatterbox-mtl-s3t.gguf |
247 MB |
chatterbox-mtl-t3-bf16.gguf |
1.0 GB |
chatterbox-mtl-t3-f32.gguf |
2.0 GB |
chatterbox-mtl-t3-q2_k.gguf |
185 MB |
chatterbox-mtl-t3-q3_k_l.gguf |
265 MB |
chatterbox-mtl-t3-q3_k_m.gguf |
242 MB |
chatterbox-mtl-t3-q3_k_s.gguf |
217 MB |
chatterbox-mtl-t3-q4_0.gguf |
283 MB |
chatterbox-mtl-t3-q4_1.gguf |
315 MB |
chatterbox-mtl-t3-q4_k_s.gguf |
285 MB |
chatterbox-mtl-t3-q5_0.gguf |
346 MB |
chatterbox-mtl-t3-q5_1.gguf |
378 MB |
chatterbox-mtl-t3-q5_k_m.gguf |
356 MB |
chatterbox-mtl-t3-q5_k_s.gguf |
346 MB |
chatterbox-mtl-t3-q6_k.gguf |
413 MB |
Command line (codec.cpp)
With codec.cpp's tts-cli (build it; it bundles llama.cpp), then:
hf download BricksDisplay/Chatterbox-Multilingual-TTS-GGUF chatterbox-mtl-t3-q8_0.gguf chatterbox-mtl-codec-q8_0.gguf --local-dir Chatterbox-Multilingual-TTS
./build/tts-cli synthesize --backbone Chatterbox-Multilingual-TTS/chatterbox-mtl-t3-q8_0.gguf --model Chatterbox-Multilingual-TTS/chatterbox-mtl-codec-q8_0.gguf \
--text "[en]hello, this is chatterbox speaking." --output out.wav
Clone a voice from a few seconds of clean speech (it works across languages):
./build/tts-cli synthesize ... --ref-audio my_voice.wav --text "[en]hello there." --output out.wav
All tts-cli options (voices, voice cloning, sampling, GPU) are described in the codec.cpp README.
Python
The codec_cpp package runs the same pipeline (it builds codec.cpp with its
bundled llama.cpp, so it needs CMake and a C++ compiler):
pip install "codec-cpp @ git+https://github.com/mybigday/codec.cpp" huggingface_hub soundfile
import codec_cpp, soundfile
from huggingface_hub import hf_hub_download
tts = codec_cpp.TTS(hf_hub_download("BricksDisplay/Chatterbox-Multilingual-TTS-GGUF", "chatterbox-mtl-t3-q8_0.gguf"),
hf_hub_download("BricksDisplay/Chatterbox-Multilingual-TTS-GGUF", "chatterbox-mtl-codec-q8_0.gguf"))
audio, sr = tts.synthesize("[en]hello, this is chatterbox speaking.")
soundfile.write("out.wav", audio, sr)
tts.voices() lists the builtin voices; ref_audio= clones a voice where the
model supports it; tts.stream(text) yields audio as it is generated. More in
the Python docs.
React Native (llama.rn)
llama.rn loads the same two files on iOS and Android:
const ctx = await initLlama({ model: 'chatterbox-mtl-t3-q8_0.gguf', embedding: true })
await ctx.initVocoder({ path: 'chatterbox-mtl-codec-q8_0.gguf' })
const { prompt, grammar, embedding, flow } = await ctx.getFormattedAudioCompletion({
prompt: 'Hello world',
})
const result = await ctx.completion({ prompt, grammar, embedding })
const pcm = flow === 'continuous_embd'
? await ctx.decodeAudioEmbeddings(result.embeddings, result.embedding_dim)
: await ctx.decodeAudioTokens(result.audio_tokens)
Voice cloning, saved voices and per-model notes: llama.rn TTS docs.
Input text
Prepare the text as upstream MTLTokenizer does:
- lowercase it and apply Unicode NFKD normalization,
- for Japanese, convert to hiragana; for Chinese, convert to Cangjie codes (plain Chinese characters are not pronounced correctly),
- prefix the language tag:
[en],[fr],[de],[es],[ja],[zh], …
import unicodedata
text = "[es]" + unicodedata.normalize("NFKD", "Hola, ¿cómo estás hoy?".lower())
Skipping NFKD makes accented letters (é, ó, ü, …) come out wrong.
Voices
- Builtin voice:
default. - Voice cloning:
--ref-audiowith any short, clean clip. Save it with--save-speakerto reuse it without the clip.
License
mit, the same as the original model.
- Downloads last month
- 1,591
Model tree for BricksDisplay/Chatterbox-Multilingual-TTS-GGUF
Base model
ResembleAI/chatterbox