Hugging Face 为苹果平台发布两个开源 Swift 包:AnySpeechRecognizer 让 Parakeet、Qwen3-ASR 替换苹果语音识别引擎,AnyDecisionModel 让模型按概率做判断题

Hugging Face 10 月 29 日在官方博客发布两个 Apache-2.0 开源的 Swift 包,都能从 Hugging Face Hub 下载开放模型并在设备上运行。AnySpeechRecognizer 照搬苹果 macOS 26 / iOS 26 引入的 SpeechAnalyzer 语音转文字接口,把识别引擎换成可选项:英伟达 Parakeet 系列和阿里 Qwen3-ASR(0.6B / 1.7B,支持 30 种语言和 22 种中文方言)经转换为 Core ML 后在本地运行,并补上苹果接口没有的说话人分离(基于英伟达 Streaming Sortformer,最多 4 人)。作者在 M4 Max Mac Studio 上测得,LibriSpeech test-clean 文件转写的词错率 Parakeet Unified 为 1.43%、苹果自带引擎为 2.12%,一小时音频从文件转写约 20–40 秒;但在多人插话的 AMI 会议录音上所有引擎词错率都超过 23%,且目前只在 macOS 27 上测过、未在 iPhone 上测试。AnyDecisionModel 用来回答是否题、选择题和评分题,不生成文本,而是读取每个候选答案的概率,返回带概率和置信度的类型化结果,支持 MLX、Core AI、llama.cpp、Ollama 等六种后端,也能运行 Cloudflare 带决策头的 Clef 模型。

换一行 import,换掉识别引擎

macOS 26 和 iOS 26 引入了苹果新的语音转文字接口 SpeechAnalyzer,设计得不错,但背后只有苹果自己的引擎。Hugging Face 10 月 29 日发布的 AnySpeechRecognizer 照搬了这套接口(SpeechAnalyzer、SpeechTranscriber、AssetInventory 等),默认仍用苹果引擎;代码只用共享接口的话,把 import Speech 换成 import AnySpeechRecognizer 即可,想用别的引擎只改创建转写器那一行。

可选引擎都已转换成 Core ML 发布在 Hub 上:英伟达 Parakeet TDT 0.6B v3(25 种欧洲语言,自动识别语种)、Moondream 在其基础上后训练的 Parakeet Ultra、英语专用的 Parakeet Unified,以及阿里的 Qwen3-ASR 0.6B 和 1.7B。后者覆盖 30 种语言和 22 种中文方言,包括 Parakeet 不支持的普通话、粤语、日语和韩语,但每段最长 40 秒才出一次结果、跑在 GPU 上更慢,更适合转写文件而不是实时输入。苹果接口没有说话人分离,这个包另加了一个基于英伟达 Streaming Sortformer 的模块,最多区分 4 个说话人,能把每个带时间戳的词归到具体的人。模型只在应用请求时下载:每个 Parakeet 约 600 MB,Qwen3-ASR 0.9–2.4 GB,Sortformer 约 250 MB。

作者用 M4 Max Mac Studio 测了 3–8 分钟的 LibriSpeech 录音:从文件转写时,test-clean 上 Parakeet Unified 词错率 1.43%、Parakeet v3 1.55%,苹果自带引擎 2.12%;Parakeet 转写一小时音频约需 20–40 秒,编译后内存约 100 MB。坏消息也写得清楚:在多人插话的 AMI 会议录音上,所有引擎词错率都在 23% 以上;目前只在 macOS 27 上测过,还没上 iPhone。

让模型做选择题,而不是写作文

AnyDecisionModel 处理的是另一类常见需求:这条消息急不急、工单该给哪个组、客户有多恼火。常规做法是让语言模型生成一段文字再去解析,只拿到一个答案。这个包改为读取每个候选答案的概率:是否题返回一个概率值,选择题返回选中项、每个选项的概率和一个置信度,选项可以直接是 Swift 枚举。它有六种后端:MLX 本地小模型、带决策头的模型(如 Cloudflare 的 Clef-Flash,4-bit 版下载 6.2 GB,建议 16 GB 内存的 Mac)、macOS 27 / iOS 27 上的 Core AI、llama.cpp、TypeSafe 的托管模型 Jev,以及本地 Ollama。

示例应用 Emoji Magnet 把 343 个表情各问一遍「是否符合描述」:在 M4 Max 上用 MLX 跑 Qwen3 4B,每次前向一次回答 16 题、约 0.45 秒,全部问完约 10 秒。文档也提醒,语言模型给出的原始概率往往过于自信,包里提供了校准和选项轮换去偏;置信度只衡量概率是否集中,不代表答案正确,上线前要用自己的数据测错误率。

对做 Mac 和 iPhone 应用的开发者,这两个包的价值在于把开源语音和分类模型接到苹果原生的写法上,录音不必上传云端;两个仓库都是 Apache-2.0 许可,Hub 上转换后的各模型沿用原始许可,其中 Parakeet Unified 等为英伟达开放模型许可。

via: Hugging Face 博客:Introducing AnySpeechRecognizer and AnyDecisionModel、GitHub:mattt/AnySpeechRecognizer、GitHub:mattt/AnyDecisionModel