Instructions to use franckverrot/vovo with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLX
How to use franckverrot/vovo with MLX:
# Download the model from the Hub pip install huggingface_hub[hf_xet] huggingface-cli download --local-dir vovo franckverrot/vovo
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- LM Studio
- Atomic Chat
Vovo
Vovo is an English text-to-speech model built from scratch in Swift with hand-written Metal kernels β its own tensor engine, autograd, optimizer, data pipeline and trainer. This 20 M-parameter single-speaker voice was trained on LJSpeech in about 13 minutes on an M2 Max.
Run it from Python on Apple silicon with vovo-mlx:
pip install vovo-mlx # from PyPI
pip install git+https://github.com/franckverrot/vovo-mlx # or straight from GitHub
vovo-mlx say "The quick brown fox jumps over the lazy dog." -o fox.wav --play
from vovo_mlx import VovoTTS, SAMPLE_RATE
from vovo_mlx.audio import write_wav
tts = VovoTTS.from_pretrained("franckverrot/vovo")
write_wav("hello.wav", tts.say("Hello from Vovo.", seed=0), SAMPLE_RATE)
Files
| file | what |
|---|---|
model.safetensors |
acoustic model (phone encoder β mel prior + durations β flow-matching DiT decoder), EMA weights, config in the safetensors metadata |
vocoder.safetensors |
Vocos mel-24kHz fine-tuned on Vovo's predicted mels with adversarial + mel losses (PyTorch key layout, also loadable by the vocos package) |
vocoder_base.safetensors |
the unmodified Vocos mel-24kHz weights, for comparison |
Mel convention: 24 kHz, n_fft 1024, hop 256, 100 HTK mel bands, log(clamp(x, 1e-7)).
Model
Matcha-shaped: text β normalizer β ipa-dict lexicon G2P β 67-symbol phone inventory β conv prenet + 6-layer RoPE transformer (d=192) β per-phone mel prior ΞΌ and log-durations β length regulation β 6-layer DiT flow-matching decoder (d=384, adaLN-zero) sampled with 16 Euler steps and classifier-free guidance 2 by default β Vocos. Alignment during training comes from monotonic alignment search; the optimizer is Muon for the weight matrices. Word error rate on Vovo's 20-sentence test set with Apple's on-device recognizer: 2.1 %.
Limitations
One voice, English only, no streaming; out-of-vocabulary words are spelled by rules. Intelligible, not studio-clean β it is a 13-minute training run.
License
MIT (code and weights). Lexicon: ipa-dict (MIT). Vocoder derived from Vocos (MIT). Data: LJSpeech (public domain).
Quantized