SpeechAnalyzer
又称:SpeechTranscriber、Speech框架
发布于
定义
SpeechAnalyzer是Apple Speech框架中的一个类,随macOS 26和iOS 26推出,App用它把语音音频转成文本。它通过SpeechTranscriber等模块运行分析会话,使用从Apple下载并由系统管理的语音模型。
你不会在“系统设置”中找到SpeechAnalyzer。它是一个开发者API,是App想要语音转文字、又不想自带模型时调用的底层组件。Apple说同样的技术已经在为备忘录、语音备忘录和手记中的功能提供支持。
它对Mac用户重要的原因有两个。基于它构建的App在设备上转写,而且它们共享一套由系统管理的模型,而不是每个App都往你的磁盘上添加自己的模型。
SpeechAnalyzer有什么作用?
Apple的文档把SpeechAnalyzer描述为分析语音音频并管理分析会话的对象。分析器本身不转写。它容纳各个模块,每个模块执行一种分析。Apple说,许多使用场景只需要执行语音转文字的SpeechTranscriber模块。
这个API是为Swift并发编写的。App以异步序列的形式输入音频,再从另一个异步序列读取结果,因此输入、输出和会话控制是解耦的。一个分析器一次只能分析一个输入序列。
- SpeechAnalyzer:容纳各个模块,接收音频输入,并控制整个分析过程。
- SpeechTranscriber:一个转写模块,Apple称它适用于普通对话和一般用途。
- DictationTranscriber:一个类似系统听写功能的转写模块,与较旧的设备兼容。
- SpeechDetector:一个语音活动检测模块,可以根据是否有语音来控制转写,以节省电量。
- AssetInventory:安装并跟踪各模块所需的模型资源。
SpeechAnalyzer与SFSpeechRecognizer对比
SFSpeechRecognizer是较早的语音API,从iOS 10和macOS 10.15开始提供。Apple在WWDC25的讲座中说,这个类可以调用为Siri提供支持的语音转文字模型,适合短篇听写,并且可以在资源受限的设备上使用Apple服务器。Apple对它的文档仍把语音识别描述为一项有使用限制的网络服务。
Apple说,SpeechTranscriber背后的新模型比通过SFSpeechRecognizer使用的模型更快、更灵活,适合长篇音频和远距离音频,例如讲座、会议和对话。Apple的参考页面没有把SFSpeechRecognizer标记为已弃用,所以现有App可以继续工作。
- 运行位置:Apple说使用新API的转写完全在设备上进行。SFSpeechRecognizer在某些语言下可能需要互联网连接。
- 音频长度:Apple提醒开发者,使用SFSpeechRecognizer时要考虑音频时长一分钟的限制。新模型是为长篇音频打造的。
- 让音频留在本地:使用SFSpeechRecognizer时,开发者必须设置requiresOnDeviceRecognition,Apple指出设备端请求的准确度不会那么高。
- 语言:Apple说旧的类依赖用户自己添加语言。新API让App可以自己请求某种语言的模型。
- 结果:新API可以快速提供临时结果,之后再由最终结果替换。
SpeechTranscriber与DictationTranscriber对比
SpeechTranscriber使用Apple新的语音转文字模型。Apple说它适用于除watchOS以外的所有平台,有一定的硬件要求,支持一组语言,之后还会增加更多语言。App在使用它之前,应先检查当前设备是否支持。
DictationTranscriber是在语言或设备不受支持时的后备方案。Apple的文档说,它使用与系统听写功能相同的语音转文字模型,或者与配置为设备端运行的SFSpeechRecognizer相同的模型。对于SFSpeechRecognizer只能通过网络访问来支持的语言,它不提供支持。Apple还补充说,与旧的类不同,用户不必进入“设置”为某种语言打开Siri或键盘听写。
如何使用SpeechAnalyzer转写音频
Apple的参考页面给出了分析音频文件和音频流的一般顺序。以下步骤按照这个顺序,面向在macOS 26或更高版本上用Swift构建Mac App的开发者。
- 创建并配置你需要的模块,例如针对某个区域设置的SpeechTranscriber。
- 使用AssetInventory,确保相关资源已安装或已经存在。
- 创建一个承载语音音频的输入序列,音频可以来自文件,也可以来自麦克风等采集设备。
- 用这些模块和输入序列创建分析器。
- 提供音频并开始分析。
- 在结果到达时从模块读取,并进行处理。
- 完成后结束分析,让结果流随之结束。
如何使用AssetInventory安装语音模型
这些模型不随App打包。Apple把这些资源描述为从Apple服务器下载、由系统管理的机器学习模型。在WWDC25讲座中,Apple说模型保存在系统储存空间中,不会增加App的下载大小或储存空间大小,并且在App的内存空间之外运行。
资源下载后,系统会保留并自动更新它,还会与其他App共享。每个App只能获得有限数量的区域设置预留。
- 按你计划使用的配置创建分析器模块。
- 把你App的资源预留分配给这些区域设置。AssetInventory会在需要时自动完成这一步,你也可以手动预留某个区域设置。
- 为这些模块请求资源安装,并调用其下载和安装方法。
- 等待下载完成。如果资源已经预装,或者其他App已经下载过,可能会立即完成。
- 当你的App不再需要某个区域设置时,释放预留,以便系统稍后移除这些资源。
SpeechAnalyzer私密吗?哪些平台支持它?
Apple的WWDC25讲座表示,转写完全在设备上进行,但需要先获取模型。下载来自Apple的服务器,之后App用SpeechTranscriber转写的音频都在设备上处理。App之后如何处理生成的文本,由该App决定,所以它自己的隐私政策仍然适用。
Apple的文档列出SpeechAnalyzer和SpeechTranscriber适用于iOS 26、iPadOS 26、Mac Catalyst 26、macOS 26、tvOS 26和visionOS 26。DictationTranscriber适用于除tvOS外的相同平台。在Mac上,请求过语音识别权限的App会显示在“系统设置 → 隐私与安全 → 语音识别”中。
SpeechAnalyzer是Mac App在本地转写的一种方式。Whisper和Parakeet等开放模型是另一种方式,它们由App打包或下载,而不是由系统管理。
大家常问的问题。
SpeechAnalyzer是什么?
SpeechAnalyzer是Apple Speech框架中的一个类,用于分析语音音频并管理分析会话。配合SpeechTranscriber模块,它可以在macOS 26、iOS 26及更高版本的App中执行语音转文字。
SpeechAnalyzer能离线工作吗?
Apple说转写完全在设备上进行,但需要先获取模型。资源安装后,系统会保留它们,并与其他App共享。
SpeechAnalyzer需要哪个macOS版本?
Apple的文档列出SpeechAnalyzer从macOS 26.0开始提供。它也适用于iOS 26、iPadOS 26、Mac Catalyst 26、tvOS 26和visionOS 26。
SFSpeechRecognizer已经弃用了吗?
Apple的SFSpeechRecognizer参考页面没有把它标记为已弃用。Apple推出SpeechAnalyzer作为支持更多使用场景的新API,并说它的模型更快、更灵活。
SpeechTranscriber和DictationTranscriber有什么区别?
SpeechTranscriber在受支持的设备上使用Apple的新模型,用于一般转写和长篇转写。DictationTranscriber使用与系统听写功能相同的模型,是较旧设备和其他语言的后备方案。
SpeechAnalyzer的模型会占用我App的空间吗?
不会。Apple说模型保存在系统储存空间中,不会增加App的下载大小或储存空间大小,并且在App的内存空间之外运行。