2026-10-29 18:26 UTC
DANGMUAAI & Developer Tools, Decoded
BackDev Tools

Open Speech Models Beat Apple's Transcriber on Word Error Rate

A new Swift package swaps the engine behind Apple's speech-to-text API, and NVIDIA's Parakeet scored 1.43% word error rate against Apple's 2.12%.

DangMua EditorialOct 29, 20263 min read
Open Speech Models Beat Apple's Transcriber on Word Error Rate

A Swift package lets you keep Apple's speech-to-text API but swap the engine behind it, and the open engines scored lower word error rates.

Hugging Face published AnySpeechRecognizer and AnyDecisionModel on October 29. The first mirrors SpeechAnalyzer, the speech-to-text API Apple introduced in macOS 26 and iOS 26, and adds a choice of recognition engine — including NVIDIA's Parakeet and Alibaba's Qwen3-ASR running locally on Core ML.

The swap is one import line

If your code already uses Apple's shared API, the package mirrors SpeechAnalyzer, SpeechTranscriber, DictationTranscriber, SpeechDetector and AssetInventory, with Apple's Speech framework as the default engine. Changing import Speech to import AnySpeechRecognizer is enough to adopt it; picking Parakeet means changing only how you construct the transcriber.

What the numbers show

The author measured word error rates on LibriSpeech files of three to eight minutes, on an M4 Max Mac Studio running macOS 27.0.1. On the clean test set, Parakeet Unified scored 1.43% and Parakeet v3 scored 1.55%, against 2.12% for Apple's own transcriber. On the harder set the gap held: 2.19% and 2.78% against Apple's 3.97%.

Speed is the other half. Parakeet transcribes an hour of audio in about 20 to 40 seconds from a file, or roughly 1.5 to 2.5 minutes live, using about 100 MB of memory once Core ML has compiled the model. Qwen3-ASR is much slower, needs a few gigabytes, and returns one final result per segment of up to 40 seconds with no word timing or confidence — which makes it a file-transcription engine rather than a live one.

Read these as one developer's measurements, not a benchmark. The post says the numbers come from one machine and a few datasets, and that the package has been tested only on macOS 27, not on an iPhone.

Where each engine earns its place

Language coverage, not accuracy, is the real selection criterion here. Parakeet v3 recognizes 25 European languages and works out which one it is hearing, so you do not pass a locale. Qwen3-ASR covers 30 languages and 22 Chinese dialects, including Mandarin, Cantonese, Japanese and Korean — none of which Parakeet handles.

The package also ships something Apple's framework does not have: speaker diarization. SpeakerDiarizer runs NVIDIA's Streaming Sortformer on Core ML alongside the transcriber on the same timeline, and tracks up to four speakers even when they talk over each other.

One caveat worth pricing in before you plan a meeting-transcription feature: on AMI recordings, where people speak over each other, every engine tested came in above 23% word error rate.

Download sizes and the second package

Models download only when your app asks. Budget roughly 600 MB for each Parakeet, about 590 MB more for the live encoder, 0.9 to 2.4 GB for Qwen3-ASR, and about 250 MB for Sortformer. Files land in the standard Hugging Face cache, so a Mac app outside the sandbox shares them with Python tooling.

AnyDecisionModel is the smaller release and answers a different need. It handles yes-or-no, multiple-choice and rating-scale questions with typed Swift results, deriving each answer from the model's probabilities rather than parsing generated text — so you get a probability for every option instead of one unexplained string. It runs on MLX, Core AI or llama.cpp locally, or against a decision model from another provider.

If you ship a transcription feature on Apple platforms, the test to run is narrow: your own audio, your own hardware, word error rate and wall-clock time against Apple's default. The import swap makes that a cheap experiment, and the iPhone numbers are still missing.

More from DangMua