Skip to content

Underdog AI's tiny English TTS (38.2M params, 40.6 MB, two voices) — the second-smallest download in the lab after Kitten Nano, with far fewer errors on numbers, dates and codes (1.42-2.06% WER on hard sentences vs Nano's 9.81%, per Underdog's evals). The repo ships a numpy runtime instead of ONNX, so inference runs here via a hand-ported typed-array JS path — no ONNX, no WASM engine — verified against the reference implementation to float32 precision. Two real backends: a hand-written WGSL WebGPU compute-kernel path and the typed-array CPU path, drawing the same seeded noise stream so a fixed seed gives the same audio on either. WASM-class only; the text normalizer is not ported, so feed spelled-out text ('twenty-five dollars', not '$25'). Underdog Non-Commercial License 1.0: free for non-commercial use with credit ('Voice by Underdog Woof'); commercial use needs a license. Both backends verified in a real browser (2026-11-08: CPU vs GPU Pearson corr 0.9999998 on a fixed seed, ~6.1 s CPU vs ~0.19 s GPU per sentence).

WebGPU
WASM
Underdog-NC-1.0

Embed Underdog Woof

Copy the code below to embed this TTS demo on your website.

<iframe src="https://ttslab.dev/embed/woof-tts" width="100%" height="400" frameborder="0" allow="autoplay"></iframe>

Try It

Underdog Woof
Not loaded(41.0 MB)

WebGPU uses your GPU for faster inference. WASM is the reliable fallback.

0 / 5000

Try an example

Recent generations

No generations yet. Generate speech above to see your history here.

Technical Details

Architecture

Flow-matching transformer + Mimi-style decoder (char-level)

Parameters

38.2M

Model Size

41 MB

Voices

2

Languages

en

Links