初めに
powerset_calibrationを使って音声内の話者ダイアライゼーションを行ってみます。論文によりデータセットには日本語が含まれていないため、日本語の音声に使う場合は自分で学習を行う必要がありそうです
以下で動かしたリポジトリを公開しています
開発環境
セットアップ
環境を作っていきます
uv venv -p 3.9 .venv\Scripts\activate
ライブラリをインストールします。リポジトリで pyproject.toml
が提供されているので、そのまま使っていきます
uv sync
torchがcpu版になっているので、GPU版をインストールします
uv pip install torch==2.5.1 --index-url https://download.pytorch.org/whl/cu121 --force-reinstall
話者ダイアライゼーションを実行
from pyannote.audio import Pipeline # プリトレーニング済みモデルのロード pipeline = Pipeline.from_pretrained("pyannote/speaker-diarization") # 音声ファイルのパス(ご自身のファイルパスに変更してください) AUDIO_FILE = "test.mp3" # ダイアリゼーションの実行 diarization = pipeline(AUDIO_FILE) # 結果の表示 for turn, _, speaker in diarization.itertracks(yield_label=True): print(f"start={turn.start:.1f}s stop={turn.end:.1f}s speaker_{speaker}")
上記のコードで実行をします
結果は以下のようになります
start=0.0s stop=5.0s speaker_SPEAKER_00