Ming-Kokoro-82M

Built with ML Intern

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 stock hexgrad/Kokoro-82M checkpoint (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):

  1. Prompts: 12,000 utterances sampled from LibriTTS-R transcripts (CC-BY-4.0).
  2. 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.
  3. Alignment: misaki G2P + MMS forced alignment β†’ per-phoneme durations (11,989 / 12,000 utterances kept, 0.1 % dropped), Praat pitch extraction.
  4. 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).
  5. 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

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
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Model tree for akhaliq/Ming-Kokoro-82M

Finetuned
(65)
this model

Space using akhaliq/Ming-Kokoro-82M 1

Papers for akhaliq/Ming-Kokoro-82M