← 所有文章

Apple全新Speech框架:SpeechAnalyzer对比SFSpeechRecognizer

iOS 26在现有的SFSpeechRecognizer之外引入了一个全新的语音识别框架。新的API入口是SpeechAnalyzer,配合围绕它组合的模块(SpeechTranscriberSpeechDetector1。Apple官方的定位是:SpeechAnalyzer是现代化路径——全新的设备端模型、长音频支持、自动语言管理、面向实时场景的低延迟,以及支持随时间扩展更多分析类型的模块化架构。SFSpeechRecognizer仍会继续维护并正常运行;对于依赖其自定义词汇功能的应用而言,它依然是合适的工具,因为新框架尚未提供该功能。

本文将新框架与旧框架进行对照梳理。切入点是”何时迁移”,而非”如何使用新的API”,因为每个已有可用SFSpeechRecognizer集成的团队都面临同样的取舍:新框架的现代模型与架构是否值得迁移成本,还是已有的自定义词汇投入足以让团队留在旧框架?

TL;DR

  • SpeechAnalyzer(iOS 26+)是Apple现代化的设备端语音识别框架。它协调初始化时配置的分析模块;iOS 26内置三个模块:SpeechTranscriber(长音频)、DictationTranscriber(短语句,对应SFSpeechRecognizer的等价模块)和SpeechDetector(语音活动检测,必须与转录模块搭配使用)2
  • 新框架围绕长音频构建:讲座、会议、多人对话。它完全在设备端运行,自动管理语言,并搭载Apple全新的专有模型,据报道在等价的转录任务上比Whisper Large V3 Turbo快2倍3
  • SFSpeechRecognizer仍会继续维护并正常运行。旧框架保留了自定义词汇功能(注册已知关键词以提升领域术语的识别准确率),新框架尚未提供此功能。
  • 迁移按功能逐项进行,并非全有或全无。需要长音频转录、更低延迟或更好远场音频质量的应用迁移到SpeechAnalyzer。已有自定义词汇投入的应用为这些功能保留SFSpeechRecognizer,并为新功能添加SpeechAnalyzer

  • 本系列的Vision框架文章介绍了Apple的另一项设备端感知原语;SpeechAnalyzer将同样的设备端、无云端模式延伸到了音频领域。

架构:分析器+模块

SpeechAnalyzer本身并不是转录器。它是一个协调器,负责管理音频分析会话,并将音频缓冲区分发给一个或多个模块2。模块通过init(modules:)初始化器在初始化时配置,分析则通过start(inputSequence:)传入音频缓冲区的AsyncSequence来启动:

import Speech

let transcriber = SpeechTranscriber(
    locale: .current,
    transcriptionOptions: [],
    reportingOptions: [.volatileResults],
    attributeOptions: []
)
let analyzer = SpeechAnalyzer(modules: [transcriber])

try await analyzer.start(inputSequence: audioInputSequence)

for try await result in transcriber.results {
    if result.isFinal {
        print(result.text)
    }
}

iOS 26内置三个模块:

SpeechTranscriber 专为长音频(讲座、会议、多人对话)设计的语音转文本模块。返回流式结果,包含每个token的时间信息、置信度分数,以及应用通过for try await消费的results AsyncSequence。每个结果都带有isFinal标志,用于区分易变的部分假设与最终文本。

DictationTranscriber 旧版SFSpeechRecognizer场景的直接替代品:使用与SFSpeechRecognizer相同的设备端模型进行短语句转录。从SFSpeechRecognizer迁移过来处理短查询的应用应选择DictationTranscriber;为长音频录制采用该框架的应用应选择SpeechTranscriber。这种区分很重要,因为SpeechTranscriberDictationTranscriber使用不同的语言覆盖范围和不同的模型路径。

SpeechDetector 语音活动检测。在音频流中检测到语音开始和结束时上报事件。检测器无法独立运行;必须与同一SpeechAnalyzer实例中的某个转录模块搭配使用。应用可用它来控制转录算力(不转录静音段),或驱动UI提示(”现在开始说话”指示器)。

模块化架构是相对于SFSpeechRecognizer的结构性改进。旧API将音频会话管理、语言检测和转录合并到单一对象;新API分离了关注点,应用可按需组合所需模块。

新模型带来了什么

SpeechTranscriber背后的转录模型是Apple专门为该框架开发的全新设备端模型4。Apple在WWDC 2025上重点展示的改进包括:

长音频质量。 该模型针对持续数分钟乃至数小时的转录进行训练,而不仅是短查询。讲座、播客、多人会议和听写会话的转录精度可与Whisper级模型相提并论。MacStories的独立测试显示,在等价的转录任务上比MacWhisper的Large V3 Turbo版本快约2.2倍3

远场音频处理。 房间另一端的麦克风、有多位发言者的会议桌音频、带环境噪声的音频。该模型针对这些场景进行了训练;SFSpeechRecognizer的旧模型处理这些情况时表现欠佳。

实时低延迟运行。 SpeechTranscriber的流式结果比旧框架的SFSpeechRecognitionTask.shouldReportPartialResults回调到达得更快。需要呈现实时转录的应用(字幕、语音驱动UI、听写)可获得更流畅的更新。

自动语言管理。 SpeechTranscriber(locale:)接受一个起始locale,但模型能适应流中途的语言切换。旧框架则要求开发者为每种语言实例化对应的识别器,并在它们之间切换。

无应用体积成本。 该模型随系统下发,而非随应用下发。采用SpeechAnalyzer的应用无需打包额外的模型权重。与在应用包内打包Whisper级模型相比,差异显著:一套有竞争力的设备端转录栈付出的包体字节数为零。

旧框架仍能提供什么

SFSpeechRecognizer在iOS 26中仍会继续维护并正常运行。应用可能继续使用它的三个理由:

自定义词汇。 SFSpeechRecognitionRequest.contextualStrings允许应用注册一系列已知关键词(专有名词、技术术语、产品名称),让模型更可能准确识别它们。该功能可大幅提升领域专用应用的准确率(带药品名的医疗听写、带案例引用的法律应用、带零件编号的工程应用)。SpeechAnalyzer尚未提供自定义词汇;对依赖该功能的应用而言,迁移意味着精度回退。

支持更老的系统版本。 SFSpeechRecognizer从iOS 10起可用;SpeechAnalyzer要求iOS 26+。面向iOS 18及更早版本的应用需要旧框架。

已有可用集成。 拥有稳定、经过审计、性能良好的SFSpeechRecognizer集成的应用没有迫切的迁移理由。新框架的改进对新场景(长音频转录、远场音频、多人对话)最为关键;通过旧API处理短语音查询的应用可能收益不足以证明迁移的合理性。

何时迁移

值得说明的三个迁移触发场景:

应用处理长音频。 会议录音器、讲座转录应用、播客转文本工具。新模型对持续音频的训练正合适;旧模型在长会话中会出现质量衰减。优先迁移。

应用需要远场或嘈杂音频。 会议室转录、单只远距麦克风的访谈录音、在有环境噪声的环境中采集的音频。新模型在这些场景下的表现明显更好。

应用展示实时转录UI。 字幕叠加、听写界面、语音驱动的辅助UI。SpeechTranscriber流式结果的更低延迟让UI感觉更响应迅捷。

不一定值得迁移的场景:

  • 带自定义词汇的短语音查询(处方听写、法律术语)。保留SFSpeechRecognizer以使用词汇功能;如果Apple在未来版本中添加词汇支持,再考虑SpeechAnalyzer
  • 需要支持iOS 18及更早版本的应用。SpeechAnalyzer仅限iOS 26;无论如何,代码库都需要旧框架来支持更老的目标版本。

并行使用模式

对于既要支持旧系统版本,又希望在iOS 26+上获得新框架质量的应用,并行使用是合适的方式:

import Speech

if #available(iOS 26.0, *) {
    let transcriber = DictationTranscriber(locale: .current)
    let analyzer = SpeechAnalyzer(modules: [transcriber])
    try await analyzer.start(inputSequence: audioInputSequence)
    for try await result in transcriber.results {
        if result.isFinal {
            handleTranscription(result.text)
        }
    }
} else {
    let recognizer = SFSpeechRecognizer(locale: .current)!
    let request = SFSpeechAudioBufferRecognitionRequest()
    request.shouldReportPartialResults = true
    request.requiresOnDeviceRecognition = true
    let task = recognizer.recognitionTask(with: request) { result, error in
        guard let result else { return }
        handleTranscription(result.bestTranscription.formattedString)
    }
}

