苹果全新的 SpeechAnalyzer API,与 Whisper 及其前代产品的性能对比
Apple's new SpeechAnalyzer API, benchmarked against Whisper and its predecessor

原始链接: https://get-inscribe.com/blog/apple-speech-api-benchmark.html

Apple 的新版 **SpeechAnalyzer** API(随 iOS/macOS 16 推出)在英语语音转文字的准确率上,表现显著优于旧版 `SFSpeechRecognizer`,甚至超过了 OpenAI 的 Whisper Small 模型。 在 LibriSpeech 基准测试中的结果显示,与旧版引擎相比,该新 API 将词错误率(WER)降低了 3.5 到 4 倍,同时输出内容带有更出色的标点符号。至关重要的是,SpeechAnalyzer 的运行速度约为 Whisper Small 的三倍,且完全在设备端运行,使其成为 Apple Silicon 平台上进行英语转录最高效、最准确的选择。 尽管 Whisper 因其广泛的多语言支持(支持 100 多种语言,而 SpeechAnalyzer 支持 30 种)及平台独立性,仍是一款不可或缺的工具,但此前有利于 Whisper 的“准确率差距”在苹果硬件上已不复存在。鉴于这些发现,*Inscribe* 的开发团队已更新其软件,优先为支持的语言选用苹果原生引擎。该研究强调,对于开发者和用户而言,从苹果旧版 API 迁移至新引擎至关重要,因为新引擎在不牺牲准确率的前提下,提供了明显更优的性能表现。

最近的一场 Hacker News 讨论分析了苹果新的 **SpeechAnalyzer API**,并将其性能与 OpenAI 的 Whisper 以及 Nvidia Parakeet 等开源模型进行了对比。 **主要观点包括:** * **基准性能:** 最近的一项测试作者声称,苹果的 SpeechAnalyzer API 在速度和准确性上均显著优于较旧的 Whisper 模型(Tiny、Base、Small),在纯净语音上的词错率降低了 3.5 到 4 倍,且完全在设备端运行。 * **对基准测试的批评:** 许多评论者认为,仅用过时的 Whisper 模型作为对比是不够的。他们建议应采用诸如 **Nvidia Nemotron/Parakeet** 以及新发布的 **MOSS-Transcribe-Diarize** 等最先进的替代方案作为基准,并指出许多用户已经在本地成功运行这些模型。 * **“套壳”应用市场:** 用户对那些仅仅封装 Whisper 的付费第三方转录应用的未来表示怀疑。随着苹果将更强大的原生设备端转录功能集成到 iOS 和 macOS 中,这些“随意编码”的套壳应用可能会面临淘汰。 * **实际问题:** 讨论强调了当前苹果 API 在方言/口音支持、缺乏自动语言检测方面存在的问题,以及在设备端“隐私”处理与安全敏感型用户所需的透明度之间取得平衡的难度。
相关文章

原文

The result, up front

Apple's new SpeechAnalyzer is the most accurate on-device speech engine we tested. It beat every Whisper model we ship, including Whisper Small, on both the clean and the noisy half of LibriSpeech, while running roughly three times faster than Small. And the API it replaces, SFSpeechRecognizer, came last on clean speech: behind even Whisper Tiny, a 40MB model.

Enginetest-clean WERtest-other WERModel size
Apple SpeechAnalyzer (iOS/macOS 26)2.12%4.56%system
Whisper Small (WhisperKit CoreML)3.74%7.95%~460MB
Whisper Base5.42%12.51%~140MB
Whisper Tiny7.88%17.04%~40MB
Apple SFSpeechRecognizer (legacy)9.02%16.25%system

Lower is better: WER is word error rate, the percentage of words an engine substitutes, drops, or invents. LibriSpeech test-clean is 2,620 utterances of clean read speech; test-other is 2,939 harder, noisier utterances. Every engine ran fully on-device on an Apple M2 Pro (32GB, macOS 26.5.1).

Apple SpeechAnalyzer2.12%

Whisper Small3.74%

Whisper Base5.42%

Whisper Tiny7.88%

SFSpeechRecognizer (legacy)9.02%

Why we ran this

With iOS 26 and macOS 26, Apple replaced SFSpeechRecognizer with a new API, SpeechAnalyzer and SpeechTranscriber. It published no accuracy figures for either one. So every developer deciding whether to migrate, and everyone comparing Apple's built-in recognition against Whisper, has been guessing.

We ship both Apple engines and three Whisper models side by side in Inscribe, a private on-device AI workspace, which puts us in an unusual position: we can run all five through identical production code paths on the same machine and the same audio. So we did.

Should you migrate off SFSpeechRecognizer?

Yes. This is the clearest result in the data. The new API cuts word error rate by 3.5 to 4x on the same audio: from 9.02% to 2.12% on clean speech, and from 16.25% to 4.56% on noisy speech. There is no accuracy trade-off to weigh; the new API wins everywhere we measured, and it produces punctuated, cased text where the legacy engine's output is rougher.

