Tiny speech-to-text models: Whistle and Phonon-2 compared
Whistle is 17 MB and Phonon-2 is 164 MB, and both transcribe speech offline without a GPU. Sizes, languages, accuracy, speed and how they compare with Whisper.
Souvik Samanta · Co-Founder & CTO

Two speech-to-text models came out within a week of each other this autumn, both small enough to run on an ordinary laptop with no graphics card and no internet connection. Whistle, from Cactus Compute, is 17 MB. Phonon-2, from Fermion Research, is 164 MB. For comparison, OpenAI's Whisper base, a common choice for local transcription, is about 145 MB, and the most accurate Whisper models are well over a gigabyte.
Small models matter for the kind of software we make. They can run inside a phone app, a browser tab or a desktop utility, so audio never has to leave the device. Below is what each one does, according to its makers' published numbers, and where those numbers need context.
The two models at a glance
| Whistle | Phonon-2 | |
|---|---|---|
| Maker | Cactus Compute | Fermion Research |
| Released | 2 Oct 2026 | 29 Sep 2026 |
| Download | 16.9 MB | 164 MB |
| Languages | 7: English, German, French, Spanish, Italian, Dutch, Polish | English only |
| Licence | Apache-2.0 | Weights CC-BY-4.0, code Apache-2.0 |
| Built from | Trained by Cactus | A compressed version of NVIDIA's Parakeet TDT 0.6B v3 |
| Word timestamps | Yes | Yes |
| Install | pip install cactus-needle |
pip install "fermion-research[mlx]" on Apple silicon |
Whistle: 17 MB and seven languages
Whistle runs on Cactus's own engine, which is prebuilt for macOS, Linux, Windows on Arm, Android, iOS, watchOS and the browser. It handles up to 30 seconds of audio per pass and splits longer recordings into windows. It detects the language automatically unless you name one, and it can return a start and end time for every word. The official example is two lines of Python:
import needle
print(needle.transcribe("clip.wav")["text"])What the benchmarks say
Cactus compares Whistle with the multilingual version of Whisper base. Word error rate (WER) is the share of words a model gets wrong, so lower is better:
| Test set (WER %) | Whistle | Whisper base |
|---|---|---|
| LibriSpeech test-clean (read English) | 4.31 | 4.9 |
| LibriSpeech test-other (harder read English) | 10.49 | 11.0 |
| FLEURS, average of 7 languages | 21.4 | about 24.5 |
| MLS, average of 6 languages | 24.9 | about 23.1 |
| TED-LIUM (talks) | 7.61 | 5.0 |
| AMI (meetings) | 26.07 | 21.5 |
Whistle is better on read English and on the FLEURS multilingual set, and worse on talks, meetings and the MLS multilingual set. The English-only Whisper base.en scores 4.1 on LibriSpeech test-clean in the Whisper paper, so for English alone Whistle does not beat the best small Whisper.
The speed claim also needs reading carefully. On an Apple M4 Pro CPU, Cactus reports that Whistle produces its first word 6.6 times sooner than Whisper base and decodes about 5 times faster overall. Whistle ran at 2 to 4-bit precision in that test and Whisper at full 32-bit precision, which favours Whistle.
Two practical notes. The Python package is small, but on first use it downloads the engine and the
model, so "no dependencies" applies to the engine rather than the install. And Cactus's GitHub README
says the engine sends telemetry by default, switched off with the environment variables
NEEDLE_TELEMETRY=0 and DO_NOT_TRACK=1, while the Hugging Face model card says the engine reads no
environment variables. If you use Whistle because audio should stay private, check this yourself before
shipping it.
Phonon-2: near large-model accuracy at 164 MB
Phonon-2 is NVIDIA's Parakeet TDT 0.6B v3, a 2.5 GB model, compressed to about 2.1 bits per weight and fine-tuned to keep its accuracy. Fermion says it is the most accurate open English model under 900 MB; that figure is the size class, and the download itself is 164 MB.
On the seven English test sets of Hugging Face's Open ASR Leaderboard, Fermion reports:
| Model | Download | Average WER % |
|---|---|---|
| Parakeet TDT 0.6B v3 (the original) | 2,508 MB | 4.96 |
| Phonon-2 | 164 MB | 5.21 |
| Canary 180M Flash | 737 MB | 5.69 |
| Whisper large-v3-turbo | 1,618 MB | 6.58 |
So it loses a quarter of a point against the model it came from, at one fifteenth of the size, and it is ahead of Whisper's large turbo model on these English sets.
The widely quoted "an hour of audio in about 20 seconds" is Fermion's figure for an M5 MacBook Air using the Mac's GPU. On the CPU alone, Fermion's own figure is 40 times real time, about 90 seconds for an hour of audio, which is still fast.
Things to know before you use it:
- It is English only, although the NVIDIA model it comes from supports 25 European languages.
- The CC-BY-4.0 licence on the weights means you must credit NVIDIA and Fermion if you redistribute them.
- It reads WAV, FLAC, OGG and AIFF but refuses MP3 and M4A, so convert those first with ffmpeg.
- It needs Python 3.10 or newer, and the base install pulls in PyTorch and Transformers, so it is a large install even though the model is small.
- Fermion Research is new, and its website and repositories name no people behind it.
Other small options
These two are not the only small models. Sizes and LibriSpeech test-clean error rates from each project's own papers and pages:
| Model | Size | WER on LibriSpeech test-clean | Licence |
|---|---|---|---|
| Whistle | 16.9 MB | 4.31 | Apache-2.0 |
| Vosk small English | 40 MB | 9.85 | Apache-2.0 |
| Moonshine Tiny | 27M parameters | 4.52 | MIT |
| Whisper tiny.en | 39M parameters | 5.4 | MIT |
| Whisper base.en | 74M parameters | 4.1 | MIT |
| Phonon-2 | 164 MB | 1.72 | CC-BY-4.0 |
Whisper's numbers here use beam search, its more accurate decoding setting, from Table 9 of the paper.
Which one to use
- English dictation or voice notes inside an app, smallest possible size: Whistle. At 17 MB it fits where nothing else does, and it also covers six European languages.
- The best English accuracy on a laptop: Phonon-2, if you are comfortable with an anonymous publisher and a heavier install.
- The safest, best-known choice: Whisper base.en through whisper.cpp. It is older and not the fastest, but it is MIT licensed, widely used and well understood.
- Meetings with several speakers: none of the small models does well on the AMI meeting set. Use a larger model, or test on your own recordings first.
Every number in this post is the maker's own, measured on clean test sets and on their hardware. Before you choose, record a few minutes of the audio you actually have and try two or three models on it.
Sources
- Whistle model card (Cactus Compute, Hugging Face) huggingface.co
- Needle engine and Whistle benchmarks (Cactus Compute, GitHub) github.com
- Phonon-2 model card (Fermion Research, Hugging Face) huggingface.co
- Phonon-2 speed figures (Fermion Research) fermionresearch.com
- Robust Speech Recognition via Large-Scale Weak Supervision (the Whisper paper) cdn.openai.com
- Moonshine: Speech Recognition for Live Transcription and Voice Commands arxiv.org
- Vosk models alphacephei.com
- #speech-to-text
- #whisper
- #on-device-ai
- #open-source
- #transcription
Written by Souvik Samanta · Co-Founder & CTO, ByteShades
Software developer who builds LLM-powered web, Android and backend apps, with a background in NLP.
LinkedIn

