MahmoudAshraf97/whisper-diarization
Automatic Speech Recognition with Speaker Diarization based on OpenAI Whisper
解決的問題
解決音訊記錄中「誰在何時說話」的辨識問題。雖然標準的語音轉錄工具能將語音轉換為文字,但通常無法區分對話中的不同發言者,導致產生的轉錄文字難以追蹤對話流程。
工作原理
本專案實作一個多階段處理流程來處理音訊:
- 語音提取:使用來源分離技術將人聲從背景雜訊中分離,以提升嵌入準確度。
- 轉錄:使用 OpenAI Whisper 生成文字。
- 對齊:使用
ctc-forced-aligner修正並同步時間戳,減少時間偏移誤差。 - 語音活動檢測 (VAD):使用 MarbleNet 檢測語音段並排除靜音部分。
- 說話人嵌入:使用 TitaNet 為每個語音段提取獨特的說話人嵌入。
- 關聯:將識別出的說話人與特定字詞及時間戳關聯,再使用標點模型進行最終對齊。
適用對象
需要高精度說話人分離(識別不同說話人)與自動語音轉文字轉錄的研究人員與開發者。
主要亮點
- 混合架構:結合 Whisper 用於 ASR,NVIDIA NeMo(MarbleNet 與 TitaNet)用於說話人分離。
- 時間戳校正:整合強制對齊以最小化時間偏移所造成的誤差。
- 平行處理:包含實驗性平行模式(
diarize_parallel.py),適用於高 VRAM 系統以加速處理。 - 可客製化:支援多種 Whisper 模型、手動語言選擇與批次大小調整。
相關
- 專案
- 專案
- 專案
- Dispatch
- 專案