MahmoudAshraf97/whisper-diarization

Automatic Speech Recognition with Speaker Diarization based on OpenAI Whisper

解決的問題

解決音訊記錄中「誰在何時說話」的辨識問題。雖然標準的語音轉錄工具能將語音轉換為文字,但通常無法區分對話中的不同發言者,導致產生的轉錄文字難以追蹤對話流程。

工作原理

本專案實作一個多階段處理流程來處理音訊:

  1. 語音提取:使用來源分離技術將人聲從背景雜訊中分離,以提升嵌入準確度。
  2. 轉錄:使用 OpenAI Whisper 生成文字。
  3. 對齊:使用 ctc-forced-aligner 修正並同步時間戳,減少時間偏移誤差。
  4. 語音活動檢測 (VAD):使用 MarbleNet 檢測語音段並排除靜音部分。
  5. 說話人嵌入:使用 TitaNet 為每個語音段提取獨特的說話人嵌入。
  6. 關聯:將識別出的說話人與特定字詞及時間戳關聯,再使用標點模型進行最終對齊。

適用對象

需要高精度說話人分離(識別不同說話人)與自動語音轉文字轉錄的研究人員與開發者。

主要亮點

  • 混合架構:結合 Whisper 用於 ASR,NVIDIA NeMo(MarbleNet 與 TitaNet)用於說話人分離。
  • 時間戳校正:整合強制對齊以最小化時間偏移所造成的誤差。
  • 平行處理:包含實驗性平行模式(diarize_parallel.py),適用於高 VRAM 系統以加速處理。
  • 可客製化:支援多種 Whisper 模型、手動語言選擇與批次大小調整。

相關

  • 專案
  • 專案
  • 專案
  • Dispatch
  • 專案