WhisperLiveKit項目是一個實時語音轉文本系統,集成了最新的研究成果,包括SimulStreaming、WhisperStreaming、Streaming Sortformer和Diart等技術,支持多種語言和說話人識別。
項目居間
「WhisperLiveKit」是一個開源項目(由QuentinFuxa開發),旨在實現 實時 和 當地 語音轉文本、翻譯和 揚聲器差異(揚聲器日記化),伺服器端和Web UI。
也就是說,它可以實時將語言轉換為文本並識別誰在說話,還可以將文本翻譯為其他語言,完全或主要在本地環境中運行(不一定完全依賴於雲服務)。
核心特點:
具體功能包括:
- 語音轉文本:將語音內容轉換為文本。
- 翻譯:將口語內容的轉錄翻譯成目標語言。您可以使用Whisper的內部翻譯功能,也可以使用NLLB後台。
- 揚聲器日記化:識別多人對話中不同發言者的演講段落,並標記「發言者A」和「發言者B」等標籤。
- 語音活動檢測(VAR):檢測某人是否正在說話,以減少空白或無用的音頻處理負擔。
- 瀏覽器UI +後台服務:提供前端頁面,可以直接通過瀏覽器記錄/傳輸語音,並顯示實時轉錄/翻譯/說話人識別結果。例如,它還可以通過WebSockets進行集成。
架構和技術細節
一些關鍵技術/架構細節:
- 同步流媒體,AlignAtt:一種超低延遲轉錄的方法。普通的Whisper模型設計往往是完整的句子或更長的段落,並且在實時的小片段中可能表現不佳。利用「SimStreaming + AlignAtt」等最新研究成果來提高實時性能。
- NLLB (No Language Left Behind):這是一個大規模多語言翻譯模型,支持翻譯成100多種語言。這可以被選擇作為項目中的翻譯後台。
- WhisperStreaming、Local協議政策:另一種用於較低延遲識別任務的流媒體方法。
- 排序者/ Diart:建模用於揚聲器分離/差異化的後台選項。Sortformer是較新的選項,Diart是較舊/替代選項。
- 可選加速或硬體優化:例如優化後的後台(MLX Whisper),支持Apple Silicon、圖形處理器或處理器運行等。
- 前端+後台通信通過WebSockets等方法,前端可以獲取實時結果並將其顯示在UI上。
如何用途:
快速入門方法大致如下:
-
耳語直播套件安裝包(pip start)。 - 啟動伺服器端,例如命令
whisperlivekit-server --模型庫--語言en.這將啟動接受音頻輸入和輸出文本等的服務。 - 在瀏覽器中打開相應的地址(默認
本地主機:8000),前端頁面可以捕獲您的麥克風音頻,然後瀏覽器顯示實時轉錄。 - 您可以添加參數來控制是否進行日記化、是否翻譯、選擇模型大小、語言等。
- 支持Docker部署用於生產。
優點和局限性
以下是我對該項目的優勢和可能的限制/挑戰的看法。
優點:
- 實時性強:為了支持低延遲,Whisper針對流/增量處理和緩衝處理進行了優化。適合會議、對話、直播等場景。
- 本地處理(或部分本地處理): 減少對網絡和雲服務的依賴,這有利於隱私、安全和延遲控制。
- 說話者差異化+多語言支持:這使得它比ASC更通用。
- 全套前後端:提供UI +伺服器+可擴展性,用戶可以快速設置和定製。
限制/挑戰
- 資源消耗:要實現實時識別+翻譯+說話人區分,對模型和計算資源的要求並不低,尤其是在使用大型模型或多語音、多噪音環境下。建議使用圖形處理器或強大的中央處理器。
- 延遲與精確度之間的權衡:為了減少延遲,在某些情況下可能會犧牲精確性,例如不完整的上下文或句子被不自然地刪減。
- 語言檢測/翻譯質量因環境而異:語言/口音/背景噪音的識別質量可能會有很大差異。翻譯模型也有局限性。
- 部署複雜性:雖然可以支持Docker和其他設備,但當大規模部署或在受限硬體(邊緣設備、嵌入式設備)上運行時,可能需要進行大量調整。
應用場景
它可以在以下地方使用:
- 在線會議的自動字幕和翻譯
- 教育環境(教室、講座)允許聽力受損或非母語人士了解內容
- 呼叫中心錄音+自動翻譯+識別不同發言人
- 播客或採訪錄音+後處理,在顯示轉錄/翻譯的同時錄製
- 現場直播場景(帶字幕的現場視頻)
Github:https://github.com/QuentinFuxa/WhisperLiveKit
管材: