Earshot
On-device speech-to-text SDK
One Kotlin core drives speech recognition on both iOS and Android. Whisper through WhisperKit on iOS, ONNX Runtime on Android. No audio leaves the phone.
Built to answer a question I kept hitting at work: can you get real transcription quality without shipping a user’s voice to somebody’s cloud. You can.
The hard part was memory. Whisper models plus an audio ring buffer plus the app itself will get you killed by the Android low-memory killer on mid-tier hardware. Rework of the buffering and model loading path took peak memory from 367MB to 230MB.
Accuracy is measured, not claimed: 8.38% word error rate against 14.97% for the platform recognizer on the same device and the same audio.
- peak memory cut
- 37% peak memory cut
- WER vs 14.97% platform
- 8.38% WER vs 14.97% platform
- platforms, one core
- 2 platforms, one core
- Kotlin
- Swift
- WhisperKit
- ONNX Runtime
- KMP