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).

Downloads last month

-

Downloads are not tracked for this model. How to track
Safetensors
Model size
20M params
Tensor type
F32
Β·
MLX
Hardware compatibility
Log In to add your hardware

Quantized

Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Dataset used to train franckverrot/vovo

Space using franckverrot/vovo 1