- 它实现了 Apple 的 SpeechAnalyzer API,同时支持 Core ML 本地开源模型。
- 支持的语音引擎包括 NVIDIA Parakeet 变体与阿里 Qwen3-ASR。
- 内置说话人日志功能,使用 NVIDIA Streaming Sortformer 跟踪多达四位说话人。
- 模型可直接从 Hugging Face Hub 下载至本地标准缓存。
什么是 AnySpeechRecognizer?
AnySpeechRecognizer 是由 Hugging Face 开发的 Swift 软件包,它实现了 Apple 的语音转文本 API,同时允许开发者选择其他识别引擎。它镜像了 macOS 26 和 iOS 26 中引入的 SpeechAnalyzer 框架,可以使用 Apple 的默认引擎或运行在 Core ML 上的本地模型。
该软件包还引入了说话人日志(speaker diarization)功能,可以跟踪谁在何时说话。通过在设备端运行开源模型,它允许开发者在不将数据发送到外部云服务的情况下转录音频。
- 开发者
- Hugging Face
- 目标平台
- macOS 26+、iOS 26+
- 语音模型
- Apple Speech、NVIDIA Parakeet、阿里 Qwen3-ASR
- 说话人日志模型
- NVIDIA Streaming Sortformer (v2, v2.1)
- 运行时引擎
- Core ML 与 GPU
- 软件包语言
- Swift
支持的语音识别模型
AnySpeechRecognizer 支持多个已转换为 Core ML 格式并托管在 Hugging Face Hub 上的开源语音转文本模型。开发者可以根据语言需求、延迟需求以及可用存储空间来选择模型。
NVIDIA Parakeet v3 支持 25 种欧洲语言,具备自动语言检测、实时临时结果、词级时间戳和词级置信度得分。Moondream 对 Parakeet Ultra 变体进行了后训练以获得更高准确率,而 Parakeet Unified EN 则仅针对英文。Parakeet 模型下载大小约为 600 MB,另外可选配 590 MB 的流式编码器。
阿里 Qwen3-ASR 提供 0.6B 和 1.7B 参数版本,需要 0.9 GB 至 2.4 GB 的存储空间。它支持 30 种语言和 22 种中文方言,包括粤语、普通话、日语和韩语,但它在 GPU 上运行,以长达 40 秒的切片块处理文件,不支持词级时间戳或实时流式临时结果。
| 模型 | 规模 | 语言覆盖范围 | 实时流式功能 | 下载大小 |
|---|---|---|---|---|
| Parakeet TDT v3 | 0.6B | 25 种欧洲语言 | 词级时间戳、置信度、临时结果 | ~600 MB(+590 MB 实时编码器) |
| Parakeet Ultra | 0.6B | 25 种欧洲语言 | 词级时间戳、置信度、临时结果 | ~600 MB(+590 MB 实时编码器) |
| Parakeet Unified EN | 0.6B | 仅限英文 | 词级时间戳、置信度、临时结果 | ~600 MB(+590 MB 实时编码器) |
| Qwen3-ASR | 0.6B, 1.7B | 30 种语言及 22 种中文方言 | 每 40 秒切片输出单一最终结果 | 0.9 GB 至 2.4 GB |
| Streaming Sortformer | 未说明 | 未说明 | 最多支持 4 位同时说话人 | ~250 MB |
使用 Sortformer 进行说话人日志区分
AnySpeechRecognizer 为 Apple 的 API 补充了说话人日志功能,这是默认 Speech 框架所缺失的能力。它整合了 NVIDIA 的 Streaming Sortformer 模型,以检测对话期间是谁在说话。
该日志分析器可同时跟踪多达四位不同的说话人,即使他们的声音重叠也是如此。名为 SpeakerTimeline 的组件会将日志分析器的输出与转录器的词级时间戳对齐,使应用能够显示按说话人轮次分段的格式化逐字稿。
该软件包默认使用 Sortformer v2,并提供 Sortformer v2.1 作为可选方案。Hugging Face 指出,Sortformer v2.1 在额外的会议音频上进行过训练,在会议测试中表现出更高的准确率。
如何配置和使用 AnySpeechRecognizer
AnySpeechRecognizer 旨在作为 Swift 中 Apple SpeechAnalyzer 框架的无缝替代方案。开发者可以通过更新框架导入并初始化自定义模型配置,来替换 Apple 的原生引擎。
- 将 AnySpeechRecognizer 软件包添加到你的 Swift 项目中,并在源文件中导入 Speech 和 AnySpeechRecognizer。
- 使用你选择的模型配置初始化 SpeechTranscriber,例如 ParakeetSpeechModel(variant: .v3) 或 QwenSpeechModel。
- (可选)使用 SortformerDiarizationModel() 初始化 SpeakerDiarizer 以跟踪说话人轮次。
- 传入你的模块并调用 AssetInventory.assetInstallationRequest,然后等待 downloadAndInstall() 从 Hugging Face Hub 下载 Core ML 模型权重。
- 使用你的转录器和日志分析器模块初始化 SpeechAnalyzer,然后传入音频文件或实时音频流缓冲区以接收转录序列。
在 App Store 沙盒之外运行的 Mac 应用会将下载的权重存储在标准 Hugging Face 缓存文件夹中,从而允许与本地 Python 脚本直接共享模型。
限制与系统要求
AnySpeechRecognizer 需要支持 SpeechAnalyzer 的 Apple 操作系统版本,具体为 macOS 26 或 iOS 26 及更高版本。该软件包由 Hugging Face 在搭载 M4 Max 的 Mac Studio 上使用 macOS 27.0.1 进行了基准测试。
硬件需求因模型而异。Qwen3-ASR 在 GPU 上执行,速度明显慢于 Parakeet,因此在实时麦克风转录中的实用性较低。它也缺乏对部分临时结果、词级时间戳和置信度得分的支持。
Parakeet 提供更快的处理速度,但需要额外的 8 秒实时编码器模块来降低实时延迟。Hugging Face 报告指出,虽然此实时编码器将分析时间缩短了约三分之一,但会导致词错率(WER)略有上升。
常见问题
什么是 AnySpeechRecognizer?
AnySpeechRecognizer 支持哪些语言?
AnySpeechRecognizer 是否包含说话人日志功能?
我可以向 AnySpeechRecognizer 添加自定义语音模型吗?
AnySpeechRecognizer 的模型文件存储在哪里?
资料来源:Hugging Face
想让 AI 给出的答案是你的品牌?
免费检查你的网站对 ChatGPT、Gemini 与 Perplexity 准备得有多好,约十秒完成。