Apple SpeechAnalyzer vs Whisper:第一个硬核基准测试,苹果赢了
Apple 在 iOS 26 和 macOS 26 中悄悄换了语音识别引擎——用全新的 SpeechAnalyzer / SpeechTranscriber 替代了沿用多年的 SFSpeechRecognizer。但 Apple 没有公布任何准确率数据。开发者该怎么选?
Inscribe(一款端侧 AI 工作空间应用)正好同时集成了 Apple 的两代引擎和三个 Whisper 模型,于是他们把全部五个引擎跑在了同一台机器上、同一个音频上,产出了可能是第一份公开的 SpeechAnalyzer 基准测试。
核心结论
| 引擎 | test-clean WER | test-other WER | 模型体积 |
|---|---|---|---|
| Apple SpeechAnalyzer (iOS/macOS 26) | 2.12% | 4.56% | 系统 |
| Whisper Small (WhisperKit CoreML) | 3.74% | 7.95% | ~460MB |
| Whisper Base | 5.42% | 12.51% | ~140MB |
| Whisper Tiny | 7.88% | 17.04% | ~40MB |
| Apple SFSpeechRecognizer (旧) | 9.02% | 16.25% | 系统 |
WER(词错率)= 替换词 + 删除词 + 插入词占比,越低越好。测试语料为 LibriSpeech 的 test-clean(2,620 条干净朗读语音)和 test-other(2,939 条带噪声语音),全部在 Apple M2 Pro (32GB, macOS 26.5.1) 上端侧运行。
三个关键发现:
1. 旧引擎必须迁移
SpeechAnalyzer 相比 SFSpeechRecognizer 在干净语音上将 WER 从 9.02% 降到 2.12%,噪声语音从 16.25% 降到 4.56%——直接降低了约 4 倍。用旧引擎转录一小时会议,错误词数是新引擎的 4 倍。如果你的 App 还在用 SFSpeechRecognizer,没有精度权衡,立刻迁移。
2. 苹果端侧引擎首次击败 Whisper
SpeechAnalyzer 在两个测试集上都击败了 Whisper Small——这是 Inscribe 集成的最大 Whisper 模型——而且速度大约快 3 倍。对于英语转录,在 Apple 硬件上,系统自带引擎现在就是最强的端侧方案。
3. Whisper 的两个护城河
SpeechAnalyzer 仍有明显局限:仅支持约 30 种语言(Whisper 支持 100+),且只能在 Apple 平台的 OS 26 上运行。多语言场景和跨平台需求仍然是 Whisper 的主场。
测试方法论:为什么这篇值得信
行业惯例:厂商发的 benchmark 要打问号。这篇有两个值得一提的设计:
Whisper 列可复现
LibriSpeech 是 OpenAI 公布 Whisper 官方 WER 的标准语料。Inscribe 的 Whisper 测试结果与 OpenAI 公布值高度一致(偏差仅 +0.11% ~ +0.42%),且偏差方向一致、幅度稳定,说明测试框架没有系统性误差。既然同一个框架测 Apple 引擎也用了完全相同的归一化器和评分器,Apple 列的数据可信度继承了 Whisper 列的可复现性。
原始转录全文公开
Apple 两个引擎对全部 5,559 条语音的逐条转录结果、参考文本和逐条 WER 均可下载。对归一化规则有异议?自己重跑一遍。
其他值得注意的细节:
- 统一生产代码路径:所有引擎通过 Inscribe 用户实际使用的同一段代码运行,不是单独搭建的实验室测试
- 文本归一化:LibriSpeech 参考文本全大写、无标点、数字拼写;现代引擎输出带标点和数字。两侧通过同一归一化器处理,避免"格式好反而 WER 高"的惩罚
- 严格端侧验证:SFSpeechRecognizer 默认上传 Apple 服务器。测试强制端侧识别,且如果静默回退云端则直接报错中止(隐私产品的底线)
- 失败计入 100% WER:2,7795 次转录中仅出现 1 次失败(旧引擎在 test-other 上)
性能表现
五个引擎都远超实时——M2 Pro 上约 12x 到 40x,一小时音频在 1.5 到 5 分钟内完成端侧转录。SpeechAnalyzer 在准确率碾压 Whisper Small 的同时,每秒音频的处理时间大约只有 Whisper Small 的三分之一。
不过作者坦诚当前性能数据不够精确(测试时机器上有开发负载),承诺后续会发布空闲环境下的独立计时测试。
发现了自己的 Bug
跑 benchmark 的另一个收获:他们发现了一个 Inscribe 的 shipping bug。导入音频时给 SpeechAnalyzer 送完数据后关闭了输入流,但没有调用 finalizeAndFinishThroughEndOfInput(),导致分析器永远不输出最终结果,导入卡死。因为默认引擎偏好 Whisper 一直没暴露。当天修复,当天发布。
局限性
- 仅英语:LibriSpeech 是英语朗读语料,不涵盖 Whisper 支持的其他 100+ 语言
- 仅朗读语音:不是会议、多人对话、远场噪声等场景,这些是明显的下一步
- 单一硬件:M2 Pro + macOS 26.5.1,准确率应在 Apple Silicon 间可迁移,速度因芯片而异
- Whisper 经 CoreML 量化:与参考 GPU 实现可能有微小差异(验证表已量化)
开发者行动建议
如果你在做涉及语音识别的 iOS/macOS 应用:
- 英语场景:优先使用 SpeechAnalyzer,准确率最高、速度最快、零额外模型体积
- 多语言场景:SpeechAnalyzer 覆盖的语言用它,其余用 Whisper 作为 fallback
- 仍在使用 SFSpeechRecognizer 的:没有理由不迁移,精度差距太大
- 调用注意:记得调
finalizeAndFinishThroughEndOfInput(),否则流式输入会卡死
Inscribe 自己的策略已经说明了:Auto 引擎现在对支持的语言优先选 SpeechAnalyzer,其余用 Whisper。把 benchmark 做了然后忽略它,是最奇怪的诚实。
数据来源
- 原文:Apple's New Speech API vs Whisper: The First Real Benchmark(Inscribe, 2026-07-13)
- 测试语料:LibriSpeech test-clean (2,620 utterances) + test-other (2,939 utterances)
- 硬件:Apple M2 Pro 32GB, macOS 26.5.1
- 逐条原始转录数据及 summary.json 均可从原文下载