Moonshine Voice: On-Device Speech to Text That's Faster and More Accurate Than Whisper
🛠️ Moonshine Voice
| What it is | An all-in-one on-device voice AI toolkit: STT, TTS, intent recognition, voice cloning, and conversational agents |
| Platform | Python, iOS, Android, macOS, Linux, Windows, Raspberry Pi, microcontrollers |
| Price | Free and open source (MIT) |
| Link | github.com/moonshine-ai/moonshine |
I have been waiting for something like this. OpenAI’s Whisper has been the default for open-source speech to text for years, but it was never built for live voice. Thirty-second input windows, no caching, and it struggles on anything smaller than a laptop. Moonshine fixes all of that.
Moonshine Voice is a from-scratch family of speech models, trained by the moonshine-ai team, that beats Whisper on accuracy while running 10x faster on a MacBook and 20x faster on a Raspberry Pi. Everything runs on-device, no API keys required.
Beats Whisper Large V3 with 1/6 the parameters. The Medium Streaming model gets a 6.65% word error rate on the OpenASR leaderboard versus Whisper Large V3’s 7.44%, but uses 245 million parameters instead of 1.5 billion. That means higher accuracy that actually runs on a phone.
Built for live speech, not batch processing. Whisper locks you into 30-second input windows with zero padding. Moonshine accepts any audio length, caches the encoder state between chunks, and streams results as speech happens. On a MacBook Pro it transcribes in 107ms versus Whisper Large V3’s 11,286ms. On a Raspberry Pi 5, 802ms versus N/A (Whisper Large V3 simply does not run there).
Cross-platform from day one. The core is a portable C++ library using OnnxRuntime, with native bindings for Python, Swift, Java, and C++. The same API works on iOS, Android, macOS, Windows, Linux, and even microcontrollers. You learn it once and deploy everywhere.
Batteries included for voice agents. Beyond STT, Moonshine includes text to speech with voice cloning (ZipVoice, Kokoro, Piper), intent recognition with semantic matching, speaker diarization, and a
DialogFlowsystem for building conversational agents. A complete voice agent is maybe 50 lines of Python.Real languages, not just English. Whisper’s multilingual support drops off sharply for non-European languages. Moonshine trains language-specific models that get much higher accuracy at the same model size for Arabic, Japanese, Korean, Spanish, Ukrainian, Vietnamese, and Mandarin. The TTS supports 20 languages with multiple voice options each.
What to know
The models need to be downloaded separately (the pip package pulls them on first use). STT models range from 34MB (Tiny) to 245MB (Medium). The library itself is MIT licensed.
The G2P (grapheme-to-phoneme) engine for TTS is new and still being tuned. It is a from-scratch replacement for espeak-ng to avoid GPL licensing issues on mobile platforms, so some languages have higher character error rates than the reference implementation. This will improve.
Install & first run
pip install moonshine-voice
moonshine-voice mic --language enThat is it. The first run downloads the model, then you are transcribing live microphone input.
Worth your time if
You are building anything with live voice input and want it to run on-device, especially if you found Whisper too slow or too large for your target hardware.
Related TMFNK Content
- Buzz The go-to desktop GUI for offline Whisper transcription, for when you need to process pre-recorded files rather than live audio.
- audio-kb An end-to-end system that records, transcribes, and indexes audio notes with semantic search.
- STT Tools You Should Know Three privacy-first speech-to-text alternatives for desktop, CLI, and mobile.
Crepi il lupo! 🐺