Reed's News
← 返回精选

苹果 SpeechAnalyzer API 基准测试:超越 Whisper 和前代

AI 88 get-inscribe 2026/7/13 1141 字 原文 ↗

苹果全新SpeechAnalyzer是我们测试过的准确率最高的端侧语音引擎。在LibriSpeech数据集的纯净语音和含噪语音测试中,它的表现全面优于我们搭载的所有Whisper模型(包括Whisper Small),同时运行速度约为Whisper Small的三倍。而它所取代的旧API——SFSpeechRecognizer,在纯净语音测试中排名垫底,甚至不如仅40MB的Whisper Tiny模型。

引擎 test-clean词错误率 test-other词错误率 模型大小
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子集包含2620条纯净朗读语音;test-other子集则是2939条难度更高、含噪的语音样本。所有引擎均在Apple M2 Pro(32GB内存,macOS 26.5.1系统)上完成纯端侧运行测试。

测试背景

随着iOS 26和macOS 26发布,苹果用全新API SpeechAnalyzer和SpeechTranscriber替代了旧版SFSpeechRecognizer,但未公布新引擎的准确率数据。这让每位开发者在决定是否迁移、以及对比苹果内置识别与Whisper性能时,都只能凭经验猜测。

我们在隐私优先的端侧AI工作空间Inscribe中同时搭载了苹果的新旧引擎和三款Whisper模型,这让我们拥有独特优势:可以在同一设备、同一音频样本上,通过完全一致的生产代码路径测试这五款引擎。于是我们开展了本次测试。

是否应从SFSpeechRecognizer迁移?

答案是肯定的,这是本次测试最明确的结论。新API将词错误率降低至原来的1/3.5到1/4:纯净语音识别错误率从9.02%降至2.12%,含噪语音从16.25%降至4.56%。不存在任何准确率取舍问题——在我们所有测试场景中,新引擎均全面胜出,还能生成带标点和大小写规范的文本,而旧引擎的输出格式粗糙得多。

换个角度看:用旧API转录一小时会议,错误词汇量约是SpeechAnalyzer的四倍。如果你的应用仍在使用SFSpeechRecognizer处理语音指令以外的长音频,仅从准确率角度考量,迁移就完全值得。

SpeechAnalyzer vs Whisper

更令人意外的结果是:苹果新引擎在两项测试中均以显著优势击败了我们搭载的最大模型Whisper Small,同时每秒音频的计算量仅为Whisper Small的约1/3。对于英文场景,在苹果硬件上,这款内置引擎已是目前我们能测得的性能最强的端侧选项。

不过Whisper仍保有两大核心优势:支持的语言数量远超SpeechTranscriber(后者仅支持约30个地区语言),且可跨平台运行,不局限于搭载26版系统的苹果设备。但在当前iPhone或Mac上进行英文转录时,Whisper默认作为高准确率首选的时代已成为过去。

基于这一测试结果,我们调整了自家产品:Inscribe的自动引擎模式现在会优先为支持的语言选用SpeechAnalyzer,其余语言则使用Whisper。发布基准测试却在产品默认设置中无视结果,显然不是坦诚的做法。

速度表现

所有五款引擎的运行速度均远超实时处理:在M2 Pro上的速度约为实时的12至40倍,意味着转录一小时音频仅需约1.5到5分钟。SpeechAnalyzer的速度约为Whisper Small的三倍,同时准确率更高。我们暂不公布精确的单引擎计时表,原因是本次准确率测试过程中,设备同时运行了开发任务,这不会影响词错误率,但会给计时数据带来误差。后续我们将在设备空闲状态下重新测试并更新计时数据。

测试方法与可验证性

由售卖相关引擎的公司发布的基准测试难免引人质疑,因此我们的测试设计了两大可验证特性。

Whisper测试结果可与OpenAI官方数据复现

我们选用LibriSpeech数据集,正是因为OpenAI公布过Whisper在该数据集上的词错误率。如果我们的测试工具对Whisper的测量准确,结果应与官方数据吻合。实际情况也确实如此,六项测试数据均高度一致:

