Local Speech Recognition Models Tested: Qwen3, SenseVoice, Parakeet, Whisper
We tested Audio Note's local speech models on the same clips on Mac and Windows: WER for English, CER for Chinese, plus speed. Full method, charts, limits, and raw JSON included.
This is not a leaderboard. We took the local speech recognition models you can pick in Audio Note, ran them on the same audio, and recorded how many words or characters they got wrong and how long they took. The clips, scoring method, charts, and raw results are public on this site, so you can recompute any number here.
If you only want to know which model to use for Chinese or English, the next section is enough. If you want to know how far to trust the numbers, read "How we tested" and "Limits".
Short answer
| You want | Our pick | Why (see tables below) |
|---|---|---|
| Chinese, fast and accurate | SenseVoice, or Zipformer (zh-en) | CER around 2% on both machines, 1.5 to 4 minutes per hour of audio |
| Chinese, accuracy first | Whisper Large-v3 Turbo or Qwen3-ASR | Turbo CER 0.33% (Mac) / 0.99% (Win Vulkan); Qwen3 0.66% on both |
| English, accuracy first | Qwen3-ASR, Cohere Transcribe, Parakeet | WER 1.6% to 2.1%, nearly identical on both machines, a gap of one or two words |
| English, speed first | Moonshine, Whisper Base, Zipformer | 1 to 6 minutes per hour (faster on Mac), 1.7 to 5 times the error rate |
| Whisper on Apple silicon | Base or Small | 1.3 to 3 minutes per hour |
These picks hold for clean speech from one or two speakers. Meeting noise, phone audio, accents, and mixed Chinese-English were not tested.
WER, CER, and RTF in plain words
Word error rate (WER) is used for English. The output is aligned word by word with a reference transcript; substitutions, deletions, and insertions are divided by the number of reference words. 2% WER means about 2 mistakes per 100 words.
Character error rate (CER) is used for Chinese, which has no spaces between words. Punctuation and whitespace are removed and Latin letters lowercased before comparing character by character.
Real-time factor (RTF) is processing time divided by audio length. RTF 0.1 means one hour of audio takes about six minutes. RTF is only comparable on the same machine and the same kind of inference.
How we tested
Two kinds of models, two ways to run them
Audio Note's local models fall into two groups that run differently, so we test and report them separately and do not rank them in one table:
- Qwen3-ASR, SenseVoice, Parakeet, Cohere Transcribe, FireRed, Moonshine, Zipformer: always CPU inference in the app.
- Whisper (Base / Small / Large-v3 Turbo): GPU accelerated. macOS uses the system GPU; Windows can use Vulkan or CUDA.
Because one group runs on CPU and the other on GPU, Whisper's times are not directly comparable with the rest.
Clips
Five clips, each with its reference transcript:
| Clip | Length | Language | Source |
|---|---|---|---|
| Built-in performance benchmark clip | ~34.5 s | English | Ships with the app |
| Long sentences with deliberate pauses | ~71.0 s | English | Synthetic speech |
| Dialogue with self-corrections | ~68.4 s | English | Synthetic speech |
| Tech podcast style monologue | ~79.7 s | English | Test fixture |
| Two-person tech podcast, ~310 characters | ~74.7 s | Chinese | Synthetic speech |
One thing up front: most clips are synthetic speech. They are clear and noise-free, far easier than a real meeting. Error rates below are low across the board. Use them to compare models with each other, not to predict your own recordings.
There is only one Chinese clip, about 310 scored characters. 1% CER is roughly 3 characters, so a 1% gap between two models can be three characters.
Scoring
- If the reference contains Han, kana, or Hangul, CER is used. Otherwise WER.
- Both sides are normalized first: full-width folded to half-width, lowercased, punctuation and symbols removed, letters and digits of every script kept (é and ü are not dropped).
- English numbers are unified: "twenty five" equals "25", "1,000" equals "1000", "3.5" equals "three point five".
- CER: Han, kana, and Hangul are compared per character; English words and numbers inside Chinese text are compared as whole words, so one English word does not count as several letters.
- Not normalized: Chinese numerals versus digits, and traditional versus simplified characters. Those count as errors.
- Each clip also records insertion, deletion, substitution, and repetition rates. Repetition counts only adjacent repeats (loops of 1 to 4 tokens) beyond those already in the reference.
- Segmentation matches the app's file transcription. Whisper decodes in parallel on macOS, so subtitle lines can arrive out of order; we sort by timestamp and clamp overlaps before joining the text, otherwise the error rate jumps to double digits from scrambled ordering.
Models that do not support a language are not forced to run it. Parakeet, Moonshine, and English Zipformer do not cover Chinese, so they only have four English results. Whisper Large-v3 and the Chinese community fine-tune of that time were skipped because the model files were missing on both machines (the Chinese fine-tune has since been retired from the app).
Hardware and settings
| Item | Mac | Windows |
|---|---|---|
| CPU | Apple M4, 10 cores (4 performance + 6 efficiency) | AMD Ryzen Threadripper 3960X |
| Memory | 16 GB | 128 GB |
| GPU | Apple M4 integrated GPU (Whisper only) | NVIDIA GeForce RTX 3080 (Whisper only) |
| OS | macOS 26.3.1 | Windows 11 Pro |
| App version | Audio Note 2.2.0 | Audio Note 2.2.0 |
The Mac is a laptop chip and the Windows machine is a desktop, so absolute times are not comparable across them; only relative gaps within one machine are.
| Model | Size | Quantization |
|---|---|---|
| Cohere Transcribe | 2.7 GB | int8 |
| Qwen3-ASR | 942 MB | int8 |
| FireRed CTC | 742 MB | int8 |
| Parakeet | 639 MB | int8 |
| SenseVoice | 229 MB | int8 |
| Zipformer (English) | 147 MB | int8 |
| Zipformer (zh-en) | 72 MB | int8 |
| Moonshine | 42 MB | quantized |
| Whisper Base | 141 MB | fp16 |
| Whisper Small | 465 MB | fp16 |
| Whisper Large-v3 Turbo | 1.5 GB | fp16 |
Sizes use binary units (1 GB = 1024 MB); the app's download size is shown in decimal, so the two differ by a few percent.
English results
| Model | WER Mac | WER Windows | RTF Mac | RTF Windows |
|---|---|---|---|---|
| Qwen3-ASR | 1.64% | 1.76% | 0.140 | 0.319 |
| Cohere Transcribe | 2.04% | 2.04% | 0.207 | 0.391 |
| Parakeet | 2.06% | 2.06% | 0.065 | 0.148 |
| Whisper Small | 2.17% | 2.01% / 2.75% | 0.049 | 0.052 / 0.055 |
| Whisper Large-v3 Turbo | 2.41% | 2.69% / 3.28% | 0.056 | 0.064 / 0.060 |
| Moonshine | 3.07% | 2.95% | 0.019 | 0.036 |
| SenseVoice | 3.45% | 3.42% | 0.025 | 0.067 |
| Whisper Base | 3.55% | 3.11% / 3.94% | 0.020 | 0.036 / 0.039 |
| Zipformer (English) | 8.23% | 8.23% | 0.030 | 0.103 |
| Zipformer (zh-en) | 8.43% | 8.67% | 0.028 | 0.073 |
| FireRed CTC | 10.67% | 10.79% | 0.126 | 0.267 |
In the Windows column, Whisper shows two numbers: Vulkan / CUDA. Other models have a single backend, so they show one number.
How to read it:
- The most accurate tier is Qwen3-ASR, Cohere, Parakeet, Whisper Small, and Whisper Large-v3 Turbo, all between 1.6% and 3.3% on both machines. The four English clips hold roughly 1500 words, so the gap inside this tier is a dozen words. Do not read much into the order.
- Whisper's three sizes barely differ on either machine: Mac Base 3.55%, Small 2.17%, Turbo 2.41%; Windows Base 3.11–3.94%, Small 2.01–2.75%, Turbo 2.69–3.28%. The ranking shifts slightly per machine, a reminder that more parameters does not always mean fewer errors.
- Moonshine and Zipformer are much faster, at 1.7 to 5 times the error rate. Good for a quick draft.
- FireRed is built for Chinese; English is not its strength.
- Whisper numbers come from the GPU and the rest from the CPU, so RTF is not directly comparable.
Chinese results
| Model | CER Mac | CER Windows | RTF Mac | RTF Windows |
|---|---|---|---|---|
| Whisper Large-v3 Turbo | 0.33% | 0.99% / 1.97% | 0.064 | 0.060 / 0.058 |
| Qwen3-ASR | 0.66% | 0.66% | 0.112 | 0.272 |
| SenseVoice | 1.97% | 1.97% | 0.024 | 0.058 |
| FireRed CTC | 2.30% | 2.96% | 0.114 | 0.257 |
| Zipformer (zh-en) | 2.63% | 2.63% | 0.024 | 0.060 |
| Whisper Base | 2.63% | 18.09% / 2.63% | 0.023 | 0.035 / 0.040 |
| Whisper Small | 2.96% | 1.32% / 3.29% | 0.056 | 0.055 / 0.060 |
| Cohere Transcribe | 7.89% | 7.89% | 0.171 | 0.361 |
In the Windows column, Whisper shows two numbers: Vulkan / CUDA. Other models have a single backend, so they show one number.
With about 310 characters, error counts are easier to picture: 0.33% is about 1 character, 0.66% about 2, 1.97% about 6, 2.63% about 8, and 7.89% about 24.
- Whisper Large-v3 Turbo missed about one character on Mac; Qwen3-ASR is about two on both machines.
- SenseVoice and Zipformer (zh-en) miss four to five more characters but run four to five times faster (1.8 s versus 4.8 to 8.4 s on Mac). If a person will proofread anyway, they are usually the better trade.
- Whisper Base on Windows Vulkan switched to traditional characters for the second half of the clip (forms such as 確實, 覺得). We deliberately do not convert between simplified and traditional, so 18.09% is almost entirely that difference; the same model on CUDA scores 2.63%, matching Mac. One backend change swinging a small model that far says a lot about language stability — on Windows, use at least Small.
- Whisper Small on Windows Vulkan scores 1.32% (about 4 characters), lower than Mac's 2.96%. That is segment-level noise, not a conclusion.
- Cohere sits in the top English tier but missed about 24 characters here, more than twenty times Turbo. "Multilingual" does not mean equally good in every language.
Speed: how long you would wait
CPU models (Qwen3-ASR, SenseVoice, and the rest)
| Model | Mac | Windows |
|---|---|---|
| Moonshine | ~1.1 min | ~2.1 min |
| SenseVoice | ~1.5 min | ~3.9 min |
| Zipformer (zh-en) | ~1.6 min | ~4.2 min |
| Zipformer (English) | ~1.8 min | ~6.2 min |
| Parakeet | ~3.9 min | ~8.9 min |
| FireRed CTC | ~7.4 min | ~15.9 min |
| Qwen3-ASR | ~8.0 min | ~18.6 min |
| Cohere Transcribe | ~12.0 min | ~23.1 min |
Whisper (GPU, both Windows backends)
| Model | Mac | Windows CUDA | Windows Vulkan |
|---|---|---|---|
| Whisper Base | ~1.3 min | ~2.4 min | ~2.1 min |
| Whisper Small | ~3.0 min | ~3.4 min | ~3.1 min |
| Whisper Large-v3 Turbo | ~3.5 min | ~3.6 min | ~3.8 min |
These are extrapolated from short clips. Long files also depend on segmentation, memory, and thermals, so treat them as orders of magnitude. Every run also pays a model load, which weighs more on short clips, so these numbers run slightly above the per-clip RTF columns.
CUDA and Vulkan are close on Windows (within about 10%); in this test Vulkan came out slightly ahead. If one backend misbehaves on your machine, switching to the other costs little.
Error rates for the same model barely moved between the two machines (Qwen3-ASR: 0.66% Chinese on both; SenseVoice 1.97% on both); speed did. Speed depends mostly on the machine and backend, accuracy mostly on the model.
Which model for which job
- Chinese meetings or interviews you will proofread: start with SenseVoice or Zipformer (zh-en), rerun key passages with Qwen3-ASR or Whisper Large-v3 Turbo when you need exact quotes.
- English podcasts and lectures: Parakeet, Cohere, and Qwen3-ASR all sit around 2%; pick Whisper Base or Moonshine if speed matters more.
- Fast drafts only: Moonshine (English) or Zipformer (zh-en).
- Apple silicon Mac: Whisper gets system GPU acceleration; Base is already fast (about 1.3 minutes per hour), and Large-v3 Turbo is the pick for character-accurate Chinese.
- Windows with an NVIDIA GPU: CUDA and Vulkan perform about the same, so choose on stability. On this Chinese clip Vulkan made fewer mistakes (Small 1.32% versus CUDA 3.29%), so try Vulkan first.
- Tight on memory: Cohere Transcribe alone is 2.7 GB and Qwen3-ASR close to 1 GB; Moonshine is 42 MB.
- Dialects, Cantonese, other languages: not tested; try your own recordings.
Which models you can use depends on your plan. See the pricing page and the in-app model list.
Why public leaderboards are not comparable
The Whisper paper, the Sherpa-ONNX pretrained model pages, and the Hugging Face Open ASR Leaderboard use datasets such as LibriSpeech and Common Voice with their own splits. Their WER cannot be ranked against our clips.
Limits
- Five clips, mostly synthetic, only one in Chinese.
- No meeting noise, far-field audio, phone audio, accents, or code-switching.
- Everything except Whisper was CPU only: the desktop app does not use GPU inference for those models yet.
- Whisper was tested with Base, Small, and Large-v3 Turbo only; Large-v3 and the Chinese community fine-tune were missing on both machines (the Chinese fine-tune has since been retired from the app).
- Whisper Base on Windows Vulkan produced traditional characters for half the Chinese clip, so 18.09% is almost entirely a simplified/traditional mismatch; we do not convert scripts when scoring. The same model on CUDA scores 2.63%.
- Mac and Windows are different generations of hardware; cross-platform speed is a trend only.
- The Mac run happened on a working desktop (browser and IDE in the background), so its speed numbers are slightly conservative; the Windows run was close to idle.
- Charts are generated straight from the raw data and rounded to two decimals; use the raw JSON for exact comparisons.
Reproduce it
Raw results (local paths, machine identifiers, and transcripts removed):
- ml-engine-mac-cpu.json (Mac, non-Whisper models)
- whisper-metal-mac.json (Mac, Whisper)
- ml-engine-win-cpu.json (Windows, non-Whisper models)
- whisper-vulkan-win.json (Windows, Whisper Vulkan)
- whisper-cuda-win.json (Windows, Whisper CUDA)
The charts come from the same five files:
When citing, use the model and clip identifiers plus the raw decimals from the JSON instead of the rounded tables here.
FAQ
Why are the error rates so low compared with my experience? Most clips are clear synthetic speech. Real meetings have noise, crosstalk, and accents, so error rates go up. Use these numbers to compare models, not to predict your recordings.
Is Whisper or the other models better? Different implementations, hardware, and settings, so no direct ranking. With a GPU to accelerate it, Whisper is fast. On plain CPU, models such as SenseVoice are just as fast and far smaller.
Why is Whisper slow the first time on Mac? The system has to compile the model into a machine-native format on first load, which is slow and happens once. The test runs one discarded pass per model and records only the second, so compile time does not inflate the numbers. You see the same one-off wait the first time you use a model in the app.
Why CER instead of WER for Chinese? Chinese has no natural word boundaries, so word-level scoring distorts the result. Character-level scoring is closer to what a proofreader sees.
How do I compare on my own machine? Pick a 1 to 3 minute recording that represents your work, run it through two or three candidates, count mistakes in the first minute, and time it. The steps are at the end of our local transcription roundup.