Loading…
Loading…
ResembleAI/chatterboxT3LM.mlpackage/Data/com.apple.CoreML/weights/weight.bin 537 MBS3CFM.mlpackage/Data/com.apple.CoreML/weights/weight.bin 143 MBS3Tokenizer.mlpackage/Data/com.apple.CoreML/weights/weight.bin 130 MBS3Encoder.mlpackage/Data/com.apple.CoreML/weights/weight.bin 93 MBS3Vocoder.mlpackage/Data/com.apple.CoreML/weights/weight.bin 35 MBCAMPPlus.mlpackage/Data/com.apple.CoreML/weights/weight.bin 29 MBMatchaMel.mlpackage/Data/com.apple.CoreML/weights/weight.bin 8 MBVELSTM.mlpackage/Data/com.apple.CoreML/weights/weight.bin 6 MBVEMel.mlpackage/Data/com.apple.CoreML/weights/weight.bin 338 kBdefault-conds.safetensors 104 kBOn-device Apple Silicon build of
ResembleAI's multilingual Chatterbox
(t3_mtl23ls_v3, 23 languages) for iOS 18+ / macOS 15+, arm64. The whole
pipeline is CoreML; T3 prefill + decode run on the Apple Neural Engine and
the S3Gen synth on ANE + GPU. v1 retains full multilingual capability and is
validated/tuned on Russian (on-device, ear-checked, iPhone 17 Pro Max /
iOS 26.5.1).
All 23 languages generate speech with upstream's own per-language demo prompts (checked for plausible output length, not ear-checked outside Russian).
Turbo (English, GPT-2) sibling: iliasaz/chatterbox-turbo-coreml.
The multilingual T3 is a different transformer, not a re-export:
wpe, LayerNorm, GELU).logits = cond + cfg·(cond − uncond).U+0301 override / dictionary fallback.| File | What | Compute |
|---|---|---|
T3LM.mlpackage |
T3 prefill + decode, multifunction, shared MLState KV cache, 8-bit palettized (per_grouped_channel) |
CoreML — ANE (prefill+decode) |
S3Encoder.mlpackage |
flow encoder: speech tokens → mel mu (re-exported for the multilingual flow) |
CoreML — ANE |
S3CFM.mlpackage |
conditional flow-matching solver — non-meanflow, 10-step cosine CFG (two predicts/step) | CoreML — GPU |
S3Vocoder.mlpackage |
mel → 24 kHz waveform | CoreML — GPU |
CAMPPlus, MatchaMel, VEMel, VELSTM, S3Tokenizer .mlpackage |
on-device voice-cloning conditioning encoders | CoreML |
perceiver_*.npy |
Perceiver-resampler weights (host-side cond block) | — |
speech_emb.npy, speech_pos_emb.npy, text_emb.npy, text_pos_emb.npy |
embedding + learned position tables | — |
spkr_enc_*.npy, emotion_adv_fc_weight.npy |
speaker + emotion conditioning | — |
default-conds.safetensors, tokenizer.json, tokenizer_config.json |
default voice + grapheme tokenizer | — |
The presence of perceiver_query.npy is how the consumer app auto-detects the
multilingual variant.
text (+ optional Russian stress) → grapheme BPE → host-assemble inputs_embeds
(speaker + Perceiver(32) + emotion + text) + position_ids + masks
→ T3LM "prefill" (CoreML, ANE) — batch-2 CFG, writes shared KV state
→ T3LM "decode" (CoreML, ANE) — autoregressive, host CFG combine per step
→ S3Encoder (ANE) → S3CFM 10-step CFG (GPU) → S3Vocoder (GPU) — 24 kHz waveform
| stage | latency | engine |
|---|---|---|
| T3LM cold load (first launch after install) | ~52 s | ANE AOT compile |
| T3LM warm load (subsequent launches) | ~0.4–1.1 s | persisted compiled model (cache hit) |
| decode predict | ~58 ms / token | ANE (8-bit, batch-2 CFG) |
| synth (S3Encoder + 10-step CFG S3CFM + S3Vocoder) | ~1–2 s | ANE + GPU |
The fp16 T3LM fails the iPhone ANE plan build (error -14); the shipped T3LM is
8-bit palettized, which loads both functions on the ANE (parity vs fp16:
cos 0.9972, 9/9). The runtime persists the compiled model across launches and overlaps chunk N+1
decode (ANE) with chunk N synth (GPU).
Mirrors the upstream multilingual server: temperature 0.8, exaggeration 1.3, cfg_weight 0.5, top_p 0.95, repetition_penalty 1.2 (min-p sampling, no top-k).
MIT. These weights are a CoreML format conversion of ResembleAI/chatterbox, which Resemble AI publishes under the MIT licence; the conversion inherits those terms, and copyright in the weights stays with Resemble AI — no claim of ownership is made over them here. Redistribute with attribution to Resemble AI.
The Swift runtime that loads them is separately MIT-licensed; see the LICENSE and
NOTICE files in iliasaz/chatterbox-coreml.