引擎/测试子集 我们的测试结果 OpenAI公布数据 差值
Whisper Tiny, test-clean 7.88% 7.6% +0.28
Whisper Base, test-clean 5.42% 5.0% +0.42
Whisper Small, test-clean 3.74% 3.4% +0.34
Whisper Tiny, test-other 17.04% 16.9% +0.14
Whisper Base, test-other 12.51% 12.4% +0.11
Whisper Small, test-other 7.95% 7.6% +0.35

这种微小且一致的正向偏差(源于我们使用了更严格的文本归一化工具,加上CoreML量化处理),正是诚实复现测试的特征;如果是随机误差,差值会正负波动。由于苹果引擎的测试使用了相同的数据集、归一化工具和评分系统,那些无法直接验证的数据,也继承了可验证数据的可信度。

原始转录文本公开

两款苹果引擎的每一条语音假设转录结果,均可与参考文本及单条语音词错误率一同下载。若你不认可我们的归一化规则,可自行重新评分。

决定词错误率数据有效性的细节

  • 统一生产代码路径:所有引擎均通过Inscribe用户实际使用的代码运行,而非采用不同缓冲机制或设置的实验室专用工具。
  • 文本归一化处理:LibriSpeech的参考文本为大写无标点格式,数字以单词形式呈现;而现代引擎会输出带标点和阿拉伯数字的文本。我们对双方结果采用相同的归一化规则(大小写、标点、数字转单词、缩写还原),与OpenAI的英文归一化规则一致。若直接对原始文本评分,会误将引擎的格式优化判定为识别错误。
  • 语料库整体词错误率:以总错误数除以参考文本总词数计算,避免短句被过度加权。
  • 纯端侧运行验证:SFSpeechRecognizer默认会将音频发送至苹果服务器,我们强制开启了端侧识别模式,并设置工具在无法端侧运行时直接终止,而非静默切换至云端——这不仅是为了保证对比的有效性,更是因为作为隐私产品,我们绝不会上传5559条语音样本。
  • 失败结果如实统计:引擎无法返回结果时,该条语音的词错误率计为100%。在总计27795次转录中,仅出现过一次此类情况(旧版引擎在test-other子集测试中)。

测试对我们产品的启发

本次测试发现了Inscribe的一个已上线bug:我们的苹果引擎文件导入功能,在将音频输入SpeechAnalyzer后关闭了输入流,但未调用finalizeAndFinishThroughEndOfInput()方法。缺少这一调用,引擎就无法返回最终结果,导致导入过程永久挂起。此前该问题未被发现,是因为我们的自动模式默认优先使用Whisper。我们当天就修复了这个bug,这也是我们公开测试细节的原因之一:仔细测量自家产品,往往能发现那些被忽略的问题。

局限性说明

  • 仅测试英文:LibriSpeech是英文朗读数据集,本次结果无法反映Whisper支持但SpeechTranscriber不支持的100余种语言的性能。
  • 仅测试朗读语音:LibriSpeech是行业通用的可比数据集,因此我们以此为起点。带口音、远场、多说话人会议音频将是我们后续测试的重点。
  • 单一设备测试:本次测试仅在M2 Pro(macOS 26.5.1)上进行。准确率预计可推广至所有Apple Silicon设备,但速度会因芯片型号而异。
  • Whisper基于WhisperKit CoreML:使用的是量化处理后的端侧转换版本,与Inscribe上线版本一致。参考GPU实现版本的性能可能略有差异,验证表已量化了这一偏差。

对普通用户的意义

如果你使用的是当前款iPhone或Mac,系统内置的SpeechAnalyzer已是英文端侧转录的最佳选择,隐私优先的方案不再意味着性能妥协。Inscribe正是使用本次测试的引擎:支持的语言用SpeechAnalyzer,其余语言用Whisper,全程端侧运行,无任何数据上传。这项基准测试并非独立于产品之外,而是我们决定产品功能逻辑的依据。