DictationTranscriber是iOS 26+分支的合适选择,因为迁移目标正是SFSpeechRecognizer的使用场景(带相同听写模型的短查询)。面向长音频的应用应在iOS 26分支中将DictationTranscriber替换为SpeechTranscriber

两个框架可以共存;运行时检查会根据可用性选择合适的那一个。彼此互不阻塞;应用的转录管线据此自适应。

隐私与Speech授权入口

两个框架共享相同的Speech框架权限(Info.plist中的NSSpeechRecognitionUsageDescription)和相同的用户授权流程5。隐私机制是一致的:两个框架的语音转录都在设备端进行。SpeechAnalyzer从设计上就是仅设备端的;SFSpeechRecognizerSFSpeechRecognitionRequest本身的requiresOnDeviceRecognition标志被设为true时默认使用设备端,否则可能回退到服务端路径。

由此带来的影响是:使用SpeechAnalyzer的应用仍需正确处理Speech授权。用户提示、设置项、App Store隐私营养标签都使用同一套授权机制。

对于将麦克风音频流传给分析器的应用,标准的AVAudioSession配置同样适用。本系列的隐私清单文章介绍了使用Speech的应用所需的清单条目;两个框架都受同一隐私声明的约束。

与Agent工作流的连接

SpeechAnalyzer的设备端模型与结构化输出与本系列两个模式天然契合:

