Views
No views yet
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.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:OrtLoraAdapter API. Unbound inputs default to zero-sized initializers
so the graph still runs without any adapter loaded — the base voice
synthesizes as-is..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 |
onnxruntime.quantization.MatMulNBitsQuantizerMatMul/Add nodes (kept fp32 so adapter weights can be hot-swapped
without retraining scales)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.wte, wpe) remain fp32 because they are read via
Gather, not MatMul, and MatMulNBitsQuantizer does not touch them.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.