# Teacher in the Loop: 8M-parameter Kokoro voices in English and Italian, 9 MB int8 ONNX, running in the browser

> Source: <https://discuss.huggingface.co/t/teacher-in-the-loop-8m-parameter-kokoro-voices-in-english-and-italian-9-mb-int8-onnx-running-in-the-browser/190644#post_1>
> Published: 2026-10-15 21:27:04+00:00

Hi all, I’d like to share a project and ask for feedback: small single-voice TTS models distilled from Kokoro-82M, in English and Italian.

**Try it:** [Teacher in the Loop - a Hugging Face Space by MithrilMan](https://huggingface.co/spaces/MithrilMan/teacher-in-the-loop)

It runs entirely in your browser (ONNX Runtime Web, eSpeak NG compiled to WebAssembly). The *Listen* section plays the teacher, Paradee’s released decoder, the published recipe and mine on the same held-out sentences.

**What it is**

`af_heart` (English), `if_sara` and `im_nicola` (Italian)`pip install teacher-in-the-loop`, then `titl --voice if_sara "Buongiorno a tutti." -o out.wav`
**Why it exists**

It’s a follow-up to Paradee. Re-running Paradee’s published training scripts, my decoders ended at UTMOS 1.94 and 2.89, against 4.37 for the released one. The target of the first decoder stage is a 1.6 s crop of a teacher render of the whole sentence. Kokoro’s decoder normalizes over the whole utterance and draws a random excitation, so that target can’t be predicted from the crop. Putting the frozen teacher in the loop fixes it without changing the architecture: the teacher renders each crop with the student’s excitation, and the student also matches the teacher’s iSTFT head.
