Underdog Woof, a 40.6 MB two-voice TTS model, claims 1.42% word error rate on a CPU
Underdog Woof is an English text-to-speech model with two voices, Juno and Mira, packaged as a single 40.6 MB file that runs on a CPU with numpy. Underdog reports a 1.42% word error rate for Mira on Gradium TTS Hard Cases, against 1.89% for Fish Audio Drama 3, a 41.5 GB download.
Underdog Woof, an English text-to-speech model published on Hugging Face under ConwayResearch, fits both of its voices in a 40.6 MB file and runs on a laptop CPU with only numpy installed. Underdog reports a 1.42% word error rate for the Mira voice on Gradium TTS Hard Cases (English, 500 sentences).
Key specifications
- Voices: Juno (default) and Mira, both stored in one weights file
- Parameters: 22.95M speech model plus 15.3M audio decoder, 38.24M total
- Download: 40.6 MB
- Output: 24 kHz mono audio
- Peak memory on one CPU thread: 402 MB (Juno), 601 MB (Mira)
- Speed on one Apple M5 Max CPU thread: 13.8x real time (Juno), 7.2x real time (Mira)
- Pricing: not applicable for local use; commercial licensing terms not disclosed
The audio decoder is adapted from Kyutai's Mimi codec. Training data includes LibriTTS-R and Emilia-YODAS, both CC-BY 4.0.
Benchmark results (run by Underdog)
Underdog says it ran and scored every model itself, on the same 500 sentences, using each model's best-scoring voice. Transcripts came from qwen3.8-omni-flash, and gemma-4-31b-it counted the word errors. Lower is better.
| Model | Runs | Download | Word error rate |
|---|---|---|---|
| Underdog Woof, two voices (Mira) | CPU | 40.6 MB | 1.42% |
| Fish Audio Drama 3 | not stated as cloud or local in this row | 41.5 GB | 1.89% |
| Underdog Woof, one voice | CPU or browser | 31.7 MB | 2.06% |
| Phonon 31m | on device | 55.1 MB | 2.16% |
| Kokoro 82M | on device | 327 MB | 5.17% |
| Kitten Nano 0.8 | on device | 27.6 MB | 9.81% |
| Qwen3-TTS 1.7B | on device | 4.54 GB | 11.99% |
Underdog also lists cloud APIs from Deepgram, Microsoft, Fish Audio, Qwen, Mistral, MiniMax, ByteDance and ElevenLabs, with word error rates from 2.39% to 6.63% in its table. Cloud-only models do not publish a download size. Kitten Nano 0.8 is the only smaller download Underdog tested, and Underdog notes that nothing it tested is both smaller and more accurate than Woof.
Liquid AI's LFM3-Audio-2B (1.21 GB, 4-bit GGUF) scored 20.1% (747 of 3,718 words) in a separate run of the same sentences. That run used Whisper large-v3 transcripts because qwen3.8-omni-flash could not be used for it. Underdog says the figure is likely a little higher on its main setup, based on a Kokoro check that scored 4.29% with Whisper against 5.17% above.
One voice or two
A one-voice Woof is also available and powers the browser demo at underdog.ai/woof. It is 31.7 MB, uses 852 MB peak memory on one CPU thread, scores 2.06% word error rate and runs at 18x real time. Underdog says this speed is plain PyTorch with int8 weights at the default 16 steps. The two-voice speed uses the numpy runtime in this repo.
Text handling
A built-in rule-based normalizer rewrites numbers, dates, times, money, codes and symbols into spoken form, and respells hard names from a lexicon. It needs only the Python standard library and can be disabled with normalize=False. Long text is split into sentences, and sentences over 120 characters are split again at commas, semicolons or dashes. If a piece runs far too long or contains a second or more of silence, Woof redraws it up to three more times and keeps the best take. A seed argument makes output repeatable.
License
Woof is released under the Underdog Non-Commercial License 1.0. It is free for personal projects, research, teaching and non-profits, with credit to Underdog. Commercial use needs a license from Underdog (license@conway.tech). The license prohibits using Woof or its audio to train, fine-tune or distill another speech or audio model. No Inference Provider currently deploys the model.
What this means
The reported results are Underdog's own measurements, so they depend on its sentence set, transcription model and scoring setup. On those terms, Woof pairs a sub-50 MB download with a lower word error rate than every other model in the comparison, including the 41.5 GB Fish Audio Drama 3. The numpy-only runtime and CPU speeds of 13.8x (Juno) and 7.2x (Mira) real time make local, offline speech synthesis possible without a GPU or API key. The license limits the audience: commercial products need a separate agreement, and the ban on training other speech models rules out distillation uses.
Related Articles
ByteDance Seed releases Cola2, a 9B continuous-latent language model with 60.10 eight-task average
ByteDance Seed has published Cola2, a 9B-parameter base language model that generates continuous latent blocks with a diffusion transformer and realizes them as discrete tokens. Trained on 346.03B source tokens, it reports a 60.10 average across eight tasks. Weights are on Hugging Face; training code is not included.
Video Rebirth releases HyperFlow H3 Flash, a 14B few-step video and audio model compressed from MiniMax-H3
Video Rebirth has published HyperFlow H3 Flash, a compressed, few-step version of MiniMax-H3 with 13.7B to 13.9B parameters. It generates 5.2 to 15 second videos at 24 fps with synchronized 32 kHz stereo audio, using 4, 6 or 8 sampling steps without classifier-free guidance.
Nous Research releases Arete-27B, a Qwen3.8-27B fine-tune that cuts propaganda rate from 22% to 0.9%
Nous Research fine-tuned Alibaba's Qwen3.8-27B on about 53 million tokens to remove Chinese state propaganda from its answers. According to Nous, the resulting Arete-27B model drops the propaganda rate from 22 percent to 0.9 percent while keeping general capabilities intact. Weights, test set and training data are public under Apache 2.0.
PrunaAI releases P-H3-Image: 8 MP image generation and editing in 8 steps, built on MiniMax-H3
PrunaAI has released P-H3-Image, an image model based on MiniMax-H3 that renders 8-megapixel images in 8 steps with no classifier-free guidance. It handles text-to-image and editing with up to 8 input images, and bf16 inference needs about 101 GB of GPU memory.
Comments
Loading...