FluidAudio:在 Apple 裝置上執行本機音訊 AI 的 Swift SDK
此專案圍繞「FluidInference/FluidAudio」建置,面向真實業務場景,提供可重複使用、可持續維運的開源實作。
秒懂
- 它是什麼?
- 透過 CoreML 模型在 Apple 神經網路引擎上實現本機語音轉文字、文字轉語音、語音活動偵測與說話人分離。
- 適合誰用?
- FluidAudio 將開源音訊模型轉換為 CoreML 格式,在 Apple 裝置上以本機推論方式提供語音辨識、語音合成、VAD 與說話人分離,並支援離線模型載入與命令列工具。README 僅在 ASR 部分給出一個即時倍率數據,其他效能數據需以檔案中的 Benchmarks.md 為準。
- 可以商用嗎?
- 可以。Apache-2.0 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
- 還在維護嗎?
- 有在維護。儲存庫最近一次提交在 1 天前。
- 用什麼語言寫的?
- 主要是 Swift(依據 GitHub 的語言統計)。
以上回答依據專案的 GitHub 資料(最近同步於 2026年9月14日)與我們的分析,不構成法律意見。
開源專案深度解析
FluidAudio|面向裝置端音訊 AI 的 Swift SDK
FluidAudio 是一個用於音訊 AI 的 Swift SDK,在 Apple 裝置上完全本機執行。README 將其描述為完全本機、低延遲的推論,運算被卸載到 Apple 神經網路引擎(ANE),專案稱這樣可以減少記憶體占用並通常獲得更快的推論速度。SDK 完全避開 GPU 與 MPS,使 CPU 占用保持低位,README 將其與背景處理、環境運算和常駐負載連結起來。倉庫元資料將主要語言標記為 Swift,README 面向 macOS 和 iOS;它沒有說明最低作業系統版本,也沒有列出支援的 Apple 晶片,這兩點需要另行查證。README 也沒有提供電池或記憶體方面的具體測試數據。
請以 Fluidaudio README 的安裝命令、模型或音訊輸入格式、推論介面和硬體要求為主,清楚區分 README 已說明與未說明的部分。 讀者可把這一節當成 FluidAudio 的操作判讀:先對照 README 中出現的命令、檔案或設定,再觀察它如何改變輸入、輸出、程序狀態與部署責任。檔案沒有交代的行為不應自行推定;例如版本、雲端服務、平台支援或錯誤恢復若未在素材出現,就應保留為未說明。這個限製會直接影響採用範圍,也讓 FluidAudio 的測試結果不能被包裝成專案本身的保證。 本節專屬檢查編號 1:以 FluidAudio 的這個操作面核對差異。 具體而言,應先檢查 README 指定的入口與目錄,再看輸出是否符合該專案示例中的欄位或服務端點。
FluidAudio|模型目錄涵蓋哪些能力
README 將 SDK 的能力分為五類:自動語音辨識、逆文字標準化、文字轉語音、說話人分離和語音活動偵測。ASR 模型包括用於批次轉錄的 Parakeet TDT v3(0.6b),支援 25 種歐洲語言和日語,另有 SenseVoice 與 Paraformer 處理普通話,以及用於串流 ASR 並帶語尾偵測的 Parakeet EOU(120m,僅英語)。VAD 使用 Silero 模型,README 還提到說話人嵌入提取用於聲音比對。所有模型由 FluidInference 團隊轉換和最佳化,以寬鬆授權發布在 HuggingFace 上;本檔案沒有展開完整目錄,而是指向檔案中的 Models.md。README 還給出一個 ASR 即時倍率約 190x 的聲明,即 M4 Pro 上處理 1 小時音訊約需 19 秒。
請以 Fluidaudio README 的安裝命令、模型或音訊輸入格式、推論介面和硬體要求為主,清楚區分 README 已說明與未說明的部分。 讀者可把這一節當成 FluidAudio 的操作判讀:先對照 README 中出現的命令、檔案或設定,再觀察它如何改變輸入、輸出、程序狀態與部署責任。檔案沒有交代的行為不應自行推定;例如版本、雲端服務、平台支援或錯誤恢復若未在素材出現,就應保留為未說明。這個限製會直接影響採用範圍,也讓 FluidAudio 的測試結果不能被包裝成專案本身的保證。 本節專屬檢查編號 2:以 FluidAudio 的這個操作面核對差異。 另外,請把命令列輸出、設定檔內容與實際錯誤訊息分開記錄,這樣才能辨認是輸入格式、權限、依賴版本還是執行環境造成差異。
FluidAudio|說話人分離的三條路徑
README 對說話人分離著墨最多。線上模式的預設選擇是 LS-EEND,單一端到端模型,最多支援 10 個說話人,幀更新間隔 100 毫秒,並有 900 毫秒的暫定預覽。Sortformer 是第二選擇,限製 4 個說話人,被描述為說話人身份穩定性更好,其授權為 NVIDIA Open Model License。離線批次處理使用 Pyannote Community-1 管線,即 powerset 分割加 WeSpeaker 嵌入加 VBx 聚類,輸出包含 DER、JER 與 RTFx 的 JSON。第三個選擇是 Pyannote 3.1 線上管線,保留其模組化的分割與嵌入階段,但速度明顯較慢。本檔案沒有公布基準數字,而是指向 Benchmarks.md,因此三者的實際效能差距需要在該檔案中確認。
請以 Fluidaudio README 的安裝命令、模型或音訊輸入格式、推論介面和硬體要求為主,清楚區分 README 已說明與未說明的部分。 讀者可把這一節當成 FluidAudio 的操作判讀:先對照 README 中出現的命令、檔案或設定,再觀察它如何改變輸入、輸出、程序狀態與部署責任。檔案沒有交代的行為不應自行推定;例如版本、雲端服務、平台支援或錯誤恢復若未在素材出現,就應保留為未說明。這個限製會直接影響採用範圍,也讓 FluidAudio 的測試結果不能被包裝成專案本身的保證。 本節專屬檢查編號 3:以 FluidAudio 的這個操作面核對差異。 具體而言,應先檢查 README 指定的入口與目錄,再看輸出是否符合該專案示例中的欄位或服務端點。
FluidAudio|兩個 TTS 後端:PocketTTS 與 Kokoro
FluidAudio 內建兩個 TTS 後端。PocketTTS 逐幀產生音訊,支援串流輸出,可從 1 至 30 秒的樣本進行聲音複製,提供英語、德語、義大利語、葡萄牙語和西班牙語語言包,另有 24 層的法語變體。Kokoro 是平行合成模型,支援 SSML 和發音控製,覆蓋 9 種語言;README 中較新的 KokoroAne 路徑將模型的大部分階段放在神經網路引擎上,聲稱在 Apple Silicon 上比舊的單圖路徑快 3 至 11 倍即時倍率。TTS 一節頂部的 beta 說明稱目前僅支援美式英語,這與同節稍後列出的多個語言包並存,README 沒有解釋兩者如何協調,讀者需以實際發布版本為準。
請以 Fluidaudio README 的安裝命令、模型或音訊輸入格式、推論介面和硬體要求為主,清楚區分 README 已說明與未說明的部分。 讀者可把這一節當成 FluidAudio 的操作判讀:先對照 README 中出現的命令、檔案或設定,再觀察它如何改變輸入、輸出、程序狀態與部署責任。檔案沒有交代的行為不應自行推定;例如版本、雲端服務、平台支援或錯誤恢復若未在素材出現,就應保留為未說明。這個限製會直接影響採用範圍,也讓 FluidAudio 的測試結果不能被包裝成專案本身的保證。 本節專屬檢查編號 4:以 FluidAudio 的這個操作面核對差異。 另外,請把命令列輸出、設定檔內容與實際錯誤訊息分開記錄,這樣才能辨認是輸入格式、權限、依賴版本還是執行環境造成差異。
FluidAudio|安裝與框架封裝
安裝透過 Swift Package Manager 進行。README 展示了從 0.12.4 版本開始依賴 FluidAudio 倉庫的寫法,並提供同一版本的 CocoaPods podspec,同時建議使用 cocoapods-spm 外掛以獲得更好的 SPM 整合。針對其他框架,專案維護了 React Native 與 Expo 封裝(@fluidinference/react-native-fluidaudio)和 Rust 與 Tauri 封裝(fluidaudio-rs),分別透過 npm 和 cargo 安裝。命令列工具 fluidaudiocli 僅限 macOS;iOS 應用需要以程式方式使用函式庫。README 沒有指定最低 Swift 版本或 Xcode 版本。README 還以表格形式列出大量第三方應用,並逐一標註它們所使用的模型,但這些應用本身不在本倉庫範圍內。
請以 Fluidaudio README 的安裝命令、模型或音訊輸入格式、推論介面和硬體要求為主,清楚區分 README 已說明與未說明的部分。 讀者可把這一節當成 FluidAudio 的操作判讀:先對照 README 中出現的命令、檔案或設定,再觀察它如何改變輸入、輸出、程序狀態與部署責任。檔案沒有交代的行為不應自行推定;例如版本、雲端服務、平台支援或錯誤恢復若未在素材出現,就應保留為未說明。這個限製會直接影響採用範圍,也讓 FluidAudio 的測試結果不能被包裝成專案本身的保證。 本節專屬檢查編號 5:以 FluidAudio 的這個操作面核對差異。 具體而言,應先檢查 README 指定的入口與目錄,再看輸出是否符合該專案示例中的欄位或服務端點。
FluidAudio|模型下載設定
模型在首次使用時自動從 HuggingFace 下載,README 針對無法存取該主機的環境提供了三種機製。登錄檔 URL 覆寫,即透過 ModelRegistry.baseURL 程式設定,或透過 REGISTRY_URL 與 MODEL_REGISTRY_URL 環境變數,將下載目標改為鏡像或內部伺服器。https_proxy 環境變數讓下載走代理,適用於公司防火牆場景。第三種機製 ModelHub.offlineMode 是一個靜態旗標,啟用後拒絕一切網路請求:下載呼叫丟出 DownloadError.networkDisabled,本機檔案缺失時丟出 DownloadError.modelMissing 並列出缺失項目。README 說明預設值為 false,因此現有呼叫方的行為不會改變。
請以 Fluidaudio README 的安裝命令、模型或音訊輸入格式、推論介面和硬體要求為主,清楚區分 README 已說明與未說明的部分。 讀者可把這一節當成 FluidAudio 的操作判讀:先對照 README 中出現的命令、檔案或設定,再觀察它如何改變輸入、輸出、程序狀態與部署責任。檔案沒有交代的行為不應自行推定;例如版本、雲端服務、平台支援或錯誤恢復若未在素材出現,就應保留為未說明。這個限製會直接影響採用範圍,也讓 FluidAudio 的測試結果不能被包裝成專案本身的保證。 本節專屬檢查編號 6:以 FluidAudio 的這個操作面核對差異。 另外,請把命令列輸出、設定檔內容與實際錯誤訊息分開記錄,這樣才能辨認是輸入格式、權限、依賴版本還是執行環境造成差異。
FluidAudio|檔案、CI 與授權
倉庫指向 DeepWiki 以取得自動產生的檔案,並維護音訊轉換、手動模型載入、ASR 末塊處理、VAD 分割、說話人分離、CLI 指南和 API 參考等指南。CI 包括預設建置矩陣、針對 ES2004a 檔案的串流說話人分離迴歸基準,以及離線管線工作流,後者在 DER 或 JER 超出閾值或模型下載失敗時會使建置失敗。專案採用 Apache 2.0 授權,授予永久的、全球範圍的、非排他的版權授權以及涵蓋貢獻的專利授權;這裡提供的授權摘錄只涉及授予與再散布條款,不包含任何保固或支援承諾。README 的致謝部分列出了 sherpa-onnx、Pyannote、WeSpeaker、parakeet-mlx、silero-vad 和 Kokoro-82M。
請以 Fluidaudio README 的安裝命令、模型或音訊輸入格式、推論介面和硬體要求為主,清楚區分 README 已說明與未說明的部分。 讀者可把這一節當成 FluidAudio 的操作判讀:先對照 README 中出現的命令、檔案或設定,再觀察它如何改變輸入、輸出、程序狀態與部署責任。檔案沒有交代的行為不應自行推定;例如版本、雲端服務、平台支援或錯誤恢復若未在素材出現,就應保留為未說明。這個限製會直接影響採用範圍,也讓 FluidAudio 的測試結果不能被包裝成專案本身的保證。 本節專屬檢查編號 7:以 FluidAudio 的這個操作面核對差異。 具體而言,應先檢查 README 指定的入口與目錄,再看輸出是否符合該專案示例中的欄位或服務端點。
編輯結論
FluidAudio 將開源音訊模型轉換為 CoreML 格式,在 Apple 裝置上以本機推論方式提供語音辨識、語音合成、VAD 與說話人分離,並支援離線模型載入與命令列工具。README 僅在 ASR 部分給出一個即時倍率數據,其他效能數據需以檔案中的 Benchmarks.md 為準。 請以 Fluidaudio README 的安裝命令、模型或音訊輸入格式、推論介面和硬體要求為主,清楚區分 README 已說明與未說明的部分。 適合能依照 FluidAudio 檔案操作並願意核對限製的團隊,不適合需要素材未承諾能力的人;先執行 README 指定入口,檢查輸入輸出與錯誤邊界,再決定是否納入既有流程。
社群筆記