资讯动态

pyannote speaker-diarization-community-1 说话人日志 Pipeline 完整指南:安装、推理、调参与离线部署

发布时间:2026/9/30 8:54:55 来源:尧图企业网站定制
【免费下载链接】speaker-diarization-community-1项目地址https://ai.gitcode.com/hf_mirrors/pyannote/speaker-diarization-community-1点击查看免费下载speaker-diarization-community-1是 pyannote 社区推出的新一代说话人日志speaker diarization预训练 pipeline它接收单声道 16kHz 音频输出谁在什么时候说话的分段结果。本文基于仓库根目录 README.md 与 config.yaml完整覆盖从环境准备、快速推理、GPU/内存优化、说话人数量控制到专属说话人日志exclusive speaker diarization与离线部署的全套实战方案并深入 pipeline 内部组件与配置参数帮助读者在本地复现并二次定制这一主流说话人日志方案。一、Community-1 是什么输入输出与核心改进从 README.md 的定位来看community-1pipeline 的核心契约非常简单输入单声道mono音频采样率 16kHz输出说话人日志结果即一系列说话人 × 时间段的片段。为降低使用门槛pipeline 对输入做了两层自动预处理用户无需手动转码多声道自动降混立体声或多声道音频文件会被自动平均各声道混音为单声道采样率自动重采样非 16kHz 采样率的音频在加载时会被自动重采样到 16kHz。相比此前的speaker-diarization-3.1Community-1的主要改进集中在四点见 README 的 main improvements 一节更好的说话人分配与计数improved speaker assignment and counting在学术基准上的说话人错误率DER全面下降详见下文基准测试专属说话人日志exclusivespeaker diarization简化与转写时间戳transcription timestamps的对齐该能力从最新商用模型 backport 而来易离线使用offline use无需联网即可完成加载与推理可选云端托管可托管在 pyannoteAI 云上通过 API Key 一行代码切换。二、仓库结构与组件构成一个 pipeline 的三段式解剖在阅读使用文档之前先看一眼当前仓库的目录结构它会告诉我们community-1内部由哪些模型部件拼装而成speaker-diarization-community-1/ ├── README.md # 官方使用文档本文主体 ├── config.yaml # pipeline 配置组件与超参数 ├── configuration.json # 仓库元数据framework/task ├── segmentation/ # 说话人分割模型权重 │ └── pytorch_model.bin ├── embedding/ # 说话人嵌入模型权重 │ ├── README.md │ └── pytorch_model.bin ├── plda/ # PLDA 得分归一化与 x-vector 变换 │ ├── README.md │ ├── plda.npz │ └── xvec_transform.npz └── diarization.gif # 演示动图对应 config.yaml 中的三段式结构这正是经典分割segmentation→ 嵌入embedding→ 聚类clustering的说话人日志架构dependencies: pyannote.audio: 4.0.0 pipeline: name: pyannote.audio.pipelines.SpeakerDiarization params: clustering: VBxClustering segmentation: $model/segmentation segmentation_batch_size: 32 embedding: $model/embedding embedding_batch_size: 32 embedding_exclude_overlap: true plda: $model/plda三个核心组件对应仓库中的真实文件组件配置引用仓库文件出处说话人分割模型$model/segmentationsegmentation/pytorch_model.bin基于 Plaquet Bredin 的 Powerset 多类交叉熵损失见 README 引用 1说话人嵌入模型$model/embeddingembedding/pytorch_model.binWespeaker VoxCeleb ResNet34-LM见 embedding/README.md 与 README 引用 2PLDA x-vector 变换$model/pldaplda/plda.npz、plda/xvec_transform.npzBUT SpeechFIT 训练的 PLDAVBx 集成见 plda/README.md 与 README 引用 3各部件职责简述分割模型逐帧预测谁在说话采用 Plaquet23 提出的Powerset multi-class cross entropy loss训练能够显式建模重叠语音嵌入模型对每个说话人片段提取固定维度的说话人表征embedding用于后续聚类Wespeaker 工具包训练的 ResNet34-LM 架构遵循其数据集VoxCeleb的 CC-BY-4.0 许可PLDA VBx 聚类将嵌入向量投影、打分并聚成不同的说话人簇。VBxBayesian HMM clustering of x-vector sequences由 Landini 等人提出其 PLDA 模型由 BUT SpeechFIT 团队训练并集成进 pyannote.audio。仓库根目录的 configuration.json 记录了该仓库的元信息framework: pytorch、task: automatic-speech-recognition并允许远程拉取allow_remote: true。三、环境准备与安装按照 README 的 Setup 一节使用前需要完成三步安装 pyannote.audiopip install pyannote.audio注意 config.yaml 声明dependencies.pyannote.audio: 4.0.0即该 pipeline 面向 pyannote.audio 4.x 设计建议使用 4.0.0 及以上版本以获得完整功能尤其是专属说话人日志与离线加载。接受用户条款访问模型主页并接受其使用条件该 pipeline 以 CC-BY-4.0 许可证发布始终免费可访问。创建访问令牌在 Hugging Face 的令牌设置页面生成一个 Access Token用于Pipeline.from_pretrained下载时的身份认证。四、快速上手三行代码完成说话人日志README 给出了最小可运行的快速开始示例# download the pipeline from Huggingface from pyannote.audio import Pipeline pipeline Pipeline.from_pretrained( pyannote/speaker-diarization-community-1, token{huggingface-token}) # run the pipeline locally on your computer output pipeline(audio.wav) # print the predicted speaker diarization for turn, speaker in output.speaker_diarization: print(f{speaker} speaks between t{turn.start:.3f}s and t{turn.end:.3f}s)关键点说明token{huggingface-token}处替换为第二步创建的 Access Tokenpipeline(audio.wav)支持传入文件路径也支持{waveform: ..., sample_rate: ...}字典见下文从内存处理返回的output.speaker_diarization是一个可迭代对象每个turn具有start与end属性秒speaker为说话人标签直接遍历即可打印谁在什么时间段说话。五、基准测试Community-1 与 legacy 3.1 的量化对比README 的 Benchmark 一节明确给出结论开箱即用out of the box下Community-1明显优于speaker-diarization-3.1。评测口径为在大规模学术基准集合上、全自动处理、无 forgiveness collar不设容错圈、不跳过重叠语音报告的指标为说话人错误率 DER%。下表来自 README数据更新于 2025-09Benchmark最近更新于 2025-09legacy(3.1)community-1precision-2AISHELL-412.211.711.4AliMeetingchannel 124.520.315.2AMIIHM18.817.012.9AMISDM22.719.915.6AVA-AVD49.744.637.1CALLHOMEpart 228.526.716.6DIHARD 3full21.420.214.7Ego4Ddev.51.246.839.0MSDWild25.422.817.3RAMC22.220.810.5REPEREphase27.98.97.4VoxConversev0.311.211.28.5观察要点在绝大多数基准上community-1相比 3.1 有 14 个百分点的 DER 下降如 AliMeeting 从 24.5 → 20.3Ego4D 从 51.2 → 46.8precision-2进一步压低 DER如 RAMC 低至 10.5CALLHOME 低至 16.6属于商用级模型唯一例外是 REPEREphase2community-18.9略高于 3.17.9评测时应留意这种个别基准的浮动。README 同时给出了一行代码体验更优的precision-2的方式先在 pyannoteAI 仪表盘创建 API Key含免费额度然后修改from_pretrained的模型标识即可推理仍走pipeline(audio.wav)同一接口只是请求会运行在 pyannoteAI 服务器上from pyannote.audio import Pipeline pipeline Pipeline.from_pretrained( - pyannote/speaker-diarization-community-1, token{huggingface-token}) pyannote/speaker-diarization-precision-2, token{pyannoteAI-api-key}) diarization pipeline(audio.wav) # runs on pyannoteAI servers六、进阶使用GPU、内存、进度监控与说话人数量控制README 提供了四个高频实战场景全部围绕同一个pipeline对象展开。6.1 在 GPU 上推理pyannote.audio的 pipeline 默认在 CPU 上运行。若本机有 CUDA 环境可用torch.device(cuda)将整个 pipeline 迁移到 GPUimport torch pipeline.to(torch.device(cuda))迁移之后继续调用pipeline(audio.wav)即可接口不变。6.2 直接从内存处理预加载加速将音频预先读入内存再传给 pipeline可以省去重复的磁盘 I/O通常能获得更快的处理速度waveform, sample_rate torchaudio.load(audio.wav) output pipeline({waveform: waveform, sample_rate: sample_rate})注意此时传入的是字典键固定为waveform与sample_rate与上一节快速上手中的文件路径传参等价。由于内部会自动重采样sample_rate不必是 16kHz。6.3 监控处理进度ProgressHook长音频的推理耗时较长pyannote.audio 提供了进度钩子接口from pyannote.audio.pipelines.utils.hook import ProgressHook with ProgressHook() as hook: output pipeline(audio.wav, hookhook)hook作为关键字参数传入pipeline()可在处理过程中上报各阶段的进度适合集成到 CLI 工具或 Web 服务中做进度条展示。6.4 控制说话人数量当场景中说话人数已知时可直接传入num_speakersoutput pipeline(audio.wav, num_speakers2)当只知道大致范围时可用min_speakers/max_speakers指定上下界output pipeline(audio.wav, min_speakers2, max_speakers5)这两个选项会约束内部聚类环节的说话人簇数量num_speakers为精确值min_speakers/max_speakers则在给定区间内做最优选择是修正聚类结果最直接的手段。七、专属说话人日志Exclusive Speaker Diarizationcommunity-1在常规说话人日志之外额外返回一份专属exclusive说话人日志通过output.exclusive_speaker_diarization访问output pipeline(audio.wav) exclusive output.exclusive_speaker_diarization根据 README 的说明该特性是从最新商用模型precision-2backport 到社区版的能力核心价值在于简化细粒度说话人日志时间戳与有时并不精确的转写时间戳之间的对齐常规说话人日志允许同一时刻出现多个说话人重叠语音时间片段可能互相交叠专属说话人日志保证时间轴上的每个时刻至多只有一个说话人片段互斥、连续因此与 ASR自动语音识别输出的转写片段做谁说了哪句话的映射时无需处理重叠与冲突。对于会议纪要生成、语音助手多轮对话、客服质检这类需要把转写文本归到具体说话人的下游任务直接使用exclusive_speaker_diarization可以显著降低后处理复杂度。八、离线使用完全无网络推理community-1支持将 pipeline 完整复制到本地磁盘之后完全离线加载与推理适合内网环境或对数据出境敏感的场景。第一步把仓库克隆到磁盘需要先安装 git-lfs克隆时提示输入密码处填入具备写权限的 Access Token# make sure git-lfs is installed git lfs install # create a directory on disk mkdir /path/to/directory # when prompted for a password, use an access token with write permissions. git clone https://hf.co/pyannote/speaker-diarization-community-1 /path/to/directory/pyannote-speaker-diarization-community-1克隆到本地后仓库目录中的segmentation/、embedding/、plda/权重与 config.yaml 都会被一并带上构成一个自包含的 pipeline 目录。第二步离线加载并推理# load pipeline from disk (works without internet connection) from pyannote.audio import Pipeline pipeline Pipeline.from_pretrained(/path/to/directory/pyannote-speaker-diarization-community-1) # run the pipeline locally on your computer output pipeline(audio.wav)注意此处from_pretrained的参数是本地磁盘路径而非模型 ID且不再需要token参数——pipeline 从本地加载完全不依赖网络。其余用法GPU、内存输入、进度钩子、说话人数量控制、专属日志均与在线版本一致。九、深入 config.yaml理解 pipeline 内部超参数config.yaml 是理解community-1行为的关键文件除了上文展示的组件装配外还包含以下可调超参数params: clustering: threshold: 0.6 Fa: 0.07 Fb: 0.8 segmentation: min_duration_off: 0.0clustering.threshold默认 0.6聚类得分阈值用于决定说话人片段是否归属同一说话人簇。阈值越低聚类越宽容倾向于合并为更少的说话人阈值越高越容易把相近片段拆成不同说话人。配合num_speakers/min_speakers/max_speakers可对该值进行补偿性调整。clustering.Fa默认 0.07/clustering.Fb默认 0.8VBx 聚类Bayesian HMM 说话人聚类的两个核心先验参数。VBx 通过 HMM 对 x-vector 序列建模Fa控制说话人转移相关先验Fb控制说话人发射分布相关先验两者共同影响片段划分的粒度与重叠语音的处理方式。它们是 VBx 方法论文Landini2022中定义的超参数调参时建议小步微调并观察 DER 变化。segmentation.min_duration_off默认 0.0对无人说话off片段的最短持续时长过滤。设为 0 表示不合并短暂停顿若调大例如设为 0.2则小于该值的非语音间隙会被合并到相邻语音片段使输出时间轴更平滑。segmentation_batch_size: 32/embedding_batch_size: 32分割与嵌入模型推理的批大小。显存充足时可适当调大以提升吞吐显存紧张时调小可降低峰值占用。embedding_exclude_overlap: true提取说话人嵌入时排除重叠语音区域。由于重叠区间的帧同时包含多个说话人混叠的嵌入会污染聚类因此默认排除若任务中重叠语音占比很高且希望保留这些帧可改为false观察效果。从实现上看$model/segmentation、$model/embedding、$model/plda中的$model前缀指向仓库自身的子目录即上文第二节列出的三个权重目录读者在本地克隆仓库后即可直接按此结构修改 yaml 做定制实验。十、引用与致谢若在论文或产品中使用本 pipelineREADME 提供了三份核心引用说话人分割模型Plaquet, A. Bredin, H.《Powerset multi-class cross entropy loss for neural speaker diarization》Proc. INTERSPEECH 2023。inproceedings{Plaquet23, author{Alexis Plaquet and Hervé Bredin}, title{{Powerset multi-class cross entropy loss for neural speaker diarization}}, year2023, booktitle{Proc. INTERSPEECH 2023}, }说话人嵌入模型Wang, H. 等《Wespeaker: A research and production oriented speaker embedding learning toolkit》ICASSP 2023。inproceedings{Wang2023, title{Wespeaker: A research and production oriented speaker embedding learning toolkit}, author{Wang, Hongji and Liang, Chengdong and Wang, Shuai and Chen, Zhengyang and Zhang, Binbin and Xiang, Xu and Deng, Yanlei and Qian, Yanmin}, booktitle{ICASSP 2023, IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP)}, pages{1--5}, year{2023}, organization{IEEE} }说话人聚类VBxLandini, F. 等《Bayesian HMM clustering of x-vector sequences (VBx) in speaker diarization: theory, implementation and analysis on standard tasks》Computer Speech Language, 2022。article{Landini2022, author{Landini, Federico and Profant, J{\a}n and Diez, Mireia and Burget, Luk{\a}{\v{s}}}, title{{Bayesian HMM clustering of x-vector sequences (VBx) in speaker diarization: theory, implementation and analysis on standard tasks}}, year{2022}, journal{Computer Speech \ Language}, }此外README 的致谢部分说明模型的训练与调优得益于 GENCI 提供的 Jean Zay 超算资源。总结speaker-diarization-community-1是一个开箱即用、细节可调、可完全离线的说话人日志 pipeline安装 pyannote.audio 并配置 Access Token 后三行代码即可对任意单声道音频输出说话人分段需要更高精度时可通过num_speakers/min_speakers/max_speakers约束聚类、通过exclusive_speaker_diarization简化与转写的对齐生产环境中则可利用 GPU 迁移、内存输入与 ProgressHook 优化吞吐并借助 git-lfs 克隆仓库实现零网络依赖部署。结合 config.yaml 中 VBx 聚类阈值、Fa/Fb 与批大小等参数读者完全可以在本地二次调优出适合自身业务数据的说话人日志方案。赞分享【免费下载链接】speaker-diarization-community-1项目地址https://ai.gitcode.com/hf_mirrors/pyannote/speaker-diarization-community-1点击查看免费下载相关推荐Nemotron-3-Diarization 实战指南基于 NVIDIA NeMo Speech 的流式与离线八说话人日志Speaker DiarizationNemotron 3 Diarization 实战指南基于 NVIDIA NeMo Speech 的流式与离线八说话人日志Speaker Diarizati人工智能语音音频3 步跑通 PaperQA2:安装、配置与文献问答完整指南3 步跑通 PaperQA2:安装、配置与文献问答完整指南 有一堆论文 PDF,想直接向它们提问,还要拿到带页码引用的答案?PaperQA2 就是为这个场景做的RAGAI AgentAI 应用NLPGHelper 奥创替代3 处设置把风扇噪音和续航焦虑降下来GHelper 奥创替代3 处设置把风扇噪音和续航焦虑降下来 奥创刚弹完更新提示任务管理器里已经躺着五个它的进程。GHelper 是单 exe 的华硕笔记桌面应用系统编程创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