cd /news/artificial-intelligence/the-smallest-neural-text-to-speech-fโ€ฆ ยท home โ€บ topics โ€บ artificial-intelligence โ€บ article
[ARTICLE ยท art-163018] src=tts.ampixa.com โ†— pub= topic=artificial-intelligence verified=true sentiment=โ†‘ positive

The smallest neural text-to-speech family

A neural text-to-speech family called sanoTTS, described by its makers as the smallest they know of, runs entirely client-side in the browser, with its 1.46M-parameter "amy" voice scoring 4.13 on SCOREQ and 4.10 on UTMOS across a 24-sentence test set, ahead of TinyTTS (3.94/3.65) and Inflect Nano (3.81/3.65). The stack โ€” duration, acoustic and decoder stages quantized to int8, with espeak-ng compiled to WebAssembly at 275 KB and a 448 KB pinyin lexicon for Chinese โ€” ships 28 voices across 16 languages, and the on-device English voice runs at 0.22ร— real time on an ESP32-S3. The developers report Kokoro is 36ร— larger than their largest voice and 279ร— larger than their smallest, with shipped files of 2.8 MB fp16 for sanoTTS amy and 3.5 MB fp16 for TinyTTS against Kokoro's roughly 330 MB fp32.

read4 min views1 publishedNov 3, 2026

The smallest neural text-to-speech family we know of โ€” and it plays right here, live, in your browser.

a full neural stack โ€” duration โ†’ acoustic โ†’ decoder โ€” quantized to int8, phonemizer and all. 28 voices, 16 languages, all spoken on this page.

Type anything. The text is phonemized by espeak-ng compiled to WebAssembly (the same 275ย KB port that runs on the chip; Chinese uses a 448ย KB pinyin lexicon instead) and spoken by that voice's own neural stack โ€” all client-side, no server. Pick a voice:

| Phonemes | โ€” | | Audio produced | โ€” | | Time (this CPU) | โ€” | | Speed on this machine | โ€” |

The speed shown is this browser on your CPU โ€” the on-device English voice runs at 0.22ร— real time on an ESP32-S3. Every voice in the picker synthesizes your typed text live, right here, with no server involved. Where a language offers two sizes, the chips under its mascot switch between them. heart and heart-nano take a different route from text to sound than the other voices (a 100-band mel interface into a noise-shaping decoder), so they load their own small runtime; heart-nano runs the int8 arithmetic of the microcontroller build unchanged.

Measured with our no-reference harness (SCOREQ / UTMOS / DNSMOS-SIG) on the same 24-sentence diverse set, run identically across every model below.

Size comparison (parameters) Kokoro is 36ร— larger than our largest voice โ€” and 279ร— larger than our smallest.

Shipped-file sizes: sanoTTS amy 2.8 MB fp16 and TinyTTS 3.5 MB fp16, both verified from the released files; Kokoro's ~330 MB fp32 is its widely cited public figure.

Three metrics, head to head

sanoTTS amy1.46M params sanoTTS heart2.27M params TinyTTS1.62M params Inflect Nano4.63M params
SCOREQ 4.13 3.48 3.94 3.81
UTMOS 4.10 3.38 3.65 3.65
DNSMOS-SIG 3.61 3.51 3.62 3.58

Same 24-sentence set, three independent no-reference metrics; best value per row in crimson. sanoTTS amy leads on SCOREQ and UTMOS; on DNSMOS-SIG TinyTTS edges us by 0.01 โ€” no single metric tells the whole story. heart is a different voice and recipe (24ย kHz, noise-shaping decoder) scored on the identical 24 sentences; heart-nano, its 294k sibling, scores 2.29 / 2.45 / 3.35 on the same three metrics.

The size-quality frontier we traced

Same voice (amy), same duration/acoustic recipe โ€” only decoder size changes. Quality lives in the decoder: doubling it from 1.09M to 1.84M params moves SCOREQ from 3.70 to 4.16.

Every language we ship, and what we know about it

WER is Whisper word error rate over 16 held-out Tatoeba sentences per language โ€” conversational text, deliberately a different domain from the corpus these voices were distilled on. The sample buttons synthesize that language on this page, right now, through the same runtime as the picker above. Where a language ships in two sizes, both are playable. Chinese is the one exception: written Chinese has no spaces, so word error rate means nothing there and the figure is character error rate over the same 16 Tatoeba sentences, with traditional and simplified folded together. On held-out FLORES that voice scores 0.199 against its teacherโ€™s 0.188 โ€” the voice it replaced scored 0.468.

Language WER Sample
Portuguese ๐Ÿ‡ง๐Ÿ‡ท 0.038
Italian ๐Ÿ‡ฎ๐Ÿ‡น 0.080
German ๐Ÿ‡ฉ๐Ÿ‡ช 0.099512k ยท 0.145
Russian ๐Ÿ‡ท๐Ÿ‡บ 0.120
Spanish ๐Ÿ‡ช๐Ÿ‡ธ 0.147
French ๐Ÿ‡ซ๐Ÿ‡ท 0.221
Indonesian ๐Ÿ‡ฎ๐Ÿ‡ฉ 0.256
Arabic ๐Ÿ‡ฏ๐Ÿ‡ด 0.274
Turkish ๐Ÿ‡น๐Ÿ‡ท 0.303
Czech ๐Ÿ‡จ๐Ÿ‡ฟ 0.351
Polish ๐Ÿ‡ต๐Ÿ‡ฑ โ€”
Romanian ๐Ÿ‡ท๐Ÿ‡ด 0.392
Vietnamese ๐Ÿ‡ป๐Ÿ‡ณ 0.468
English ๐Ÿ‡บ๐Ÿ‡ธ โ€”
Nepali ๐Ÿ‡ณ๐Ÿ‡ต โ€”
Hindi ๐Ÿ‡ฎ๐Ÿ‡ณ โ€”
Chinese ๐Ÿ‡จ๐Ÿ‡ณ 0.024CER, not WER

Lower is better. Press play to judge the rest.

What these numbers are, and are not. WER is measured with Whisper over 16 held-out Tatoeba sentences per language โ€” directional, not precise. It says the words come through; it says nothing about whether a voice sounds good. No listening test has been run on any of the ten languages added on 2026-09-08, and none of them has a SCOREQ. Czech, Romanian and French got worse on unseen text than on the corpus they were trained on, so they are the ones to press first. Indonesian and Vietnamese are the espeak arm of a paired A/B โ€” the phoneme path this page actually runs. Everything above is reproducible from experiments/evidence/ood-tatoeba-20260908.json,

  `idvi-espeak-free-ab-20260904.json` and
  `heart-diverse24-remeasure-20260904.json`.

Open source under GPL-3.0 โ€” builds on

  [piper](https://github.com/OHF-Voice/piper1-gpl) and
  [espeak-ng](https://github.com/espeak-ng/espeak-ng). Distill your own tiny voice:
  [github.com/Ampixa/sanoTTS](https://github.com/Ampixa/sanoTTS).

ยฉ 2026 Ampixa

โ”€โ”€ more in #artificial-intelligence 4 stories ยท sorted by recency
โ”€โ”€ more on @sanotts 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain โ€” perfect for shipping the agent you just read about.

$git push zahid main
โ†’ Live at https://your-agent.zahid.host โœ“
Get free account โ†’ Pricing
from โ‚ฌ0/mo ยท no card required
LIVE [news/the-smallest-neural-โ€ฆ] indexed:0 read:4min 2026-11-03 ยท โ€”