Skip to content
All posts
  • Dictation
  • Engineering
  • Performance

Dictation on the Neural Engine, in half a second

The numbers behind Snapbak’s offline dictation: 2.3% word error rate, ten seconds of speech transcribed in 0.060 seconds, and half a second from key‑up to text.

Saksham Sharma2 min read

Dictation has one hard requirement that never shows up in a feature list: it has to feel instant. If there’s a pause between letting go of the key and seeing the words, you stop talking to the computer and start operating it. So before Snapbak shipped dictation, we set a bar for it, measured it, and tuned the engine until the numbers cleared the bar. This post is about those numbers.

The setup

Snapbak’s dictation runs Parakeet, a speech recognition model, entirely on your Mac’s Neural Engine — the part of Apple Silicon built for exactly this kind of workload. It runs in a separate helper process, so transcription never stalls the app’s interface, and it works with no network connection at all. It is English‑only, on purpose: everything happens on the device, and nothing you say is sent to a server.

The numbers

We measure on the standard benchmarks and on real machines:

  • Accuracy: 2.3% word error rate on LibriSpeech’s test‑clean set, measured on the shipped engine. On clear speech at normal pace, roughly one word in forty‑five comes out wrong.
  • Speed: ten seconds of speech transcribe in 0.060 seconds. The model is faster than you can talk, which is the property that matters — you never wait on the model, only on yourself.
  • End to end: median 0.44 seconds from key‑up to text on an M4, including the handoff into whatever app you were typing in. That’s the number you actually feel, and half a second is fast enough to disappear.
  • Network traffic during dictation: zero bytes with default settings. Not “minimal” — none.

The part that took the longest: your vocabulary

Raw accuracy on benchmark audio is the easy half. The hard half is the words you actually use: teammates’ names, product names, the jargon of your project. A general model spells “Kubernetes” fine and then mangles your company’s name every single time.

So Snapbak has a personal dictionary where you add names once, with an optional “sounds like” hint for the tricky ones. On our held‑out set of name clips, adding entries took correctness from 48.1% to 90.7% — the difference between fixing every dictation and fixing none.

Why a helper process

The transcription engine lives in its own process, separate from the app. When the model spins up, warms its caches, or chews through a long utterance, the interface keeps its frame budget; the helper absorbs the work. It’s the same reason Safari doesn’t render pages in the window server’s process. You never see this, unless you’ve ever watched a menu bar app stutter while it thought — in which case you’ll notice its absence.

What it means in practice

The numbers reduce to a habit: talk the way you’d type. Dictate the Slack reply while the thread is open. Dictate the commit message in the editor. Dictate the ticket description while the bug is on screen, then record what broke without switching apps. The half second disappears; the typing is the part that goes.

If you want to check any of this yourself: download Snapbak, hold the key, and watch the text land. The engine reports its own timings in the dictation history.

Snapbak is free for the first 100 users.