segmentation-3.0 项目介绍
segmentation-3.0 是一个开源的音频处理项目,能够通过机器学习模型对音频进行说话人分段和语音活动检测等任务。这一项目由 Sèverin Baroudi 使用 pyannote.audio 3.0.0 版本开发,结合了多个训练集的数据,提供了多种功能以满足不同用户的需求。
项目背景和功能
segmentation-3.0 专注于处理 10 秒的单声道音频片段,采样率为 16kHz,通过输出说话人分段结果,生成一个包含多分类标签的矩阵。具体包含如下几类:非语音、说话者#1、说话者#2、说话者#3、说话者#1和#2、说话者#1和#3,以及说话者#2和#3。
项目涵盖了说话人分段、语音活动检测和重叠语音检测等多种功能,以下是一些具体的使用方法。
使用方法
安装要求
- 利用命令
pip install pyannote.audio
安装 pyannote.audio 3.0 版本 - 接受 pyannote/segmentation-3.0 用户协议
- 在 huggingface.co 上创建访问令牌
模型实例化和使用
首先需要从 pyannote.audio 导入 Model 模块,通过 Model.from_pretrained 方法来加载 pyannote/segmentation-3.0 预训练模型。
说话人分段
模型自身无法对完整录音进行独立的说话人分段,因为它只能处理 10 秒的音频片段。对于完整录音的处理,可以参考 pyannote/speaker-diarization-3.0 的管道,这个管道使用额外的说话者嵌入模型来进行处理。
语音活动检测
通过 pyannote.audio.pipelines 的 VoiceActivityDetection 模块进行语音活动检测。在设置超参数后,可以处理音频文件并获得包含语音区域的注释实例。
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")
重叠语音检测
可以通过 OverlappedSpeechDetection 模块进行重叠语音检测,设置相应的超参数后处理音频,最终获得包含重叠语音区域的注释实例。
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")
Citations
有关详细的技术背景和算法实现,相关论文提供了广泛的基础和支持,以下是一些参考:
- Alexis Plaquet 和 Hervé Bredin 在 INTERSPEECH 2023 上的相关工作
- Hervé Bredin 在 INTERSPEECH 2023 上关于 pyannote.audio 的演讲
总的来说,segmentation-3.0 项目为音频处理领域提供了强大的工具,并且通过其开放性和灵活性,支持不同用户在多种场景下实现高效的音频分析。