Speaker Diarization NeMo Pyannote Multilingual Performance Evaluation

说话人分离模型实战对比评估

Ashar Mirza - VoicePing 2 分钟阅读
说话人分离模型实战对比评估

在 6 个真实场景中对 NeMo MSDD 和 Pyannote 3.1 进行技术对比评估的研究报告。

测试配置:6 个场景,5 种语言(EN、JA、KO、VI、ZH),3 个模型 硬件:NVIDIA GeForce RTX 4090 日期:2025年12月

摘要

我们在 6 个场景中评估了 3 个说话人分离模型:

模型说明平均 DER平均 RTF
NeMo Neural (MSDD)带神经网络精炼的多尺度分离解码器0.0810.020
NeMo Clustering不含 MSDD 的纯聚类方法0.1030.010
Pyannote 3.1端到端分离流水线0.1810.027

核心发现:

  • NeMo Neural 兼具最佳准确度和快速处理能力
  • 日语在较长上下文中表现改善:30分钟以上音频性能提升
  • 不含日语的多语言处理表现优异(DER: 0.050)

1. 引言

为了选择生产环境中使用的分离模型,我们设计了 6 个反映实际运行条件的测试场景:

  • 不同音频时长(10分钟至1小时)
  • 不同说话人数(4至14人)
  • 不同重叠程度(0%至40%)
  • 多语言音频混合

2. 测试模型

NeMo Neural (MSDD)

  • 使用 TitaNet-large 生成 192 维说话人嵌入
  • 在 5 个时间尺度(1.0秒~3.0秒窗口)上处理音频
  • MSDD 神经网络对初始聚类结果进行精炼
  • 平均 RTF:约 0.015~0.032

NeMo Clustering(纯聚类)

  • 使用相同的嵌入模型(TitaNet-large)
  • 仅使用谱聚类,不含 MSDD 精炼
  • 跳过神经网络精炼,速度显著更快
  • 平均 RTF:约 0.014~0.028

Pyannote 3.1

  • 包含 VAD、分割和聚类的端到端流水线
  • 使用 pyannote/segmentation-3.0 和 wespeaker 模型
  • 平均 RTF:约 0.018~0.043

3. 评估设置

3.1 测试场景

场景时长说话人数重叠率目的
长音频10分钟4~515%标准生产场景
超长音频30分钟10~1215%压力测试
1小时音频60分钟12~1415%极限时长测试
高重叠15分钟8~1040%最差重叠场景
多语言(5种)15分钟820%EN+JA+KO+VI+ZH
多语言(4种)15分钟820%EN+KO+VI+ZH(无日语)

3.2 评估指标

准确度指标:

  • DER Full(collar=0.0秒):最严格指标,无边界容差
  • DER Fair(collar=0.25秒):主要指标,250ms容差
  • DER Forgiving(collar=0.25秒,忽略重叠):最宽松

DER 组成:

  • 漏检率:系统遗漏的语音
  • 误检率:非语音被标记为语音
  • 混淆率:语音被分配给错误的说话人

4. 总体性能

4.1 准确度对比

全场景 DER 对比

主要观察:

  • NeMo Neural 比 Pyannote 准确约 55%(DER: 0.081 vs 0.181)
  • NeMo Clustering 与 Neural 接近(仅差 27%)
  • Pyannote 的混淆率高出 3.4 倍

4.2 处理速度对比

处理速度对比(RTF - 越低越快)

  • NeMo Clustering 最快(RTF 0.010)
  • NeMo Neural 也非常快(RTF 0.020)
  • 所有模型都远快于实时处理

4.3 准确度与速度权衡

准确度与速度权衡

重要发现: NeMo Neural 在准确度和速度上都表现最优,是大多数场景的最佳选择。

5. 分场景结果

5.1 长音频(10分钟)

NeMo Neural 各语言结果:

  • EN: 0.019(优秀)
  • JA: 0.157(比英语难 8.3 倍)
  • KO: 0.046
  • VI: 0.037
  • ZH: 0.053
  • 平均: 0.062

5.2 超长音频(30分钟)

关键发现——日语在较长上下文中改善明显:

  • 10分钟音频:DER 0.157(比英语难 8.3 倍)
  • 30分钟音频:DER 0.067(比英语难 2.9 倍)

较长的音频为声调语言建模提供了更好的声学上下文。

5.3 高重叠(40%)

  • NeMo Neural 和 Clustering 性能几乎相同(DER: 0.114 vs 0.115)
  • Pyannote 表现较差(DER: 0.202,比 NeMo 差约 77%)
  • 日语仍然是最困难的语言(DER: 0.232)

6. 语言分析

语言难度排名

主要观察:

  • 日语是所有模型中最困难的(平均比英语难 5.0 倍)
  • 英语最容易(DER: 0.037)
  • 越南语接近第二(仅比英语难 1.1 倍)

日语为何困难

不同音频时长下的日语性能

假设:

  1. 声调语言:音高承载语言含义,导致说话人嵌入混淆
  2. 音位体系狭窄:约 100 个音拍 vs 英语数千个音素
  3. 音节时长较短:每个说话轮次的时间上下文较少

7. 神经式 vs 聚类式

Neural 与 Clustering 性能对比

主要发现:

  • Clustering 平均仅差 3%
  • Clustering 处理速度快 2 倍
  • 速度/准确度权衡极小

建议:

  • 追求最高准确度:选择 NeMo Neural
  • 追求最快速度:选择 NeMo Clustering(快 2 倍,差 3%)

8. 多语言性能

8.1 日语的影响

含/不含日语的多语言性能

关键洞察: 日语是导致多语言分离困难的主要因素。

配置NeMo Neural DER
含日语(5种语言)0.142
不含日语(4种语言)0.050

8.2 错误分析

含/不含日语的错误分布

4种语言多语言表现好的原因:

  1. 更多的声学多样性帮助 VAD 检测语音边界
  2. 语言切换提供了自然的分段边界
  3. EN、KO、VI、ZH 具有兼容的声学特征
  4. 日语的声调特征导致跨语言的说话人混淆

9. 结论

核心结论

NeMo Neural 是最佳选择:

  • 最高准确度:DER 0.081(平均)
  • 快速处理:RTF 0.020(实时的 50 倍)
  • 不含日语的多语言表现优异:DER 0.050

关键发现:

  1. 日语在较长上下文中显著改善(30分钟为最优)
  2. 含日语的多语言虽有挑战(DER 0.142)但可控
  3. MSDD 神经网络精炼相比纯聚类仅有适度提升(27%)
  4. 所有模型都足够快,可用于生产环境

建议

使用场景模型原因
最高准确度NeMo NeuralDER 0.081
最快速度NeMo Clustering快 2 倍
长音频(30分钟~1小时)NeMo Neural应对复杂性
多语言(无日语)NeMo NeuralDER 0.050
日语(30分钟以上)NeMo Neural上下文有帮助

默认选择: NeMo Neural——兼具最佳准确度和快速处理。

分享这篇文章

免费试用 VoicePing

借助 AI 翻译跨越语言障碍。立即开始使用免费计划。

免费开始