Benchmark

Almost every dictation tool claims high accuracy and none of them show a number. Here are ours, the method that produced them, and the places where we lose.

Results

VocalCode defaultWhisper base
English — word error rate2.33%4.13%
English — median latency154 ms426 ms
Chinese — character error rate5.54%31.12%
Chinese — median latency43 ms178 ms

200 utterances per language. English scored over 4,675 words, Chinese over 2,092 characters. All on CPU, no GPU. Measured 4 August 2026 on VocalCode 0.4.19.

Method

What the Chinese gap actually looks like

A 31% character error rate does not mean "one character in three is wrong". It means a large share of the output is not Chinese at all. Base Whisper hallucinates English on Mandarin audio:

reference   买卖
whisper     My My My My My My My My My My My My

reference   嗨
whisper     ( 回家 )

reference   喂喂喂喂在不在
whisper     Wait wait wait 差不多

Telling it the language is Chinese does not fix this — we checked, and the output was identical either way. It is a property of the model, not of language detection. This is why VocalCode ships a dedicated Chinese model rather than relying on a general multilingual one.

Where we lose

Which Whisper, and why it matters

The Whisper model measured here is the ~150 MB class. That is the tier of model that free dictation tools typically ship — Superwhisper's own documentation rates its free models 5, 3 and 1 out of 10 and puts everything it rates 8 or above behind Pro, including Parakeet and its dedicated Chinese model.

So the honest summary is not "we beat Superwhisper". It is: the model VocalCode gives you by default is the class of model other tools charge a subscription for — and against the class they give away, these are the numbers.

We did not test the 500 MB model in their free tier; we do not have it. If someone runs that comparison we will link it here, including if it goes against us.

Reproducing this

Both corpora are public and free. VocalCode ships the harness that produced these numbers:

vocalcode-app transcribe file1.wav file2.wav …

It prints one tab-separated row per file — path, decode milliseconds, raw text, cleaned text — and the model is whichever one your configuration selects. Point it at LibriSpeech, score against the published transcripts, and you will get our English column. If you get something different, please tell us.

Try it — 30 days free Windows & macOS · runs locally · $4.99 once if you keep it