- 其實現了 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 準備得有多好,約十秒完成。