whatmodel.sh / tts / DMOSpeech 2
DMOSpeech 2
↗ share
+ contribute
DMOSpeech 2 is an open-weights text-to-speech model from Columbia University / NewsBreak (Yinghao Aaron Li, Xilin Jiang et al.), released July 2025. Its published size is 0.3B parameters. Licence: mit.
Catalogue identity notes
yl4579/DMOSpeech2 release @b2db04b (created 2025-07-21, the day after arXiv:2507.14988v1): model_85000.pt (DMD2-distilled student, bundles the F5-TTS-architecture teacher the authors trained themselves for 2M steps, used only for teacher-guided sampling) and model_1500.pt (GRPO-finetuned duration predictor). params_b is the paper's 0.3B for the student-only configuration. Card licence MIT. Not F5-TTS: the teacher is the authors' own training run, not a SWivid checkpoint. No copy-pasteable CLI (demo notebook only).
Score within the Vapi Humanness · Bradley–Terry rating, 2026-09-25 snapshot comparison set only.
$ how it compares
The text-to-speech models ranked either side of DMOSpeech 2, out of 148 with a score.
| # | model | score | where |
|---|---|---|---|
| 44 | 62±2 | local | |
| 45 | 62±3 | api $50.00/M chars | |
| 46 | 62±4 | local | |
| 47 | 61±3 | api $50.00/M chars | |
| 48 | 61±2 | api $25.00/M chars |
see all text-to-speech models · find the ones that fit your machine
$ what it's good at
voice cloning▁·▁▁▁▁▁▁▇█▃▃ #19 of 37 · 95% of its score · 4 tests
Beats Gemini 3.1 Flash TTS Preview, Fun-CosyVoice3-0.5B-2512, MOSS-TTS v1.5 (8B) here, though they rank higher overall.
| test | result | vs the others in its run | counts |
|---|---|---|---|
| Seed-TTS test-en · speaker similarity (WavLM-large SV) lab | 69.8% ✎ | ▁·▂▂▂█▆▃▅··▂ beats 14/30 | 37% |
| Seed-TTS test-zh · speaker similarity (WavLM-large SV) lab | 76.0% ✎ | ▁·▂··▂·█▄·▃▄ beats 9/25 | 35% |
| Seed-TTS test-en · Whisper large-v3 WER lab | 1.8% ✎ | ▁···▂▂▂▂█▆▄▂ beats 21/35 | 13% |
| Seed-TTS test-zh · Paraformer CER lab | 1.5% ✎ | ▁·▂▁▁▁▃▃▅█·▂ beats 7/30 | 9.5% |
$ where to run it
Other ways to run it
- Run it as published · needs ~4.34 GB, NVIDIA only · from github.com/yl4579
conda create -n dmo2 python=3.10 && conda activate dmo2 && git clone https://github.com/yl4579/DMOSpeech2.git && cd DMOSpeech2 && pip install -r requirements.txt && mkdir ckpts && cd ckpts && wget https://huggingface.co/yl4579/DMOSpeech2/resolve/main/model_85000.pt && wget https://huggingface.co/yl4579/DMOSpeech2/resolve/main/model_1500.pt && cd ../src && python -c "from infer import DMOInference; import soundfile as sf; tts = DMOInference(student_checkpoint_path='../ckpts/model_85000.pt', duration_predictor_path='../ckpts/model_1500.pt', device='cuda', model_type='F5TTS_Base'); generated_audio = tts.generate(gen_text='I don\'t really care what you call me. I\'ve been a silent spectator, watching species evolve, empires rise and fall. But always remember, I am mighty and enduring.', audio_path='f5_tts/infer/examples/basic/basic_ref_en.wav', prompt_text='Some call me nature, others call me mother nature.'); sf.write('generated.wav', generated_audio, 24000)"
Weights and documentation: huggingface.co/yl4579 ↗
$ how the score was worked out · DMOSpeech 2: Reinforcement Le… 95%
Each result implies a score on its own, after adjusting for how hard its test is and who ran it. The score is their weighted average, with a small pull toward the middle for thinly tested models. Each test's weight is its counts column above; here it's added up by who ran the tests. How it works
| source | results | share of the score |
|---|---|---|
| 4 | 95% | |
| prior · pull toward the middle | 5% | |
| weighted average | = 61.5 |
$ improve this page
Use a short GitHub form or edit the data through a pull request. Every number needs a source; here's which ones we can use.
data updated · sources and licences · json