AnySpeechRecognizer:在 Apple API 中整合第三方語音引擎

Apple 在 macOS 26 和 iOS 26 推出了新的 SpeechAnalyzer API,但其背後僅綁定 Apple 自家的辨識引擎。新推出的 AnySpeechRecognizer 套件保留了這套熟悉的 Swift API 結構,允許開發者透過更改 import 語句或初始化參數,將預設引擎切換為 NVIDIA 的 Parakeet 或 Alibaba 的 Qwen3-ASR。

該套件支援在裝置端本地運行這些模型,並透過 Core ML 執行。除了基本的語音轉文字功能外,AnySpeechRecognizer 還加入了 Apple 原生框架沒有的說話人分離(Speaker Diarization)模組,利用 NVIDIA 的 Streaming Sortformer 追蹤對話中不同說話者的時間點,即使說話者重疊也能辨識最多四位說話者。

支援的模型與語言能力差異

AnySpeechRecognizer 主要整合了兩類語音模型:NVIDIA Parakeet 系列和 Alibaba Qwen3-ASR。Parakeet v3 支援 25 種歐洲語言並自動偵測語言;Parakeet Ultra 是 Moondream 基於 v3 的微調版本,在多數測試中準確度較高;Parakeet Unified 則僅支援英文。

Qwen3-ASR 提供 0.6B 和 1.7B 兩種參數規模,支援 30 種語言及 22 種中國方言(包括粵語、日語、韓語等),這些是 Parakeet 未涵蓋的範圍。然而,Qwen3-ASR 僅針對每段最多 40 秒的音訊提供最終結果,不支援即時波動結果、詞級時間戳或信心分數,且執行速度較慢,更適合用於檔案轉錄而非即時輸入。

效能測試數據與硬體限制

開發者在 M4 Max Mac Studio(macOS 27.0.1)上進行了基準測試。在 LibriSpeech 測試集中,Parakeet Unified 檔案轉錄的字錯誤率(WER)為 1.43%(test-clean),優於 Apple 原生引擎的 2.12%。然而,當使用即時輸入模式時,Parakeet v3 的 WER 上升至 4.73%,顯示即時處理對準確度有顯著影響。

在資源消耗方面,Parakeet 模型轉錄一小時音訊約需 20 至 40 秒(檔案模式)或 1.5 至 2.5 分鐘(即時模式),記憶體佔用約 100 MB。相比之下,Qwen3-ASR 速度明顯較慢且需要數 GB 的記憶體。值得注意的是,在多人重疊說話的 AMI 會議錄音測試中,所有引擎的字錯誤率均超過 23%,顯示複雜場景仍是技術瓶頸。

這些數據僅來自單一機器和特定資料集,開發者需在自己的硬體和音訊環境中進行驗證。目前測試僅限於 macOS 27,尚未在 iPhone 上進行評估。

AnyDecisionModel:直接從機率得出結構化決策

AnyDecisionModel 是一個用於執行「零樣本分類」(zero-shot classification)的 Swift API,旨在解決傳統語言模型在處理決策任務時需生成文字再解析的問題。該套件允許開發者定義類型化的問題(如是非題、多選題、評分量表),並直接從模型的機率分布中獲取答案及其信心分數。

與生成式模型不同,AnyDecisionModel 的後端(如 MLX)會構造包含標籤的提示詞,通過一次前向傳播讀取每個標籤的機率。這使得結果具有確定性類型(例如 Swift enum),並提供每個選項的具體機率值,適用於客服分流、緊急程度判斷等場景。

決策模型後端與專用架構

AnyDecisionModel 支援六種後端,包括本地執行的 MLX、Core AI、llama.cpp,以及雲端服務 Jev 和 Ollama。除了使用通用語言模型的下一個詞機率外,該套件也支援具有專用「決策頭」(decision head)的模型,例如 Cloudflare 的 Clef-Flash。

Clef-Flash 是一個 9B 參數的模型,經過訓練可直接將狀態和問題模式轉換為決策,在一次前向傳播中返回所有選項的機率。AnyDecisionModel 透過 MLX 在 Mac 上運行 Clef-Flash 的 4-bit 量化版本(下載大小約 6.2 GB),建議至少配備 16 GB 記憶體的 Mac。

為了提高可靠性,套件提供了校準功能以修正語言模型常見的過度自信問題,並支援「旋轉去偏」(rotation debiasing)技術,通過輪換選項順序來消除位置偏差對結果的影響。

開發要求與安裝注意事項

兩個套件均要求 Swift 6.2 或更高版本,以及 macOS 26 或 iOS 26 或更高版本的作業系統。Parakeet、Sortformer 執行環境及 MLX 後端僅支援 Apple Silicon 晶片。AnyDecisionModel 的 Core AI 後端需要 Xcode 27 和 OS 27 執行環境。

目前 AnyDecisionModel 的 CoreAI trait 無法與 AnySpeechRecognizer 同時使用,因為依賴套件 coreai-kit 0.7.3 要求 swift-huggingface 低於 1.0 版本,而 AnySpeechRecognizer 需要 1.x 版本。開發者可透過 Swift Package Manager 添加這些套件,並根據需求啟用特定的 trait(如 MLX、CoreAI 或 Llama)。