FluidInference/chatterbox-multilingual-coreml
Chatterbox Multilingual — CoreML
CoreML export of ResembleAI/chatterbox multilingual (23 languages, t3_mtl23ls_v2 + s3gen) for Apple platforms, converted by FluidInference (conversion toolkit: mobius PR #89).
Each model ships as both .mlpackage (source) and compiled .mlmodelc.
Models
⚠️ Do not load the T3 packages with .cpuOnly — prediction hard-crashes (also independently reported by other Chatterbox CoreML ports). Use .cpuAndGPU or .all.
Samples
`samples/` has CoreML end-to-end renders (e2e_*.wav) next to stock PyTorch renders (baseline_*.wav) for en/de/fr, all using the built-in voice.
To synthesize locally without the upstream checkpoint (Apple silicon):
git clone -b feat/chatterbox-mtl-coreml https://github.com/FluidInference/mobius
cd mobius/models/tts/chatterbox/coreml
uv sync
uv run python verify/e2e_coreml.py --lang en # models auto-download from this repoRuntime boundary
The graphs cover T3 prefill/decode (with the multilingual alignment-analyzer attention rows as outputs), the S3Gen flow, and the HiFT vocoder. The host runtime must provide:
- text normalization + tokenization (
tokenizer/) - embedding prep from
tables.safetensors(text/speech + positional; the stock prefill context ends with two BOS embeds — replicate exactly) - CFG combine
cond + w*(cond-uncond), repetition penalty, min-p/top-p, sampling, EOS handling - the
AlignmentStreamAnalyzerheuristics, fed by the exportedalign_attnrows (reference port:verify/analyzer_port.pyin the conversion toolkit) - SineGen randomness (
phase_vec,noiseinputs to HiFT) and CFM noisez - flow bucket padding/cropping; MLState seeding from prefill KV for the stateful decode
Voice cloning from a reference wav additionally needs the VoiceEncoder / S3TokenizerV2 / CAMPPlus encoders, which are not converted here; voices can be prepared offline in Python (export-tables.py --ref-wav) and shipped as voice-*.safetensors.
Parity (vs upstream PyTorch)
License
MIT, following upstream ResembleAI/chatterbox. Upstream embeds Resemble's Perth watermarker in its Python pipeline; this CoreML export does not include a watermarking stage.
