从环境准备到首次推理:pyannote.audio 安装与配置教程
【免费下载链接】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
会议录音里四五个人轮流开口,想自动把每段话归属到具体的人?这就是说话人日志要干的事。pyannote.audio 是一个基于 PyTorch 的开源说话人日志工具包,本教程带你完成 pyannote.audio 安装与配置,从零跑通第一次推理。
它能帮你解决什么
- 长录音自动转成"谁在什么时间说了什么"的说话人日志(speaker diarization)
- 检测音频中哪些区间有人在说话、哪些区间出现两人同时说话
- 为每段语音生成说话人嵌入向量,用于"这是不是同一个人"的比对
动手前:pyannote.audio 环境要求
先过一遍环境清单,避免装到一半才发现缺东西。
必需:
- Python 3.10 及以上(包声明
requires-python >=3.10) - ffmpeg,音频解码依赖它
- 稳定的网络,首次运行要下载模型权重
- Hugging Face 账号,以及一个访问令牌(官方模型为门控发布)
可选:
- NVIDIA GPU 和对应 CUDA 版本,推理明显更快;没有也能用 CPU 跑
pyannote.audio 安装步骤
创建一个隔离的虚拟环境
依赖装进系统 Python 容易污染全局环境,先建一个独立环境。
python3 -m venv ~/.venvs/pyannote source ~/.venvs/pyannote/bin/activate激活成功后,命令行提示符最前面会出现(.venvs/pyannote)之类的前缀。
安装 ffmpeg
音频解码库torchcodec靠 ffmpeg 解析音频文件,缺了它连 wav 都读不进来。
# Debian / Ubuntu sudo apt-get install -y ffmpeg # macOS brew install ffmpeg运行ffmpeg -version,能打印版本号即装好。
添加 pyannote.audio 包
这是核心安装动作,装完顺手验证 import 是否可用。
pip install uv uv add pyannote.audio python -c "import pyannote.audio; print(pyannote.audio.__version__)"最后一条命令打印出版本号且不抛异常,说明安装成功;依赖较多,第一次可能要等一两分钟。
项目 README 推荐用 uv 安装;手头没有 uv 的话,
pip install pyannote.audio效果相同。
在 Hugging Face 上接受许可并创建令牌
官方模型走门控发布:要先在模型页面勾选同意用户条件,再拿到访问令牌才能下载权重。
操作步骤:登录 Hugging Face → 打开pyannote/speaker-diarization-community-1模型页 → 勾选同意用户条件 → 进入 hf.co/settings/tokens 创建令牌并复制下来。
页面提示已接受、令牌创建成功后会显示一串hf_开头的字符,把它存好,下一步代码里要用。
pyannote.audio 快速上手:跑通第一次
拿任意一段 wav 做最小验证,代码不到 10 行:
import torch from pyannote.audio import Pipeline pipeline = Pipeline.from_pretrained( "pyannote/speaker-diarization-community-1", token="hf_你的令牌" ) pipeline.to(torch.device("cpu")) # 有 GPU 可改成 "cuda" 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_00、1.8s - 3.9s SPEAKER_01。看到这种按时间递增的条目,就说明管线已跑通。
新手常踩的坑
Q:报 "ffmpeg not found" 或无法解码音频?A:系统里没装 ffmpeg,用系统包管理器装上再试,验证命令是ffmpeg -version。
Q:加载预训练管线时报权限错误?A:模型是门控发布的,先去 Hugging Face 上那个模型页勾选接受用户条件,令牌才有权限拉权重。
Q:明明有 GPU,为什么还是跑在 CPU 上?A:pipeline.to()没指向设备,把它改成torch.device("cuda");先用python -c "import torch; print(torch.cuda.is_available())"确认 CUDA 可用。
Q:CPU 上处理长音频太慢?A:先用短音频验证流程,正式跑换 GPU;也可以把音频切成小段分批处理。
Q:生产环境不能联网怎么办?A:首次联网运行后权重会缓存在本地,把缓存目录整体拷到离线机器即可;细节见仓库里的 FAQ 离线部分和 离线使用教程。
更多细节看源码 README、FAQ 和 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),仅供参考