CSM-1B-MLX-fp16
Sesame CSM-1B (Conversational Speech Model) converted to MLX (fp16) for on-device speech generation on Apple Silicon. CSM is a Moshi-family codec model: a Llama-1B backbone predicts the zeroth Mimi codebook, a Llama-100M decoder predicts the rest. It clones a voice from a short reference clip.
| Property | Value |
|---|---|
| Parameters | 1.5B class (backbone 1B + decoder + heads) |
| Quantization | fp16 |
| Size | ~3.3 GB |
| Codec | Mimi, 32 codebooks @ 12.5 Hz, 24 kHz |
| Languages | English |
Files
| File | Description |
|---|---|
model.safetensors | backbone + decoder + heads + embeddings (fp16) |
config.json | architecture + per-module quantization map |
mimi.safetensors | Kyutai Mimi codec (32 codebooks) |
tokenizer.json | Llama BPE tokenizer |
Performance (M-series, mlx-swift)
| Metric | Value |
|---|---|
| RTF (int8) | ~0.5–0.9 (faster than real time) |
| First-audio latency (streaming) | ~120 ms |
Quantization lowers memory bandwidth, so int8/int5 are both smaller and faster than fp16 on Apple GPUs.
Usage (Swift)
import CSM
let pipeline = try await CSMPipeline(directory: modelDir)
let audio = pipeline.synthesize(
text: "Hello from on-device speech.",
refAudio: referenceSamples, // 24 kHz mono
refText: "transcript of the reference",
temperature: 0.9, topK: 50)
Known limitations
- English-focused; weak on other languages.
- End-of-audio occasionally clips the final word — pad the text with a short trailing phrase, or trim to the last voiced frame.
- Zero-shot cloning transfers voice identity but flattens prosody vs. a purpose-tuned reference.
Source
Converted from sesame/csm-1b (Apache-2.0).
Links
- speech-swift — Apple SDK
- Docs
- soniqo.audio
- Speech Studio — local speech generation & voice cloning
- blog