Paradee-8M-v1.3

sahilmahendrakar/Paradee-8M-v1.3

作者
sahilmahendrakar
任务
语音合成
下载量
290
点赞数
6
趋势分
6
许可证
apache-2.0
收录时间
2026/11/11

license: apache-2.0 language:

  • en
  • hi
  • fr
  • es pipeline_tag: text-to-speech base_model: hexgrad/Kokoro-82M library_name: onnx tags:
  • text-to-speech
  • tts
  • onnx
  • distillation
  • kokoro
  • multilingual

Paradee-8M v1.3

Paradee is a small text-to-speech model. It has 7.88M parameters and is distilled from Kokoro-82M. Version 1.3 speaks eight of Kokoro's voices in four languages: English, Hindi, French and Spanish. The voice you pick sets the language, and each sentence is spoken in one language.

Paradee 1.3 is the smallest single TTS model that speaks more than one language. It's about 6x smaller than the next smallest, M5-TTS, which has 50M parameters.

Parameter counts of single TTS models that speak more than one language

VoiceLanguageUTMOSNISQAWERCER
af_heartEnglish (American), female4.38 (4.52)4.93 (5.00)2.7% (3.0%)0.8% (1.0%)
bf_isabellaEnglish (British), female4.07 (4.41)5.08 (5.12)2.9% (2.9%)1.0% (0.9%)
am_puckEnglish (American), male4.35 (4.47)5.01 (5.04)2.8% (3.0%)0.9% (0.9%)
bm_fableEnglish (British), male4.17 (4.32)4.96 (5.00)2.7% (3.0%)0.9% (0.9%)
hf_alphaHindi, female3.99 (4.29)3.98 (4.37)21.7% (20.7%)6.4% (6.0%)
hm_omegaHindi, male3.82 (4.09)4.57 (4.73)21.6% (19.8%)6.7% (6.1%)
ff_siwisFrench, female3.45 (3.65)4.39 (4.65)6.8% (6.8%)2.2% (2.2%)
em_alexSpanish, male3.14 (3.34)4.72 (4.98)5.0% (5.1%)1.5% (1.5%)

Paradee's numbers are for the int8 ONNX file, with Kokoro's in brackets, on 200 held-out sentences per voice. WER and CER are the share of words and of characters that Whisper large-v3 transcribes wrongly, in the voice's own language. UTMOS and NISQA are neural networks that predict how natural and how clean a clip sounds, on a scale of about 1 to 5. Both were trained mostly on English ratings, so for Hindi, French and Spanish their scores only mean something next to Kokoro's.

  • Small. The int8 model is one 8.5 MB ONNX file for all eight voices, the same size as v1.2.
  • Fast. It runs about 62x faster than real time on one CPU thread, with no GPU, the same as v1.2.

The code, the training scripts and the Python package are at github.com/sahilmahendrakar/paradee. The paper, Paradee: Distilling Kokoro-82M into an 8M-Parameter Single-Voice Text-to-Speech Model, describes v1.0.

What changed since v1.2

The model is the same size and shape as Paradee-8M v1.2. Each half has a small table with one learned vector per voice, and the table now has eight rows instead of four. The four English voices keep their numbers (0 to 3), and the new voices are 4 to 7. Everything else is shared between all eight voices and all four languages.

Paradee already used Kokoro's full phoneme vocabulary, which covers every language Kokoro speaks, so no new parts were needed. Both halves started from v1.2 and were trained further on Kokoro reading 12,000 Wikipedia sentences in each new voice, together with the English voices. In the last round the Hindi and Spanish voices were shown three times as often.

The Hindi voices are the furthest from their teacher. Kokoro itself had only a little Hindi training data, and Whisper's Hindi word error rate is high for Kokoro too, partly because many Hindi words have more than one accepted spelling.

Samples

Three sentences in each language, read by Paradee v1.3 and by its teacher. The sentences are in samples/sentences.txt.

English

#af_heartbf_isabellaam_puckbm_fable
1Paradee · KokoroParadee · KokoroParadee · KokoroParadee · Kokoro
2Paradee · KokoroParadee · KokoroParadee · KokoroParadee · Kokoro
3Paradee · KokoroParadee · KokoroParadee · KokoroParadee · Kokoro

Hindi

