AnySpeechRecognizer 和 AnyDecisionModel:Apple 平台上的语音与决策开源模型
概述
AnySpeechRecognizer 和 AnyDecisionModel 是全新的 Swift 软件包,旨在为开发者提供一致、模块化的 API,以便将语音识别和决策能力集成到 Apple 平台的应用程序中。这些工具允许开发者在各种本地和托管模型后端(如 NVIDIA 的 Parakeet、阿里巴巴的 Qwen3-ASR 和 Cloudflare 的 Clef)之间进行切换,同时保持代码库的统一。
AnySpeechRecognizer
AnySpeechRecognizer 扩展了 Apple 原生的语音转文字框架,允许开发者接入替代引擎,同时保持熟悉的 SpeechAnalyzer API。它支持通过 Core ML 进行本地执行,并包含用于转录和说话人日志记录(Speaker Diarization)的专用模块。
支持的引擎和模型
- Parakeet 系列: 包括 Parakeet v3(多语言)、Parakeet Ultra(由 Moondream 优化)和 Parakeet Unified(仅限英语)。这些模型支持实时输入,并提供词级计时和置信度分数。
- Qwen3-ASR: 提供 0.6B 和 1.7B 参数版本,支持 30 种语言和 22 种中国方言。它针对基于文件的转录进行了优化,而非实时流式传输。
- 说话人日志记录: 该软件包引入了使用 NVIDIA 的 Streaming Sortformer 的
SpeakerDiarizer模块,可以同时跟踪多达四名说话人,填补了 Apple 原生 Speech 框架的空白。
技术实现
模型被转换为 Core ML 并托管在 Hugging Face Hub 上,软件包会锁定特定的修订版本以确保一致性。该软件包包含一个名为 hear 的命令行工具,允许开发者测试转录准确性并在自己的硬件上评估性能。在 M4 Max Mac Studio 上的性能基准测试显示,Parakeet 模型在干净的测试数据上可以实现低至 1.43% 的词错误率 (WER)。
AnyDecisionModel
AnyDecisionModel 为决策任务提供了一种结构化、类型安全的方法,摒弃了传统解析语言模型生成的自由格式文本的方法。它旨在为离散选择、是非题和评分量表返回概率。
功能与后端
- 概率输出: 模型返回的不是文本生成结果,而是带有相关概率和置信度分数的类型化结果,使其适用于程序化逻辑。
- 后端灵活性: 该软件包支持多种后端,包括 MLX(用于本地 Apple 芯片执行)、Core AI、llama.cpp、Jev 和 Ollama。
- 决策头 (Decision Heads): 对于高级用例,它支持具有专用决策头的模型,例如 Cloudflare 的 Clef-Flash,可以在单次前向传递中处理复杂的模式。
- 去偏见 (Debiasing): 为了减轻模型因列表位置而偏向特定选项的常见问题,该软件包包含了
rotationDebiasing,用于对选项的多种排列组合的概率进行平均。
示例应用:Emoji Magnet
为了展示 AnyDecisionModel 的实用性,开发者创建了“Emoji Magnet”,这是一个 macOS 应用程序,可以根据用户提供的自然语言描述动态过滤 Emoji。该应用使用模型实时评估数百个 Emoji 候选对象,展示了本地推理如何在不依赖外部关键字规则的情况下处理复杂的分类任务。
要求与入门
这两个软件包都需要 Swift 6.2 或更高版本,以及 macOS 26 或 iOS 26 或更高版本。Parakeet、Sortformer 和基于 MLX 的决策模型的本地执行需要 Apple 芯片。开发者可以通过将依赖项添加到其 Package.swift 文件中来集成这些工具,并使用特定的特性来启用 MLX 或 Llama 等本地推理后端。