Put differently: an hour-long meeting transcribed with the legacy API contains roughly four times as many wrong words as the same meeting through SpeechAnalyzer. If your app still uses SFSpeechRecognizer for anything longer than a voice command, the migration is worth it on accuracy alone.

SpeechAnalyzer vs Whisper

The more surprising result: Apple's new engine also beat Whisper Small, the largest model we ship, by a comfortable margin on both splits, at roughly a third of Whisper Small's compute time per second of audio. For English, on Apple hardware, the built-in engine is now the strongest on-device option we can measure.

Whisper keeps two real advantages. It covers far more languages (SpeechTranscriber supports around 30 locales), and it runs anywhere, not just on Apple platforms with OS 26. But for English transcription on a current iPhone or Mac, the days of Whisper being the automatic accuracy pick are over.

We changed our own product on this result: Inscribe's Auto engine now prefers SpeechAnalyzer for the languages it supports, and Whisper for everything else. Shipping a benchmark and ignoring it in your own defaults would be a strange kind of honesty.

Speed

All five engines ran comfortably faster than real time: between roughly 12x and 40x on the M2 Pro, meaning an hour of audio transcribes in about 1.5 to 5 minutes on-device. SpeechAnalyzer was about 3x faster than Whisper Small per second of audio while beating it on accuracy. We are deliberately not printing a precise per-engine timing table yet: the accuracy runs shared the machine with a development workload, which does not affect WER but does add noise to timing. We will update this page with timings from a dedicated idle run.

Methodology, and why you can check it

A benchmark from a company that sells one of the engines should be treated with suspicion. Ours has two properties designed for that suspicion.

The Whisper column is reproducible against OpenAI's own numbers

We used LibriSpeech precisely because OpenAI published Whisper's WER on it. If our harness measured Whisper correctly, our numbers should land on theirs. They do, on all six measurements:

Engine / splitOursOpenAI publishedDelta
Whisper Tiny, test-clean7.88%7.6%+0.28
Whisper Base, test-clean5.42%5.0%+0.42
Whisper Small, test-clean3.74%3.4%+0.34
Whisper Tiny, test-other17.04%16.9%+0.14
Whisper Base, test-other12.51%12.4%+0.11
Whisper Small, test-other7.95%7.6%+0.35

The small, consistent positive offset (a slightly stricter text normalizer plus CoreML quantization) is what honest reproduction looks like; random error would scatter in both directions. Since the same corpus, normalizer, and scorer produced the Apple columns, the numbers nobody else can check inherit the validation from the numbers anyone can.

The raw transcripts are public

Every per-utterance hypothesis for both Apple engines is downloadable below, next to the reference text and per-utterance WER. Disagree with our normalization? Rescore it yourself.

Details that decide whether a WER number means anything

  • Same production code paths. Each engine ran through the exact code Inscribe users get, not a lab harness with different buffering or settings.
  • Text normalization. LibriSpeech references are uppercase, unpunctuated, with numbers spelled out; modern engines emit punctuation and digits. Both sides pass through the same normalizer (casing, punctuation, digits-to-words, contractions), mirroring OpenAI's English normalizer. Score raw text and you punish engines for formatting nicely rather than for mishearing.
  • Corpus WER, not averaged WER. Total errors divided by total reference words, so short utterances are not over-weighted.
  • Fully on-device, verified. SFSpeechRecognizer sends audio to Apple's servers by default. We forced on-device recognition and made the harness refuse to run rather than silently fall back to the cloud, both because a cloud result would invalidate the comparison and because we were not going to upload 5,559 utterances from a privacy product.
  • Failures counted, not hidden. An engine returning nothing scores 100% WER for that utterance. It happened once in 27,795 transcriptions (legacy, test-other).

What building this taught us about our own app

The benchmark found a shipping bug in Inscribe. Our Apple-engine file import fed audio to SpeechAnalyzer and closed the input stream, but never called finalizeAndFinishThroughEndOfInput(). Without that call the analyzer never delivers its final results, and the import hangs forever. It had gone unnoticed because our Auto setting preferred Whisper. The fix shipped the same day, and it is part of why we publish the harness details: measuring your own product carefully has a way of finding the things you were not looking for.

Limitations

  • English only. LibriSpeech is English read speech. These numbers say nothing about the 100+ languages Whisper supports that SpeechTranscriber does not.
  • Read audiobook speech, not meetings. LibriSpeech is the standard, comparable corpus, which is why we started with it. Accented, far-field, and multi-speaker meeting audio is the obvious follow-up.
  • One machine. M2 Pro, macOS 26.5.1. Accuracy should transfer across Apple Silicon; speed will vary by chip.
  • Whisper via WhisperKit CoreML. Quantized on-device conversions, the same builds Inscribe ships. Reference GPU implementations may differ slightly, which the validation table quantifies.

What this means if you just want good transcription

If you are on a current iPhone or Mac, the best on-device transcription engine for English is already in the operating system, and the private option is no longer the compromise option. Inscribe uses exactly the engines measured here: SpeechAnalyzer where it supports your language, Whisper where it does not, all fully on-device, nothing uploaded. The benchmark is not separate from the product; it is how we decide what the product does.

Related reading

联系我们 contact @ memedata.com