You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

pyannote speaker diarization包报NoneType对象无items属性错误咨询

问题原因分析
  • 该报错由pyannote-audio开发分支近期的代码变更导致:一周前可正常运行是因为当时preprocessors配置的默认加载逻辑未改动,最新提交将pipeline实例化时的preprocessors默认值从空字典修改为None,后续代码遍历preprocessors调用.items()方法时未做非空判断,直接对None值执行方法调用就会触发该AttributeError。
  • 另一类常见触发场景是拉取的预训练pipeline配置文件中缺失preprocessors字段,配置解析阶段会将该字段赋值为None,和上述默认值改动触发报错的逻辑完全一致。
  • 该问题仅存在于安装开发分支代码、或近一周内拉取过最新预训练模型权重的运行环境,固定版本的正式发布版不会出现该问题。
解决思路
  • 临时快速修复:实例化pipeline时手动传入空字典作为preprocessors参数,覆盖默认的None值即可,参考代码:
from pyannote.audio import Pipeline
vad_pipeline = Pipeline.from_pretrained(
    "pyannote/voice-activity-detection",
    preprocessors={}
)
  • 版本回退方案:无需修改业务代码,直接将pyannote-audio回退到无该问题的正式稳定版本,执行安装命令:
    pip install pyannote-audio==3.1.1
  • 自定义逻辑兜底:如果是二次开发修改过加载逻辑的场景,可以在遍历preprocessors前增加非空判断兜底,参考代码:
# 遍历前先做非空校验
if self.preprocessors is None:
    self.preprocessors = {}

# 原有遍历逻辑保持不变
for key, preprocessor in self.preprocessors.items():
    # 自定义业务处理逻辑
    pass

注意:如果是按照官方语音活动检测教程跑通流程的场景,优先选第一种传参修复或者第二种版本回退方案,不需要改动包本身的源码。

内容的提问来源于stack exchange,提问作者askrobola

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 16:51:25