F5-TTS
This first-party Soniqo page documents F5-TTS from the local speech-swift / speech-core implementation. Hugging Face bundles are linked below after the integration notes.
Internal Page First
Landing cards and docs menus now point here first; source model and bundle links remain available from this page.
At a Glance
| Model | F5-TTS |
|---|---|
| Role | Zero-shot voice cloning from a short reference plus transcript |
| Backend | MLX fp16 |
| Output | 24 kHz mono waveform |
| Languages | English and Mandarin, mixed EN/ZH supported |
| License | CC-BY-NC-4.0 weights; non-commercial bundle |
| Status | Ready through speech speak --engine f5 and the F5TTS Swift product |
| Source | SWivid F5-TTS |
| Swift product | F5TTS |
| CLI / runtime | speech speak --engine f5 |
Use
The snippet below mirrors the current speech-swift API or command exposed by the repo.
# Clone a voice from a ~10 s reference clip plus its transcript.
.build/release/speech speak "Hello from my cloned voice." \
--engine f5 \
--voice-sample reference.wav \
--f5-reference-text "Text spoken in the reference clip." \
-o cloned.wav
Model Links
Implementation Notes
- 16 flow steps are the default (RTF 0.57 on an M5 Pro, lower is faster); --f5-steps 32 for maximum fidelity, 12 runs at RTF 0.43 — ASR roundtrips are word-identical across all three.
- --f5-reference-text is required: cloning conditions on the reference transcript, and quality tracks how cleanly the reference clip ends on a sentence boundary.
- Mandarin runs through a bundled pinyin lexicon with tone sandhi baked in at export time (99.2% token-exact against the upstream rjieba/pypinyin frontend), so Swift needs no external tokenizer.
- Deterministic per --f5-seed; --f5-speed scales pacing, CFG strength and sway sampling are exposed as flags; about 0.8 GB peak RSS makes it the smallest cloning engine in the package.