Skip to content
Halopen

engineering

We measured our own dictation accuracy. Here are the numbers.

Ten clips, three ways of scoring, one command to re-run. What Halopen's on-device mode got right, what it got wrong, and the method behind both numbers.

Halopen · · 7 min read

Halopen’s on-device mode transcribed 8 of 10 clips exactly, at 0.30× real time on an M4 Max, with a mean word error rate of 6.0% once number formatting is ignored and the personal dictionary is applied — or 17.6% scored strictly against the spoken form, which is the same run and the same transcripts. Why one figure is not enough is the first thing this page explains. The two it missed were a French sentence and a compound product name. Every number here comes from a script in our repository, and you can rebuild the audio yourself with a command that ships on your Mac.

We published this because the dictation roundups that rank for “best dictation app” mostly do not test. One widely-cited guide says so in its own disclosure: it compared products from their documentation and pricing pages rather than benchmarking them. That is an honest thing to admit, and it leaves a gap. Here is our half of it.

We measured our own app only. Nothing here scores another product, so nothing here can misstate one.

One number would have lied

Word error rate compares a transcript to a reference, word by word. Ours is written the way the sentence was spoken, which creates an odd result: when the clip says “claude opus four point seven” and the model writes Claude Opus 4.7, strict scoring calls that a 60% failure — while a writer would call it correct.

So we report three numbers instead of one:

ScoringMean WERWhat it counts
Strict17.6%Every difference from the spoken form, including 4.7 for “four point seven”
Ignoring number and clock formatting6.6%Digits and “a.m.” treated as the same as their spoken words
With the personal dictionary applied6.0%As above, plus the multi-word dictionary a real user has

The normaliser that produces the middle column has tests that make sure it cannot flatter the result: “Maria” for “Meria” and the mis-decoded French clip must still count as errors, and they do.

Every clip, and what came back

Measured 2026-09-15 on an Apple M4 Max, macOS 26.6.2, using Whisper Large v3 on-device. Model load, paid once per launch, was 1.6 seconds.

ClipAudioTranscribeReal-time factorWER (+dictionary)What came back
11.2s0.75s0.63×0%Charlevoix, Michigan.
21.6s0.72s0.45×0%Claude Opus 4.7
32.7s0.77s0.28×0%Let me check the metadata in the Supabase function.
42.2s0.73s0.33×0%The brown fox jumps over the lazy dog.
51.9s0.75s0.40×50%Bonjour. Comment à l’es-vous.
62.4s0.76s0.31×0%Uh so like, you know, the thing is…
76.0s0.87s0.15×10%…verify the whisper kit integration before I ship the privacy mode.
84.8s0.87s0.18×0%Cafe Meria opens at 7 a.m. on weekdays and we serve cold brew until 2 p.m.
94.6s0.81s0.18×0%Send Dallas a quick note about the affiliate code and ask him to share it on Instagram.
106.3s0.86s0.14×0%…makes voice dictation race against the IDE.

Longer clips are relatively faster: the two six-second takes transcribed in under a second each, while a 1.2-second clip took 0.75s. Most of the cost is fixed, not per-word.

The two real misses

Clip 5, French. The reference is “Bonjour, comment allez-vous”; it came back “Bonjour. Comment à l’es-vous.” This is not a mystery: on-device recognition transcribes in your Mac’s first preferred language instead of detecting the language of each take. Dictating another language means reordering your languages in System Settings. Cloud transcription behaves differently here.

Clip 7, a compound name. “WhisperKit” came back as “whisper kit”. The words are right and the joining is wrong — a small thing in prose, an annoying thing in a technical sentence.

And one that fixed itself. Clip 8 contains “Cafe Meria”. The model heard Maria, the way most people would. Because “Cafe Meria” is a multi-word entry in the personal dictionary, the app corrected it after transcription — which is exactly what that feature is for, and why the last column reads 0%. Single-word dictionary entries are not applied on-device; why dictation misspells the names you added explains the mechanism.

Reproduce it without our code

The clips are speech synthesis, which is the part that makes this independently checkable: say ships with macOS, so you can rebuild byte-comparable audio and score any dictation tool you like against the same sentences.

# One clip; repeat for each sentence below.
say -v Samantha -r 175 -o clip.aiff "the brown fox jumps over the lazy dog"
afconvert -f WAVE -d LEI16@16000 -c 1 clip.aiff clip.wav

The ten references, in order: Charlevoix Michigan · claude opus four point seven · let me check the metadata in the supabase function · the brown fox jumps over the lazy dog · Bonjour, comment allez-vous (voice: Audrey) · uhhh so like, you know, the thing is · I’m working on the dictation app and I need to verify the WhisperKit integration before I ship the privacy mode · Cafe Meria opens at seven AM on weekdays and we serve cold brew until two PM · Send Dallas a quick note about the affiliate code and ask him to share it on Instagram · The cursor jumps to a new line every time the autocomplete fires which makes voice dictation race against the IDE.

Word error rate is edit distance over words, divided by the number of reference words, after lowercasing and removing punctuation.

What these numbers are not

  • Not live microphone accuracy. Synthesised speech has no room tone, no breath, no accent, no plosives. Real dictation is harder. This measures the recognition path under clean conditions, which is a floor, not a promise.
  • Not a rating. Ten clips on one Mac, one run. A different Mac, a different room or a different voice will produce different numbers.
  • Not cloud mode. These are on-device results only. Cloud transcription uses a different model with different behaviour, and we have not published numbers for it.
  • Not a comparison. We did not install, run or score another product, and we are not going to publish other companies’ numbers we cannot keep current.

If you want to check it against your own voice instead, that is the honest test anyway: download it, turn off Wi-Fi, and dictate a sentence with a name and a number in it. Our cloud-versus-on-device guide covers what changes when you do.

Pass it on

Try Halopen

Hold the function key. Speak.

Halopen is free for 14 days, no credit card. Pro is $19/mo or $179/yr — unlimited.

Questions

Answered here.

How accurate is on-device dictation on a Mac?
On our ten-clip fixture set, Halopen's on-device mode transcribed 8 of 10 clips exactly, with a mean word error rate of 6.0% once number formatting is ignored and the personal dictionary is applied. Strict scoring against the spoken form gives 17.6%, most of which is the model writing 4.7 where the reference says four point seven. These are synthesised clips on one Mac, not a rating of live dictation.
How fast is on-device transcription?
On an M4 Max it transcribed at 0.30x real time on average — a six-second take took about 0.9 seconds — after a one-time model load of 1.6 seconds per launch. Longer clips were relatively faster: 0.14x to 0.18x. Speed depends on your Mac and what else it is doing.
What did it get wrong?
Two clips. A French sentence came back mis-decoded, because on-device recognition follows your Mac's first preferred language rather than detecting each take. And it wrote whisper kit for WhisperKit, splitting a compound product name. A misheard name, Maria for Meria, was fixed by the personal dictionary.
Can I reproduce these numbers?
Yes, and without our code. The clips are generated by macOS say from ten sentences published on this page, so you can rebuild identical audio and score any dictation tool against it. The exact commands are below.
Why publish your own benchmark instead of a comparison?
Because we only measured our own app. Nothing here scores another product, so nothing here can misstate one. A comparison would need us to keep other companies' facts current forever, and those facts decay.

Power-user cheat sheet

Take Halopen with you.

The Halopen power-user cheat sheet by email — hotkeys, the right mode for each app, dictionary tips, voice patterns for prompting. Four short notes over two weeks can follow, only if you ask for them. Unsubscribe in one click.