尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

pyannote.audio 实战入门:10 分钟安装并跑通说话人日志

pyannote.audio 实战入门:10 分钟安装并跑通说话人日志 pyannote.audio 实战入门10 分钟安装并跑通说话人日志【免费下载链接】pyannote-audioNeural building blocks for speaker diarization: speech activity detection, speaker change detection, overlapped speech detection, speaker embedding项目地址: https://gitcode.com/GitHub_Trending/py/pyannote-audiopyannote.audio是一个基于 PyTorch 的开源说话人日志Speaker Diarization工具包它回答录音里谁在什么时候说话这个问题。它自带开箱即用的预训练管道你可以直接在本地运行也可以用自己的数据继续微调以获得更好的效果。能力速览你最常用到的四项能力开箱即用的预训练管道一行代码加载speaker-diarization-community-1不用训练、不用调参直接出说话人分割结果。社区版 / 高级版双档位社区版完全本地运行高级版precision-2错误率更低、速度快约 2.2 倍一行代码即可切换。Python 优先的 APIPipeline对象可直接调用说话人数等可选参数随调用传入方便嵌入你自己的应用。可持续微调预训练模型支持基于 PyTorch Lightning 的多 GPU 训练能适配你自己的领域数据。环境准备与安装把这 4 项准备好、装完包你就具备跑通第一个示例的全部条件。项目要求说明Python≥ 3.10项目硬性要求ffmpeg已安装torchcodec 音频解码库依赖它CUDA可选有 NVIDIA GPU 时加速推理和训练Hugging Face token需要创建用于下载模型并同意社区版用户条件uv add pyannote.audio # 主推 pip install pyannote.audio # 备选装完后在终端执行python -c import pyannote.audio; print(pyannote.audio.__version__)能打印出版本号就说明安装成功。使用社区版前还要做两件事在 Hugging Face 上同意pyannote/speaker-diarization-community-1的用户条件并创建一个个人访问令牌。在模型页面点 Files 标签页就能看到config.yaml管道的配置文件模型权重会在首次运行时自动下载。跑通第一个示例用下面这段代码加载社区版管道对一个 wav 文件跑完说话人日志并打印每段语音的起止时间和说话人标签。把audio.wav换成你自己的文件即可手头没有音频的话可以先用仓库里的示例文件tests/data/tst00.wav。import torch from pyannote.audio import Pipeline pipeline Pipeline.from_pretrained( pyannote/speaker-diarization-community-1, token你的TOKEN) pipeline.to(torch.device(cuda)) # 送显卡没有 GPU 就删掉这行 output pipeline(audio.wav) # 在本地运行 for turn, speaker in output.speaker_diarization: print(f{turn.start:.1f}s-{turn.end:.1f}s {speaker})输出长这样0.2s-1.5s speaker_0 1.8s-3.9s speaker_1 4.2s-5.7s speaker_0每一行是一段连续的语音开始时间、结束时间、说话人标签。相同标签代表同一个人这正是说话人日志的完整输出。场景化用法下面两个场景都基于上一节的pipeline对象按需取用。已知说话人数用 num_speakers 固定会议录音这种场景参与人数往往提前可知。把人数直接告诉管道聚类会更稳能明显减少把一个人拆成两个标签的错误。output pipeline(meeting.wav, num_speakers4) # 或者给一个范围让管道在区间内自行判断 output pipeline(meeting.wav, min_speakers2, max_speakers10)参数取值作用num_speakersint固定说话人数人数确定时准确度最高min_speakers/max_speakersint给出人数下限 / 上限仅在不传num_speakers时生效对会议、访谈、播客这类人数固定的内容固定人数意味着你可以把多估计一个说话人这类错误基本消除。追求更高准确率切换到高级版 precision-2当你想要更低的错误率、又不想自己占 GPU 时把Pipeline.from_pretrained的第一个参数换成pyannote/speaker-diarization-precision-2token 换成 pyannoteAI 的 API key新账号有免费额度。调用会在 pyannoteAI 服务器上运行返回的说话人标签形如SPEAKER_00、SPEAKER_01。项目说明token 来源pyannoteAI API key运行位置pyannoteAI 服务器不占用本地算力速度收益AMI 约 1 小时长录音上比社区版快 2.2 倍短录音快 2.6 倍其余调用代码完全不变pipeline(audio.wav)返回同样的speaker_diarization结构你可以拿同一段音频对比两个版本的准确率再决定长期用哪个。效果验证选版本前先看两档的真实说话人日志错误率Diarization Error Rate% 越低越好官方 benchmark 数据更新于 2025-09数据集community-1precision-2AISHELL-411.711.4AMI (IHM)17.012.9DIHARD 320.214.7VoxConverse11.28.5结论很直接干净录音上两者接近但在会议、电话等复杂数据AMI、DIHARD 3上高级版领先 4~5 个百分点——你的数据越嘈杂越值得用高级版。可选配置速查想调整遥测匿名使用指标行为只需要下面三处之一全部列在表里配置项取值作用环境变量PYANNOTE_METRICS_ENABLED1/0启用 / 禁用匿名遥测set_telemetry_metrics(True / False)bool仅当前 Python 会话生效set_telemetry_metrics(..., save_choice_as_defaultTrue)bool全局持久生效跨会话保留遥测只记录模型名称、音频时长这类无法识别个人身份的信息默认是开启的不想参与就把环境变量设为0。项目地图与下一步想深入源码或教程从这几个位置入手src/pyannote/audio/pipelines/说话人日志、语音活动检测等管道实现src/pyannote/audio/models/分割、说话人嵌入等模型定义tutorials/应用预训练管道、用自有数据微调等官方 notebookFAQ.md常见问题汇总到这里你已经能对一个音频文件产出完整的说话人日志结果下一步建议打开tutorials/adapting_pretrained_pipeline.ipynb把社区版管道微调到你自己的标注数据上进一步压低错误率。【免费下载链接】pyannote-audioNeural building blocks for speaker diarization: speech activity detection, speaker change detection, overlapped speech detection, speaker embedding项目地址: https://gitcode.com/GitHub_Trending/py/pyannote-audio创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表