Introduction

mesm-tts shipped today from mesmertech on mesmertech/mesm-tts (created 2026-11-05 ~13:43 UTC, still updating through the afternoon). It packs ten English TTS voices small enough for a web page, with a 40 kB WebAssembly engine — no GPU, no server, and no onnxruntime in the browser.

This is generative text-to-speech, distilled from Kokoro-82M and Phonon-31m-en teachers into Paradee-shaped ONNX students. Try all ten at mesmer.tools/free-tools/tts-generator.

What Shipped

  • Vendor / product: mesmertech — mesm-tts
  • Modality: open-weight English text-to-speech (10 fixed voices)
  • Open vs closed: Apache-2.0 ONNX voices + WASM/native runtimes (eSpeak NG path for unknown words remains GPL)
  • Runnable today: browser demo, pip + python tts.py, Node web/say.mjs, or raw ONNX with Paradee-8M’s interface
  • Concrete fact: voices 2.3–6.9 MB each (vs ~325 MB Kokoro-82M / 55–103 MB Phonon-31m-en); Heart up to 292× realtime natively / 201× in browser on one CPU core; first audio about 10–55 ms in browser; process peak memory ~100–117 MB for Heart

Voices include Heart (Kokoro af_heart student), Wren (Phonon’s built-in), plus Everly, Hadley, Bryony, Maeve, Miles, Trevor, Edwin, and Hugh.

Run It

Browser path: open mesmer.tools/free-tools/tts-generator.

Python (no PyTorch):

pip install -r requirements.txt
python tts.py "Hello there. How are you?" --voice hadley --out hello.wav

from tts import MesmTTS
tts = MesmTTS("miles")
tts.save("Good evening.", "evening.wav")

Node, no deps:

node web/say.mjs "Good evening. Shall we begin?" evening.wav edwin

Browser embed uses mesmer.tools’ Paradee WASM loader against the HF web/voices/*.pdn files — see the model card’s Quick start for the loadParadee snippet.

Notes for makers

  • Heart reports UTMOS 4.46 / WER 5.6% vs Kokoro-82M teacher 4.52 / 5.7%; Phonon students are described as statistically tied with their teachers on WER
  • Same Paradee-8M v1.1 ONNX I/O as yesterday’s Pt-BR Paradee drop — if you already wired Paradee, these English voices drop in
  • English only; quality is “tiny voice that ships in the page,” not a Drama 3 / ElevenLabs replacement
  • No Gen CTA: browser TTS does not map to the Flux / Grok / MiniMax-H3 / Seedream / Seedance Gen loop

Conclusion

If you need Apache-2.0 English voices that fit in a few megabytes and speak inside the tab — Heart at ~292× CPU realtime, ten styles, paste-ready Python / Node / WASM paths — mesm-tts is today’s zero-day from mesmertech.

—Anabel ♡