Paradee-8M-v1.2

sahilmahendrakar/Paradee-8M-v1.2

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

license: apache-2.0 language:

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

Paradee-8M v1.2

Paradee is a small English text-to-speech model. It has 7.88M parameters and is distilled from Kokoro-82M. Version 1.2 speaks four voices, two American and two British.

VoiceAccentUTMOS (Kokoro)WER (Kokoro)
af_heartAmerican, female4.40 (4.52)5.8% (5.7%)
bf_isabellaBritish, female4.06 (4.41)5.7% (5.6%)
am_puckAmerican, male4.32 (4.47)5.4% (6.3%)
bm_fableBritish, male4.18 (4.32)5.7% (5.7%)
  • Small. The int8 model is one 8.5 MB ONNX file for all four voices, against 325 MB for Kokoro.
  • Fast. It runs about 62x faster than real time on one CPU thread, with no GPU, the same as v1.1.
  • Same quality on af_heart. af_heart scores 4.40 on UTMOS, against 4.39 for v1.1.

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

The model is the same size and shape as Paradee-8M v1.1. Each half now has a small table with one learned vector per voice, and the voice you pick chooses the row. Everything else is shared between the four voices.

Both halves started from v1.1 and were trained further on Kokoro reading 12,000 sentences in each of the four voices. bf_isabella was the hardest voice to learn, so it was shown three times as often in the last round.

The British voices need British phonemes. For bf_isabella and bm_fable, the Python package uses misaki's British pronunciation (for example "bath" becomes bˈɑːθ and "go" becomes ɡˈQ), which is what Kokoro used when it read their training sentences.

Samples

Five sentences read by each voice, by Paradee v1.2 and by its teacher. The sentences are in samples/sentences.txt.

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

Usage

pip install git+https://github.com/sahilmahendrakar/paradee
python -m paradee "Paradee is a small voice that runs anywhere." --voice bf_isabella -o hello.wav
from paradee import Paradee, SAMPLE_RATE
import soundfile as sf

tts = Paradee()   # v1.2; Paradee(version="1.1") loads the previous release
sf.write("hello.wav", tts("Paradee is a small voice that runs anywhere.", voice="bm_fable"), 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 and the list of voices in model order
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.

  • 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).
  • Output. waveform is float32 [1, samples] at 24 kHz.

The only change from v1.1 is the new voice input. The graph draws its own random noise, so two runs on the same text differ slightly in the noisy parts of the sound.

Phonemes must be written the way misaki, Kokoro's own grapheme-to-phoneme library, writes them, with its American dictionary for af_heart and am_puck and its British dictionary for bf_isabella and bm_fable. In the browser, kokoro-js phonemizes with eSpeak NG instead. There, web/misaki.js converts eSpeak's spelling to misaki's, for both accents.

Results

All numbers are on the same 200 held-out sentences, scored the same way as for v1.0 and v1.1. Paradee's numbers are for the int8 ONNX file.

Model (voice)ParamsFile sizeUTMOSWER
Paradee v1.2 (af_heart)7.88M8.46 MB4.405.8%
Paradee v1.2 (bf_isabella)4.065.7%
Paradee v1.2 (am_puck)4.325.4%
Paradee v1.2 (bm_fable)4.185.7%
Paradee v1.1 (af_heart)7.88M8.46 MB4.395.9%
Kokoro-82M, teacher (af_heart)81.8M325 MB4.525.7%
Kokoro-82M, teacher (bf_isabella)4.415.6%
Kokoro-82M, teacher (am_puck)4.476.3%
Kokoro-82M, teacher (bm_fable)4.325.7%

v1.2 runs at the same speed as v1.1. Measured side by side in onnxruntime on one CPU thread, the two files are within 1% of each other. v1.1 runs about 62x faster than real time on an Apple M4 Pro.

UTMOS is a neural network trained on human ratings. It predicts how natural a clip sounds, on a scale from 1 to 5. WER is the share of words that Whisper (base) transcribes wrongly.

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, on 12,000 WikiText-103 sentences read by Kokoro in each voice.

  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, first with spectrogram losses and then 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.2 started from v1.1 and ran on one cloud GPU.

Limitations

  • English only, and four voices.
  • Numbers, abbreviations and unusual words are pronounced only as well as misaki handles them.
  • In the browser, eSpeak's British voice says some words differently from misaki, mostly the vowel in words like "bath", "dance" and "fast".

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 查看