🚀 話者分離 2.5
このオープンソースモデルは、音声データにおける話者分離タスクを解決するためのパイプラインです。pyannote/speaker-diarization-3.0
をベースに改良されており、様々なデータセットでのベンチマークテストで良好な性能を示しています。
🚀 クイックスタート
このオープンソースモデルを本番環境で使用する場合、より良い性能と高速なオプションを提供する pyannoteAI の利用を検討してください。
✨ 主な機能
- 話者分離(Speaker Diarization): 音声データ内の異なる話者を識別し、それぞれの発話区間を特定します。
- 話者変更検出(Speaker Change Detection): 話者が切り替わるタイミングを検出します。
- 音声活動検出(Voice Activity Detection): 音声が存在する区間を検出します。
- 重複音声検出(Overlapped Speech Detection): 複数の話者が同時に話している区間を検出します。
📦 インストール
pip install pyannote.audio
を実行して、pyannote.audio
3.0
をインストールします。
pyannote/segmentation-3.0
のユーザー条件を受け入れます。
hf.co/settings/tokens
でアクセストークンを作成します。
💻 使用例
基本的な使用法
from pyannote.audio import Pipeline
pipeline = Pipeline.from_pretrained(
"Willy030125/speaker-diarization-2.5",
use_auth_token="HUGGINGFACE_ACCESS_TOKEN_GOES_HERE")
diarization = pipeline("audio.wav")
with open("audio.rttm", "w") as rttm:
diarization.write_rttm(rttm)
高度な使用法
GPUでの処理
pyannote.audio
のパイプラインはデフォルトでCPUで実行されます。以下のコードを使用してGPUに送信することができます。
import torch
pipeline.to(torch.device("cuda"))
1つのNvidia Tesla V100 SXM2 GPU(ニューラル推論部分)と1つのIntel Cascade Lake 6248 CPU(クラスタリング部分)を使用した場合、リアルタイム係数は約2.5%です。つまり、1時間の会話を処理するのに約1.5分かかります。
メモリからの処理
音声ファイルを事前にメモリにロードすることで、処理速度を向上させることができます。
waveform, sample_rate = torchaudio.load("audio.wav")
diarization = pipeline({"waveform": waveform, "sample_rate": sample_rate})
進捗の監視
パイプラインの進捗を監視するためのフックが利用可能です。
from pyannote.audio.pipelines.utils.hook import ProgressHook
with ProgressHook() as hook:
diarization = pipeline("audio.wav", hook=hook)
話者数の制御
話者数が事前にわかっている場合は、num_speakers
オプションを使用することができます。
diarization = pipeline("audio.wav", num_speakers=2)
また、min_speakers
と max_speakers
オプションを使用して、話者数の下限と上限を指定することもできます。
diarization = pipeline("audio.wav", min_speakers=2, max_speakers=5)
📚 詳細ドキュメント
ベンチマーク
このパイプラインは、多数のデータセットでベンチマークテストが行われています。処理は完全に自動化されており、手動による音声活動検出や話者数の指定、内部モデルの微調整やパイプラインのハイパーパラメータの調整は必要ありません。
📄 ライセンス
このモデルはMITライセンスの下で公開されています。
⚠️ 重要提示
収集された情報は、pyannote.audioのユーザーベースに関するより良い知識を獲得し、メンテナーがさらに改善するのに役立ちます。このパイプラインはMITライセンスを使用しており、常にオープンソースのままですが、時折、pyannoteに関するプレミアムパイプラインや有料サービスについてメールでお知らせすることがあります。
🔖 引用
@inproceedings{Plaquet23,
author={Alexis Plaquet and Hervé Bredin},
title={{Powerset multi-class cross entropy loss for neural speaker diarization}},
year=2023,
booktitle={Proc. INTERSPEECH 2023},
}
@inproceedings{Bredin23,
author={Hervé Bredin},
title={{pyannote.audio 2.1 speaker diarization pipeline: principle, benchmark, and recipe}},
year=2023,
booktitle={Proc. INTERSPEECH 2023},
}