2026-07-11 · Mat Silverstein
whisper.cpp vs parakeet.cpp for local transcription
Minutes retains integrations for both engines, but currently selects only its sealed, in-process whisper.cpp path. The available parakeet.cpp helpers accept audio by pathname, which cannot safely receive Minutes' sealed private-audio capability. Parakeet therefore fails closed on every platform until it has a safe byte transport. The upstream performance comparison is still useful, so here are the numbers and the friction we found while building the integration.
The numbers
Parakeet is NVIDIA's FastConformer architecture; parakeet.cpp is its ggml-style local port with Metal acceleration on Apple Silicon. LibriSpeech clean word-error rates, with speed measured on 10 seconds of audio on an M-series GPU:
| Engine | Model | Params | WER | Speed |
|---|---|---|---|---|
| Whisper | small (our default) | 244M | 3.4% | ~200ms |
| Whisper | medium | 769M | 2.9% | ~600ms |
| Whisper | large-v3 | 1.55B | 2.4% | ~1.5s |
| Parakeet | tdt-ctc-110m | 110M | 2.4% | ~27ms |
| Parakeet | tdt-600m | 600M | 1.7% | ~520ms |
Read that table twice. Parakeet's 110M-parameter model matches Whisper large-v3's accuracy with 14× fewer parameters, and transcribes 10 seconds of audio in 27 milliseconds where large-v3 takes a second and a half. The 600M model beats everything in its class at 1.7% WER. On raw accuracy-per-parameter and speed, it isn't close.
So why is Whisper still our default?
Languages. Whisper covers 99 languages. Parakeet's tdt-600m covers 25 European ones, and the 110M model is English-only. If your meetings might contain Japanese, Hindi, Arabic, or Mandarin, the comparison is over before it starts.
Zero-friction install. whisper.cpp has mature prebuilt distribution everywhere. parakeet.cpp has no binary releases as of this writing: you build it yourself with CMake — and on macOS you need full Xcode for the Metal shader compiler, plus CMake 3.31.x specifically, because a bundled dependency trips on CMake 4. Then you download a 2.4 GB .nemo file from HuggingFace and convert it to safetensors with a small Python venv. We documented the whole path and it's reliable — but it's an afternoon, not a brew install.
Streaming partials. Our dictation overlay depends on fast mid-utterance partial results, and Whisper's streaming behavior is what makes that feel live. The retained Parakeet integration does not currently receive production audio because its pathname-only handoff would require restoring plaintext staging.
Private-audio transport. A transcription engine must consume audio without creating a named plaintext file that another same-user process can open. Whisper runs in-process against Minutes' sealed reader. The current Parakeet subprocess and warm-server protocols accept a pathname, so Minutes rejects Parakeet selection and uses Whisper instead.
Where Parakeet's upstream results stand out
English or major-European-language audio on Apple Silicon, especially live transcription. The latency difference is not subtle: for real-time meeting transcription, a warm Parakeet sidecar turns per-utterance transcription from "noticeable lag" into "effectively instant," and on long batch jobs the throughput gap compounds. One contributor runs Parakeet through NVIDIA's NeMo on an RTX 3090: a 68-minute French meeting transcribes in about 3.5 minutes, with quality that beats Whisper large-v3 on mixed-language audio.
The recommendation
Use Whisper in Minutes today. Even if a Parakeet preference or binary is present, Minutes resolves to sealed Whisper rather than stage private audio on a pathname. Parakeet selection can return when its subprocess accepts a safe byte stream, or when an explicitly acknowledged descriptor-isolation protocol closes the same-user open race. Until then, the benchmark advantage is promising research, not a setup path we recommend to Minutes users.
The retained integration notes, including the safety gate and build pitfalls, are in docs/architecture/parakeet.md. Benchmarks are the upstream projects' published LibriSpeech numbers; speed figures are from parakeet.cpp's measurements on M-series GPUs. Minutes is MIT licensed — the pipeline code is on GitHub.