🚀 "Powerset" 說話人分割模型
本項目是一個用於說話人分割的開源模型,它能夠對音頻進行處理,輸出說話人分割的結果。該模型在音頻處理領域,特別是說話人分割、檢測等任務上具有重要價值。
🚀 快速開始
安裝要求
- 使用
pip install pyannote.audio
安裝 pyannote.audio
3.0 版本。
- 接受
pyannote/segmentation-3.0
的用戶使用條件。
- 在
hf.co/settings/tokens
創建訪問令牌。
模型實例化
from pyannote.audio import Model
model = Model.from_pretrained(
"pyannote/segmentation-3.0",
use_auth_token="HUGGINGFACE_ACCESS_TOKEN_GOES_HERE")
✨ 主要特性
- 本模型接收 10 秒、採樣率為 16kHz 的單聲道音頻,並將說話人分割結果輸出為一個 (num_frames, num_classes) 矩陣。其中,7 個類別分別為 非語音、說話人 #1、說話人 #2、說話人 #3、說話人 #1 和 #2、說話人 #1 和 #3 以及 說話人 #2 和 #3。
- 模型背後的各種概念在 這篇論文 中有詳細描述。
- 該模型由 Séverin Baroudi 使用 pyannote.audio 3.0.0 版本進行訓練,訓練數據結合了 AISHELL、AliMeeting、AMI、AVA - AVD、DIHARD、Ego4D、MSDWild、REPERE 和 VoxConverse 等數據集。
💻 使用示例
基礎用法
duration, sample_rate, num_channels = 10, 16000, 1
waveform = torch.randn(batch_size, num_channels, duration * sample_rate)
powerset_encoding = model(waveform)
from pyannote.audio.utils.powerset import Powerset
max_speakers_per_chunk, max_speakers_per_frame = 3, 2
to_multilabel = Powerset(
max_speakers_per_chunk,
max_speakers_per_frame).to_multilabel
multilabel_encoding = to_multilabel(powerset_encoding)
說話人分割應用
本模型不能單獨用於對完整錄音進行說話人分割(它僅處理 10 秒的音頻塊)。可參考 pyannote/speaker - diarization - 3.0 管道,該管道使用額外的說話人嵌入模型來執行完整錄音的說話人分割。
語音活動檢測
from pyannote.audio.pipelines import VoiceActivityDetection
pipeline = VoiceActivityDetection(segmentation=model)
HYPER_PARAMETERS = {
"min_duration_on": 0.0,
"min_duration_off": 0.0
}
pipeline.instantiate(HYPER_PARAMETERS)
vad = pipeline("audio.wav")
重疊語音檢測
from pyannote.audio.pipelines import OverlappedSpeechDetection
pipeline = OverlappedSpeechDetection(segmentation=model)
HYPER_PARAMETERS = {
"min_duration_on": 0.0,
"min_duration_off": 0.0
}
pipeline.instantiate(HYPER_PARAMETERS)
osd = pipeline("audio.wav")
📚 詳細文檔
本模型的詳細原理和相關概念可參考 這篇論文。此外,Alexis Plaquet 的 配套倉庫 也提供瞭如何在自己的數據上訓練或微調該模型的說明。
📄 許可證
本項目採用 MIT 許可證。
📖 引用說明
@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},
}
⚠️ 重要提示
使用此開源模型進行生產時,考慮切換到 pyannoteAI 以獲取更好、更快的選項。收集的信息將有助於更好地瞭解 pyannote.audio 的用戶群體,並幫助其維護者進一步改進它。儘管此模型使用 MIT 許可證並將始終保持開源,但我們偶爾會通過電子郵件向您介紹有關 pyannote 的高級模型和付費服務。
💡 使用建議
在使用模型進行說話人分割時,若要處理完整錄音,建議使用 pyannote/speaker - diarization - 3.0 管道。