Skip to content

pyannote.audio:开源说话人日志工具包

pyannote.audio 是一个基于 Python 的开源工具包,专注于说话人日志(Speaker Diarization)任务,即解决“who spoke when”的问题。它基于 PyTorch 框架开发,提供了最先进的预训练模型和流程,能够处理语音活动检测、说话人改变检测、重叠语音检测以及说话人嵌入等任务。以下是对该工具包的详细介绍。

https://github.com/pyannote/pyannote-audio https://pypi.org/project/pyannote.audio/ https://huggingface.co/pyannote

视频

https://www.bilibili.com/video/BV1cN411h7E9/ https://www.bilibili.com/video/BV1fXr7YREuP/ https://www.bilibili.com/video/BV1uACLYuELq/ https://www.bilibili.com/video/BV1Gg4y1p7dr/

1. 简介

pyannote.audio 是一个功能强大的开源工具包,用于处理多说话人的音频数据。它能够自动识别音频中不同说话人的语音片段,并将其分配给相应的说话人。该工具包的主要特点包括:

  • 预训练模型:提供了多种预训练模型,可以直接应用于常见的说话人日志任务。
  • 端到端流程:从语音活动检测到说话人嵌入提取,再到说话人聚类,pyannote.audio 提供了完整的处理流程。
  • 高性能:在多个基准测试中表现出色,具有较高的准确率和效率。
  • 可扩展性:支持对预训练模型进行微调,以适应特定的数据集或应用场景。

2. 安装与使用

安装

通过以下命令安装 pyannote.audio

pip install pyannote.audio

使用示例

以下是一个简单的使用示例,展示如何加载预训练模型并处理音频文件:

from pyannote.audio import Pipeline
pipeline = Pipeline.from_pretrained(
    "pyannote/speaker-diarization-3.1",
    use_auth_token="HUGGINGFACE_ACCESS_TOKEN_GOES_HERE")

# 将流程发送到 GPU(如果可用)
import torch
pipeline.to(torch.device("cuda"))

# 应用预训练流程
diarization = pipeline("audio.wav")

# 打印结果
for turn, _, speaker in diarization.itertracks(yield_label=True):
    print(f"开始={turn.start:.1f}秒 结束={turn.end:.1f}秒 说话人_{speaker}")

3. 主要功能

3.1 语音活动检测(Voice Activity Detection, VAD)

语音活动检测用于识别音频中是否存在语音活动。pyannote.audio 提供了高效的 VAD 模型,能够准确地检测出语音片段。

3.2 说话人改变检测(Speaker Change Detection)

该功能用于检测音频中说话人何时发生改变。这对于多说话人的音频处理尤为重要,能够帮助系统更好地分割和识别不同的说话人。

3.3 重叠语音检测(Overlapped Speech Detection)

在多人对话场景中,可能存在多个说话人同时说话的情况。pyannote.audio 能够检测出这些重叠语音片段,为后续的处理提供支持。

3.4 说话人嵌入(Speaker Embedding)

说话人嵌入是说话人日志中的关键步骤。pyannote.audio 提供了强大的嵌入模型,能够将语音片段映射到嵌入空间,从而实现说话人的区分和聚类。

4. 性能与基准测试

pyannote.audio 在多个基准测试中表现出色,以下是一些关键指标:

基准测试 v2.1 v3.1 pyannoteAI
AISHELL-4 14.1 12.2 11.9
AliMeeting(通道1) 27.4 24.4 22.5
AMI(IHM) 18.9 18.8 16.6
AMI(SDM) 27.1 22.4 20.9
AVA-AVD 66.3 50.0 39.8
CALLHOME(第2部分) 31.6 28.4 22.2
DIHARD 3(完整版) 26.9 21.7 17.2
Earnings21 17.0 9.4 9.0
Ego4D(开发版) 61.5 51.2 43.8
MSDWild 32.8 25.3 19.8
RAMC 22.5 22.2 18.4
REPERE(第2阶段) 8.2 7.8 7.6
VoxConverse(v0.3) 11.2 11.3 9.4

5. 开发与贡献

pyannote.audio 提供了详细的开发文档和贡献指南,方便开发者进行模型的扩展和优化。开发者可以通过以下命令设置开发环境:

pip install -e .[dev,testing]
pre-commit install

6. 相关资源

Ref

https://zhuanlan.zhihu.com/p/647250252 http://blog.tubumu.com/2023/04/04/speech-speaker-identification-using-pyannote-audio/ https://www.dongaigc.com/p/pyannote/pyannote-audio https://blog.csdn.net/mr_lio/article/details/135959266 https://developer.baidu.com/article/details/3246745 https://cloud.tencent.com/developer/article/2419977