← Reader board: all formats

Which offline speech-to-text engine for Python makes the fewest mistakes?

Parakeet, faster-whisper, whisper.cpp, Whisper, Moonshine, Vosk: each one tested on the same 130 English clips with reference transcripts: audiobooks, read sentences, meetings (headset and table microphone) and earnings calls, 14.9 minutes. New PyPI releases are tested again by themselves. Updated 06 November 2026.

130 files from Speech test set (LibriSpeech, FLEURS, AMI meetings, Earnings-22 calls); 130 of them give text to at least one library.
Library🔴 Fails where
another reads
🟡 Empty where
another reads
⏱ Hangs or
crashes
✅ Word error
rate
Median
ms/file
Total
seconds
1 Parakeet 0.12.0 · model TDT 0.6B v2
Note: With huggingface-hub 1.31.0: with 1.32+ (new shared cache layout) and current onnxruntime, the model fails to load ("External data path escapes model directory"), as many other ONNX models do. why
00011.1%770124.2
2 faster-whisper 1.2.1 · model base.en int8
Note: With PyAV 18.1.0: faster-whisper 1.2.1 (the latest release) fails on every file with PyAV 19 (fixed on its main branch, not released yet). why
00016.8%46679.8
3 whisper.cpp 1.5.1 · model base.en00016.8%1226162.9
4 Whisper 20250625 · model base.en00017.6%1142164.9
5 Moonshine 20251121 · model base00019.8%1228167.9
6 Vosk 0.3.45 · model small en-us01037.1%918138.2

By kind of clip: word error rate

ClipsParakeetfaster-whisperwhisper.cppWhisperMoonshineVosk
ami-close-mic 20 clips12.4%22.7%23.4%22.7%18.3%44.3%
ami-far-field 15 clips29.3%47.6%46.6%49.0%50.5%79.3%
earnings-calls 25 clips19.1%24.5%23.9%26.6%37.5%60.4%
fleurs 20 clips9.3%12.4%12.9%12.9%14.8%32.5%
librispeech-clean 30 clips1.3%3.6%3.3%3.6%3.6%10.3%
librispeech-other 20 clips6.4%10.9%11.8%11.5%10.6%23.8%

Don't want to run it yourself? I also run Audio & Video Transcriber as a pay-per-use API on Apify (it uses faster-whisper). Disclosure: that tool is mine; the rankings above come only from the measurements.

How this is measured