Ming-Kokoro-82M
Ming-Kokoro-82M is an 82M-parameter, 12-voice English text-to-speech model trained with a fully open recipe β corpus, scripts, configs, and training logs are all public. It is a Kokoro-82M-architecture student, warm-started from Kokoro's weights and retrained on a 24-hour domain-matched corpus with an adversarial finetuning stage.
What v8 (current) is:
- 𦴠Drop-in Kokoro format β stock checkpoint layout,
[510,1,256]voicepacks, 24 kHz output, and stock Kokoro voice names (af_heart,am_michael, β¦). Works anywhere Kokoro-82M works. - π― Domain-matched training β the corpus was synthesized by stock Kokoro itself, so the student trains in exactly its vocoder's domain (the recipe validated by Paradee, extended here to multi-voice). Validation loss 3.14 vs 5.29 for the equivalent codec-teacher run.
- π Fully open recipe β prompts (LibriTTS-R, CC-BY-4.0), synthesis scripts, training harness, eval suite: all linked below. Reproduce it end to end for ~$35 of GPU.
- βοΈ Apache-2.0 throughout.
Status: v8 weights are live in this repo. The full benchmark (WER / UTMOS / RTFx vs stock Kokoro, phonon-31m-en, and the v1 model) is running now β the table below updates the moment it completes. Training loss and alignment stats are already public in
akhaliq/ming-kokoro-distill.
Audio samples
v8 (current weights), training-eval texts:
| Sample | |
|---|---|
| v8 sample 1 | |
| v8 sample 2 | |
| v8 sample 3 |
Baselines for comparison:
| System | Sample |
|---|---|
Kokoro-82M (stock, af_heart) |
|
| Ming-omni-tts-0.5B |
Usage
pip install kokoro
from kokoro import KPipeline
import soundfile as sf
pipeline = KPipeline(lang_code="a", repo_id="akhaliq/Ming-Kokoro-82M")
for graphemes, phonemes, audio in pipeline(
"Ming Kokoro speaks with twelve voices.",
voice="af_heart",
speed=1.0,
):
sf.write("out.wav", audio, 24000)
Because this repo mirrors the layout of hexgrad/Kokoro-82M (kokoro-v1_0.pth,
config.json, voices/*.pt) and uses the stock Kokoro voice names, any tool that
loads Kokoro weights and voicepacks can load these.
Note: the voicepacks in
voices/are trained against these weights. Pairing them with the stockhexgrad/Kokoro-82Mcheckpoint (or vice versa) may not sound right.
Voices
| Voice | Description |
|---|---|
af_heart |
American female β warm |
af_bella |
American female β bright |
af_nicole |
American female β soft |
af_river |
American female β neutral |
af_sarah |
American female β mature |
af_sky |
American female β light |
am_adam |
American male β deep |
am_liam |
American male β young |
am_michael |
American male β neutral |
am_onyx |
American male β resonant |
bf_emma |
British female |
bm_george |
British male |
How it was made (open recipe)
Everything is public in akhaliq/ming-kokoro-distill
(scripts) and akhaliq/ming-kokoro-corpus (data):
- Prompts: 12,000 utterances sampled from LibriTTS-R transcripts (CC-BY-4.0).
- Teacher synthesis: stock
hexgrad/Kokoro-82M(12 voices) β ~24 h of 24 kHz audio in ~20 minutes on a single GPU (Kokoro is that fast). Domain-matched to the student's vocoder by construction. - Alignment: misaki G2P + MMS forced alignment β per-phoneme durations (11,989 / 12,000 utterances kept, 0.1 % dropped), Praat pitch extraction.
- Student training: warm-start from
hexgrad/Kokoro-82M; voice vectors + prosody predictor + decoder body trained (vocoder frozen) with teacher-forced mel + STFT + duration losses on ground-truth F0, plus an adversarial multi-period discriminator stage β 6,000 steps on one H200, final validation loss 3.14 (hidude562/kokoro-finetune harness). - Export: stock Kokoro checkpoint layout + one
[510,1,256]voicepack per voice.
History: v1 distilled inclusionAI/Ming-omni-tts-0.5B into this architecture β the first
Ming distillate β but the codec-decoded teacher audio produced a domain mismatch
(UTMOS 1.86) that two training iterations could not fix; v8 is the domain-matched retrain.
The full saga, including failed runs and diagnostics, is in the staging repo.
Benchmarks
v8 benchmark running now β table updates on completion. Bars to beat (300 utterances, WER via Whisper large-v3-turbo, UTMOSv2 naturalness):
| Model | WER β | UTMOSv2 β |
|---|---|---|
| Kokoro-82M (stock) | 0.104 | 3.92 |
| gradium/phonon-31m-en | 0.110 | 3.61 |
| Ming-Kokoro-82M v1 (failed Ming-teacher run) | 0.102 | 1.86 |
Attribution
- Architecture & warm start:
hexgrad/Kokoro-82Mβ Apache-2.0, hexgrad (built on StyleTTS 2 + ISTFTNet) - Recipe validation: Paradee (domain-matched teacher distillation)
- Training harness:
hidude562/kokoro-finetune - Corpus text: LibriTTS-R β CC-BY-4.0
Limitations
- English only; 12 fixed voices (no zero-shot cloning).
- Trained on read-speech prompts (LibriTTS-R style); very emotional or sung input is out of domain.
- Voices mimic the stock Kokoro voices they were trained from β timbre similarity, not clones.
- Downloads last month
- 132