🚀 说话人分割模型
本项目基于 pyannote.audio 2.1.1
实现说话人分割功能,可有效识别音频中不同说话人的发言时段。在生产环境中使用此开源模型时,可考虑切换至 pyannoteAI 获取更优、更快的选择。
🚀 快速开始
本模型依赖于 pyannote.audio 2.1.1
,安装说明请参考 安装指南。
基础用法
from pyannote.audio import Pipeline
pipeline = Pipeline.from_pretrained("pyannote/speaker-diarization@2.1",
use_auth_token="ACCESS_TOKEN_GOES_HERE")
diarization = pipeline("audio.wav")
with open("audio.rttm", "w") as rttm:
diarization.write_rttm(rttm)
高级用法
已知说话人数量
若事先知晓说话人的数量,可使用 num_speakers
选项:
diarization = pipeline("audio.wav", num_speakers=2)
指定说话人数量范围
也可以使用 min_speakers
和 max_speakers
选项指定说话人数量的下限和/或上限:
diarization = pipeline("audio.wav", min_speakers=2, max_speakers=5)
🔧 技术细节
实时因子
使用一块英伟达 Tesla V100 SXM2 GPU(用于神经推理部分)和一颗英特尔 Cascade Lake 6248 CPU(用于聚类部分)时,实时因子约为 2.5%。也就是说,处理一小时的对话大约需要 1.5 分钟。
准确率
本管道在不断增加的数据集上进行了基准测试。处理过程完全自动化:
- 无需手动进行语音活动检测(文献中有时会这样做)
- 无需手动指定说话人数量(尽管可以将其提供给管道)
- 无需对内部模型进行微调,也无需针对每个数据集调整管道超参数
采用最严格的分割错误率(DER)设置(在 本文 中称为 "Full"):
📚 详细文档
这份 报告 描述了 pyannote.audio
说话人分割管道 2.1
版本背后的主要原理。它还提供了如何将管道应用于您自己的标注数据集的方法。特别是,这些方法应用于上述基准测试时,与上述开箱即用的性能相比,始终能显著提高性能。
📄 许可证
本项目采用 MIT 许可证。
额外信息收集提示
收集的信息将有助于更好地了解 pyannote.audio
的用户群体,并帮助其维护者申请资助以进一步改进它。如果您是学术研究人员,请在自己的出版物中引用相关论文。如果您为公司工作,请考虑为 pyannote.audio
的开发做出贡献(例如,通过无限制捐赠)。我们还提供围绕说话人分割和机器听觉的科学咨询服务。
额外信息收集字段
- 公司/大学:文本
- 网站:文本
- 我计划将此模型用于(任务、音频数据类型等):文本
📖 引用
@inproceedings{Bredin2021,
Title = {{End-to-end speaker segmentation for overlap-aware resegmentation}},
Author = {{Bredin}, Herv{\'e} and {Laurent}, Antoine},
Booktitle = {Proc. Interspeech 2021},
Address = {Brno, Czech Republic},
Month = {August},
Year = {2021},
}
@inproceedings{Bredin2020,
Title = {{pyannote.audio: neural building blocks for speaker diarization}},
Author = {{Bredin}, Herv{\'e} and {Yin}, Ruiqing and {Coria}, Juan Manuel and {Gelly}, Gregory and {Korshunov}, Pavel and {Lavechin}, Marvin and {Fustes}, Diego and {Titeux}, Hadrien and {Bouaziz}, Wassim and {Gill}, Marie-Philippe},
Booktitle = {ICASSP 2020, IEEE International Conference on Acoustics, Speech, and Signal Processing},
Address = {Barcelona, Spain},
Month = {May},
Year = {2020},
}