Speech Models That Fit in 500kb
Moonshine Micro runs STT and TTS in under 500kb — no GPU, no API, no network calls. Here's where that changes what you can ship.
Whisper-tiny is 75MB. Cloud speech APIs add 200-400ms round-trip latency. Moonshine's micro variant does speech recognition and text-to-speech in under 500kb — small enough to embed in a web page, a mobile bundle, or a microcontroller.
No GPU. No API key. No network round-trip.
Why this matters
If you've tried adding voice to an app, you've hit the same wall every time. Whisper is too heavy for the client. Cloud STT APIs add latency, cost money per request, and force you to send user audio to a third party. Browser-native SpeechRecognition is inconsistent across browsers and quietly deprecated in some.
A 500kb model eliminates all three problems. You ship the model with your app, run it on a CPU, and respond in the same process.
How it works
Moonshine is an open-source speech recognition model built for speed. The micro variant applies aggressive quantization and architectural compression to bring the footprint under 500kb. It runs on lightweight runtimes — ONNX Runtime for Python, ONNX Runtime Web for browsers — with no CUDA dependency.
The same compression approach covers TTS: generate audio client-side without calling a cloud endpoint.
Where this helps
- Offline voice commands in a PWA — no Google Speech API, no app store approval, works on a plane
- Privacy-first transcription — audio never leaves the device, critical for healthcare and legal apps
- Embedded systems — ESP32 or Pi Pico projects that need voice input but can't fit Whisper's 75MB minimum
- Browser extensions — real-time transcription without background network traffic that triggers privacy warnings
Watch out
500kb means compromises. Accuracy is lower than Whisper-large — expect solid results on clear speech, struggles with heavy accents or noisy environments. The model is English-focused. Vocabulary is narrower than full-size models. And "under 500kb" refers to the model file only — you still need a runtime like ONNX Runtime Web (~1.5MB gzipped).
Try it yourself
pip install moonshine
python -c "
from moonshine import moonshine
model = moonshine.load_model('micro')
text = model.transcribe(['audio.wav'])
print(text[0])
"TL;DR
- What happened: Moonshine released a micro variant that runs STT and TTS in under 500kb
- Why it matters: Voice features without cloud APIs, GPUs, or large model downloads — runnable in browsers and embedded devices
- What to try:
pip install moonshineand load themicromodel on a short audio clip