🚀 "Powerset" 说话人分割模型
本项目提供了一个开源的说话人分割模型,它能够对音频中的说话人进行精准分割和识别。该模型以 16kHz 采样的单声道音频为输入,输出说话人分割结果,可广泛应用于语音处理、音频分析等领域。
🚀 快速开始
若你在生产环境中使用此开源模型,可通过我们的 咨询服务 充分发挥其价值。
✨ 主要特性
- 输入输出明确:该模型接收 10 秒、采样率为 16kHz 的单声道音频,输出说话人分割结果,以 (num_frames, num_classes) 矩阵形式呈现,其中 7 个类别分别为 非语音、说话人 #1、说话人 #2、说话人 #3、说话人 #1 和 #2、说话人 #1 和 #3 以及 说话人 #2 和 #3。
- 可视化示例:提供了输出示例图 Example output,方便用户直观了解模型输出。
📦 安装指南
- 使用
pip install pyannote.audio
安装版本为 3.0
的 pyannote.audio
。
- 接受
pyannote/segmentation-3.0
的用户使用条件。
- 在
hf.co/settings/tokens
创建访问令牌。
💻 使用示例
基础用法
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")
📚 详细文档
该模型的相关概念在这篇 论文 中有详细描述。
此模型由 Séverin Baroudi 使用 pyannote.audio 3.0.0
进行训练,训练数据集结合了 AISHELL、AliMeeting、AMI、AVA - AVD、DIHARD、Ego4D、MSDWild、REPERE 和 VoxConverse。
由 Alexis Plaquet 维护的 配套仓库 还提供了如何在自己的数据上训练或微调此模型的说明。
📄 许可证
本模型采用 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},
}