#hf_alphahm_omega
1Paradee · KokoroParadee · Kokoro
2Paradee · KokoroParadee · Kokoro
3Paradee · KokoroParadee · Kokoro

French

#ff_siwis
1Paradee · Kokoro
2Paradee · Kokoro
3Paradee · Kokoro

Spanish

#em_alex
1Paradee · Kokoro
2Paradee · Kokoro
3Paradee · Kokoro

Usage

pip install git+https://github.com/sahilmahendrakar/paradee
python -m paradee "La biblioteca abre a las nueve." --voice em_alex -o hola.wav
from paradee import Paradee, SAMPLE_RATE
import soundfile as sf

tts = Paradee()   # v1.3; Paradee(version="1.2") loads the previous release
sf.write("hello.wav", tts("Paradee is a small voice that runs anywhere.", voice="af_heart"), SAMPLE_RATE)
sf.write("namaste.wav", tts("आज मौसम बहुत अच्छा है।", voice="hf_alpha"), SAMPLE_RATE)
sf.write("bonjour.wav", tts("Il fait très beau aujourd'hui.", voice="ff_siwis"), SAMPLE_RATE)

Files

FileWhat it is
onnx/paradee_int8.onnxThe whole model in one graph, weights in int8 (8.5 MB). Use this one.
onnx/paradee.onnxThe same graph in fp32 (35 MB). It sounds the same.
config.jsonKokoro's phoneme vocabulary, the sample rate, the voices in model order and each voice's language
tokenizer.jsonThe same vocabulary in the format transformers.js and kokoro-js load
pytorch/text_side.pt, pytorch/decoder.ptPyTorch weights for the two halves, for the training code on GitHub
samples/The audio above

The ONNX graph goes from phoneme ids to audio, with the same inputs and output as v1.2.

  • Inputs. input_ids is int64 [1, T], phoneme ids from config.json with a 0 pad token at each end, at most 512 in total. speed is float32 [1], where 1.0 is normal speed. voice is int64 [1], the voice's position in the voices list in config.json (0 is af_heart, 4 is hf_alpha).
  • Output. waveform is float32 [1, samples] at 24 kHz.

Phonemes must be written the way Kokoro's own front end writes them. For the English voices that is misaki, with its American dictionary for af_heart and am_puck and its British dictionary for bf_isabella and bm_fable. For Hindi (hi), French (fr-fr) and Spanish (es) it is eSpeak NG through misaki's EspeakG2P, which renames a few of eSpeak's symbols. The Python package does all of this from the voice name.

Results

Speed: measured side by side in onnxruntime on one CPU thread, the v1.3 and v1.2 int8 files run within 2% of each other. v1.2 runs about 62x faster than real time on an Apple M4 Pro.

For comparison with earlier releases, the English voices' word error rate with Whisper base, the setup used for v1.0 to v1.2:

Voicev1.3v1.2Kokoro
af_heart5.6%5.8%5.7%
bf_isabella5.6%5.7%5.6%
am_puck5.7%5.4%6.3%
bm_fable5.5%5.7%5.7%

How it was made

Paradee has a 4.23M text side and a 3.65M decoder. The two halves were trained separately against the frozen teacher.

  1. The text side learns to predict the teacher's phoneme durations, pitch, loudness and feature encodings from the phonemes. It is Kokoro's own code at smaller widths.
  2. The decoder learns to turn the teacher's durations, pitch, loudness and feature encodings into the teacher's audio, with adversarial training. Its last part is the head introduced in v1.1.
  3. The halves are joined with no further training.

Training for v1.3 started from v1.2 and ran on one cloud GPU.

Limitations

  • Eight voices in four languages. A sentence that mixes languages is read with one language's pronunciation.
  • Hindi is a little behind Kokoro, which itself had little Hindi data.
  • Numbers, abbreviations and unusual words are pronounced only as well as misaki and eSpeak handle them.

License

Apache 2.0, the same as Kokoro-82M.

Citation

The paper describes v1.0.

@misc{mahendrakar2026paradee,
  title  = {Paradee: Distilling Kokoro-82M into an 8M-Parameter Single-Voice Text-to-Speech Model},
  author = {Mahendrakar, Sahil},
  year   = {2026},
  url    = {https://huggingface.co/sahilmahendrakar/Paradee-8M-v1.0}
}

内容来源:Hugging Face 模型卡

在 Hugging Face 查看