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. 関連付け:識別された発話者を特定の単語およびタイムスタンプにマッピングし、最終的な再同期に句読点モデルを使用します。

対象ユーザー

高精度な発話者分類(異なる発話者の識別)と自動音声認識(音声からテキストへの変換)を組み合わせて必要とする研究者や開発者です。

特徴

  • ハイブリッドアーキテクチャ:ASRにはWhisper、発話者分類にはNVIDIA NeMo(MarbleNetおよびTitaNet)を組み合わせます。
  • タイムスタンプの修正:時間シフトによって生じるエラーを最小限に抑えるために強制アライメントを統合します。
  • 並列処理:高VRAM環境向けの実験的並列モード(diarize_parallel.py)を含み、処理速度を向上させます。
  • カスタマイズ可能:さまざまなWhisperモデル、手動での言語選択、バッチサイズの調整をサポートします。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • Dispatch
  • プロジェクト