用Foundation Models进行应用内推理。SpeechTranscriber转录音频,再用设备端LLM(详见Foundation Models设备端LLM)总结转录文本的管线,可完全在设备端运行。网络调用总数:零。第三方数据暴露总量:零。

用App Intents驱动语音操作。 接受转录文本作为输入的AppIntent可通过Vocal Shortcuts(详见无障碍即平台)或Apple Intelligence的操作入口被调用。intent的perform方法运行SpeechAnalyzer转录输入,然后分发到应用逻辑。整个流程是私密且本地的。

模式如下:新的Speech框架补全了设备端感知三角(Vision处理图像、Foundation Models进行语言推理、Speech处理音频),让完全本地化的AI功能在iOS应用中真正可行。

这个模式对iOS 26+应用意味着什么

三点要义。

  1. 新代码默认采用SpeechAnalyzer 现代化模型、模块化架构,以及在长音频/远场/实时场景下的更好表现,使其成为合适的起点。当需要支持旧系统版本或自定义词汇时,旧框架是回退选项。

  2. 依赖词汇功能的应用保留SFSpeechRecognizer 在Apple为新框架添加自定义词汇之前,依赖contextualStrings提升领域术语精度的应用应保留旧API。两个框架可以共存;按功能混用是合适的模式。

  3. 设备端隐私机制从Vision延伸到Speech。 围绕Vision设备端CV构建的应用如今对音频也有了等价能力。结合Foundation Models进行推理,从感知到语言的完整管线可在本地运行,无需暴露任何第三方数据。

完整的Apple Ecosystem系列:类型化App IntentsMCP服务器路由问题Foundation Models运行时与工具链LLM之分三种入口单一事实来源模式两个MCP服务器面向Apple开发的hooksLive ActivitieswatchOS运行时SwiftUI内部机制RealityKit的空间心智模型SwiftData模式纪律Liquid Glass模式多平台发布平台矩阵Vision框架Symbol EffectsCore ML推理Writing Tools APISwift Testing隐私清单无障碍即平台SF Pro字体系统visionOS空间模式我拒绝写什么。系列首页位于Apple Ecosystem Series。如需更宏观的iOS与AI agent结合的背景,请参阅iOS Agent开发指南

