alesaccoia/VoiceStreamAI
Near-Realtime audio transcription using self-hosted Whisper and WebSocket in Python/JS
解決的問題
VoiceStreamAI 提供了一種透過從 Web 瀏覽器向伺服器串流音訊來執行近實時音訊轉寫的方法。它透過使用語音活動檢測 (VAD) 來確保僅對實際語音進行轉寫,從而減少計算負載與網路頻寬,解決了高效處理連續音訊串流的挑戰。
工作原理
該系統由基於 Python 的伺服器與透過 WebSockets 通訊的 JavaScript 用戶端組成。用戶端擷取音訊並將其以分塊 (chunk) 形式傳送到伺服器。伺服器使用模組化流水線來處理這些音訊:
- 語音活動檢測 (VAD):使用 Silero 或 Pyannote 等模型,伺服器識別包含語音的音訊段。
- 轉寫:系統使用自動語音識別 (ASR) 模型,預設為
faster-whisper(OpenAI Whisper 的高性能版本),將偵測到的語音轉換為文字。 - 緩衝策略:為了防止單字在分塊邊界處被切斷,系統採用了 "SilenceAtEndOfChunk" 策略,即在觸發轉寫之前等待語音停頓。
適用對象
尋求構建需要實時語音轉文字功能的應用程式的開發人員,這些應用程式需要靈活的模組化架構,允許更換不同的 VAD 與 ASR 模型。
亮點
- 模組化設計:使用工廠模式與策略模式來輕鬆整合新的 VAD 與 ASR 技術。
- 實時串流:利用 WebSockets 實現用戶端與伺服器之間的低延遲通訊。
- 高效處理:整合 VAD 可最大限度地減少非語音音訊的處理,節省 GPU/CPU 資源。
- 可定制性:用戶端可以透過 JSON 訊息動態配置語言、分塊長度與處理策略。
相關
- 專案
- 專案
- 專案
- 專案
- 專案