How to use from the
Use from the
Chatterbox library
# 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)

chatterbox-turbo-lora

LoRA-aware ONNX export of the complete Chatterbox-Turbo TTS pipeline, quantized to q4f16 for on-device inference (Android / iOS via ORT).

The language_model subgraph is a custom fork that exposes 192 extra input ports so a PEFT-trained LoRA adapter can be bound at runtime. The other three subgraphs (speech_encoder, embed_tokens, conditional_decoder) are byte-identical mirrors of the corresponding files from ResembleAI/chatterbox-turbo-ONNX/onnx/, hosted here so an on-device app has a single-repo source for the full pipeline.

What's new in v2.0.0

v1.0.0 of the language-model subgraph had no LoRA input ports โ€” adapter weights could not be bound at runtime. v2.0.0 wraps every Conv1D projection inside the transformer (attn.c_attn, attn.c_proj, mlp.c_fc, mlp.c_proj) in a LoraConv1D that exposes two extra input tensors per layer:

lora.layers.{N}.{attn_c_attn|attn_c_proj|mlp_c_fc|mlp_c_proj}.{A|B}

โ†’ 24 layers ร— 4 projections ร— 2 tensors = 192 extra graph inputs.

At inference time the host runtime binds a PEFT-trained LoRA adapter (rank, scaling baked in) to these inputs via the ONNX Runtime OrtLoraAdapter API. Unbound inputs default to zero-sized initializers so the graph still runs without any adapter loaded โ€” the base voice synthesizes as-is.

Files

Four subgraphs, each a .onnx protobuf + a .onnx_data external weight blob. Every .onnx file references its .onnx_data companion by relative filename, so both files of a pair must be downloaded and kept next to each other.

File Size Purpose Source
speech_encoder_q4f16.onnx ~1.2 MB Extracts speaker embedding + audio tokens from a voiceprint clip Mirrored from upstream
speech_encoder_q4f16.onnx_data ~169 MB External weights Mirrored from upstream
embed_tokens_q4f16.onnx ~2.5 KB Token embedding lookup Mirrored from upstream
embed_tokens_q4f16.onnx_data ~32 MB External weights Mirrored from upstream
language_model_q4f16.onnx ~0.8 MB Autoregressive LM with LoRA input ports (see above) Custom (v2.0.0)
language_model_q4f16.onnx_data ~222 MB External weights Custom (v2.0.0)
conditional_decoder_q4f16.onnx ~2.3 MB Speech-token โ†’ waveform vocoder Mirrored from upstream
conditional_decoder_q4f16.onnx_data ~155 MB External weights Mirrored from upstream

Total: ~581 MB.

Quantization details

  • Format: q4f16 (4-bit asymmetric weights + fp16 scales)
  • Block size: 32 (matches Chatterbox's original 1.0.0 layout)
  • Quantizer: onnxruntime.quantization.MatMulNBitsQuantizer
  • Excluded from quantization (language_model only): all 192 LoRA-path MatMul/Add nodes (kept fp32 so adapter weights can be hot-swapped without retraining scales)
  • The 96 GPT-2 projection layers in language_model are first rewritten from Gemm โ†’ MatMul + Add so they fall inside the quantizer's coverage; without this step the file would stay at ~1.2 GB.

Embedding tables (wte, wpe) remain fp32 because they are read via Gather, not MatMul, and MatMulNBitsQuantizer does not touch them.

The three mirrored subgraphs (speech_encoder, embed_tokens, conditional_decoder) use whatever quantization the upstream ResembleAI build applied. They are bit-for-bit identical to ResembleAI/chatterbox-turbo-ONNX/onnx/*_q4f16.onnx{,_data} โ€” you can verify with sha256 against the upstream repo.

License

MIT, inherited from the upstream Chatterbox project.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for Dvirile/chatterbox-turbo-lora

Adapter
(9)
this model