FAQ

SFSpeechRecognizer是否已被弃用?

Apple尚未正式弃用SFSpeechRecognizer。它在iOS 26中继续维护并仍受支持。WWDC 2025的定位是:SpeechAnalyzer是新代码现代化的推荐路径;旧框架适用于特定场景(自定义词汇、支持更老的系统版本)。

我可以用SpeechAnalyzer处理预录音频文件吗?

可以。SpeechAnalyzer.start(inputSequence:)接受音频缓冲区的AsyncSequence。应用可将任意音频源(通过AVAudioEngine的麦克风、预录文件URL、AVAsset实例)封装为AsyncSequence适配器,并送入分析器。无论输入来源是什么,转录流都通过相同的for try await result in transcriber.results方式消费。

如果迁移,自定义词汇会怎样?

SpeechAnalyzer / SpeechTranscriber目前不支持自定义词汇。依赖该功能获取领域专用精度的应用在Apple添加该功能之前不应迁移这条路径。混合方案(用SpeechAnalyzer进行通用转录,用带contextualStringsSFSpeechRecognizer处理对词汇敏感的转录)在iOS 26下可行。

我可以在服务端运行SpeechAnalyzer吗?

不行。SpeechAnalyzer是一个仅设备端的框架。它没有服务端路径。服务端转录的合适工具是云端API(OpenAI Whisper API、Google Cloud Speech-to-Text、AWS Transcribe)或自托管模型。Apple框架的价值正是设备端隐私和零次调用成本。

语言检测是如何工作的?

SpeechTranscriber(locale:)接受一个初始locale。模型能自动适应流中途的语言切换。对于事先已知语言的应用(已本地化应用的听写功能),明确指定即可。对于多语言场景(发言者可能切换语言的会议转录器),自动管理是合适的行为。

这与本系列其他设备端ML文章如何结合?

SpeechAnalyzer是设备端感知栈的第三根支柱:Vision(详见Vision框架)处理图像,Speech处理音频,Core ML(详见Core ML设备端推理)是两者底层的引擎。Foundation Models(详见Foundation Models设备端LLM)处理语言推理。它们共同构成完整的设备端AI管线,无需任何网络调用。

参考资料


  1. Apple Developer:Bring advanced speech-to-text to your app with SpeechAnalyzer(WWDC 2025 session 277)。介绍SpeechAnalyzer框架、模块化架构以及全新的设备端转录模型。 

  2. Apple Developer Documentation:SpeechAnalyzerSpeechTranscriber。涵盖分析器与模块架构的框架参考。 

  3. MacStories:Hands-On: How Apple’s New Speech APIs Outpace Whisper for Lightning-Fast Transcription。在Mac Silicon硬件上对新模型与Whisper Large V3 Turbo的独立基准测试,报告转录速度约快2倍。 

  4. Apple Developer Documentation:Bringing advanced speech-to-text capabilities to your app。Apple官方采纳指南,涵盖流式结果与多locale支持。 

  5. Apple Developer Documentation:SFSpeechRecognizer.requestAuthorization(_:)。两个语音框架共享的授权入口。 

相关文章

Core AI:在 Apple silicon 上运行模型

Core AI 是 iOS 27 的底层模型执行框架:asset 与 model 的区分、NDArray 张量、计算单元定向,以及 Apple silicon 上的推理函数。

6 分钟阅读

iOS 27 中的 Foundation Models:工具调用控制

iOS 27 新增 GenerationOptions.ToolCallingMode,用于引导设备端模型如何使用工具,并内置两个 Vision 工具:OCRTool 与 BarcodeReaderTool。

4 分钟阅读

设计工程师的Agent技术栈

设计工程师需要能够强制执行视觉一致性、字体排版规范、色彩合规性和审美品味的Agent基础设施。以下是六大核心组件。

1 分钟阅读