NVIDIA Nemotron 3 说话人分离 100M 参数模型发布
TL;DR
NVIDIA 宣布开源 Nemotron-3 说话人分离 模型——一个支持最多八名说话人的 100M 参数 Transformer 模型,在 VoiceArena 的 Diarization-Bench 上以 14.72% 的说话人分离错误率(DER)排名第一,并适用于离线和实时流式应用场景。
为什么说话人分离很重要
说话人分离为语音转录增加了「谁在何时说话」的层。没有说话人归属信息,转录文本无法可靠地将承诺、反对或打断与正确的参与者关联起来,从而限制了搜索、摘要生成、待办事项提取以及语音代理的记忆功能。
模型概览与性能
- 模型大小:100M 参数,Hugging Face 上的开源权重检查点。
- 说话人容量:最多支持八名匿名说话人通道。
- 排行榜排名:在 VoiceArena 的 Diarization-Bench 上排名第一(14.72% DER),在 12 个系统和 17 种配置中表现最优。
- 延迟选项:输入缓冲延迟分别为 30.4 秒(离线模式)、1.04 秒、0.64 秒和 0.32 秒。
- 吞吐量:在 30.4 秒延迟下(批处理大小 32,BF16,torch.compile)达到 15,113× 实时因子(RTFx),远超此前四说话人 Sortformer 基线的 2,619×。
架构与推理流程
- 音频预处理 – 16 kHz 单声道音频 → 10 ms 帧步长的 Mel 谱图,堆叠 8 次生成 80 ms 帧。
- Transformer 编码器 – 31 层 Transformer,使用旋转位置编码(RoPE)。
- Conv1D 上采样器 – 恢复预测到原始特征分辨率。
- 输出张量 – 形状为
[T, 8],每一列表示在时间步 T(默认 10 ms 步长)时对应说话人通道活跃的概率。 - 流式内存 –
- 到达顺序说话人缓存(AOSC) 保留跨块的说话人嵌入,按首次出现顺序排列。
- FIFO 队列 提供最近的帧上下文。
- 右向上下文缓冲 – 提供未来音频以改善切换处理;可配置以在延迟与准确率之间权衡。
该模型遵循 Sortformer 原则:按到达时间对说话人排序,提供稳定通用标签(speaker_0、speaker_1 …),并消除每块的排列求解问题。
训练数据与授权数据的影响
训练使用了公开语音语料库,以及来自 David AI 的授权多说话人对话数据。加入 David AI 数据后,在离线和超低延迟运行点上,复合 DER 降低了 0.77 个百分点(从 11.19% 降至 10.42%)。
离线 vs. 流式说话人分离
- 离线:模型可看到完整录音,利用全局上下文进行说话人分配。
- 流式:模型以固定大小块处理,左右上下文有限,依赖 AOSC 和 FIFO 维持跨块的说话人身份。同一检查点可同时支持两种模式,简化部署。
基准测试结果与相对提升
| 数据集(子集) | 基线 DER | Nemotron-3 DER | 相对降低 |
|---|---|---|---|
| VoiceArena(总体) | 19.3% | 14.72% | ~24% |
| DIHARD III(完整) | 19.09% | 12.73% | 33% |
| CALLHOME-Part2(1.04 秒) | 10.32% | 9.10% | 12% |
| NOTSOFAR1 MHM(1.04 秒) | 27.5% | 9.6% | 65% |
在八个评估条件下,1.04 秒延迟下的未加权平均相对 DER 降低为 41%。在高说话人数量子集(五人及以上)中提升更大,且在所有延迟设置下均保持一致。
准确率与吞吐量权衡
- 30.4 秒缓冲:15,113× RTFx,DER 12.73%(DIHARD III)。
- 1.04 秒缓冲:865× RTFx,DER 13.18%(DIHARD III)。
- 0.32 秒缓冲:最低延迟,但 DER 略有上升;仍优于之前的 Sortformer 基线。
开发者应在目标硬件上对端到端延迟(包括音频 I/O、说话人分离、ASR 和下游处理)进行基准测试。
与说话人归属 ASR 的集成
说话人分离提供每个说话人通道的时间戳;ASR 提供词级时间戳。可通过简单的中点对齐启发式方法将每个词映射到活跃说话人:
midpoint = (word['start'] + word['end']) / 2
label = speaker_at(midpoint)
对于生产级转录,可能需要更复杂的重叠处理机制。
部署注意事项
- 说话人上限:模型最多支持八名并发说话人;超过此限制可能导致漏听或误分配。
- 声学鲁棒性:严重噪声、混响、远场采集或领域偏移可能降低性能。
- 不确定性处理:下游系统应保留置信度分数,而非将分配视为绝对。
- 许可:使用受 OpenMDW 许可证 v1.1 管理。
快速上手 NVIDIA NeMo Speech
apt-get update && apt-get install -y libsndfile1 ffmpeg
uv pip install Cython packaging
uv pip install 'nemo-toolkit[asr]'
from nemo.collections.asr.models import SortformerEncLabelModel
diarmodel = SortformerEncLabelModel.from_pretrained(
"nvidia/Nemotron-3-Diarization"
)
diarmodel.eval()
# 示例流式参数,延迟 1.04 秒
diarmodel.sortformer_modules.spkcache_len = 264
ndiarmodel.sortformer_modules.fifo_len = 40
ndiarmodel.sortformer_modules.chunk_len = 9 # 720 ms
ndiarmodel.sortformer_modules.chunk_right_context = 4
ndiarmodel._check_streaming_parameters()
segments = diarmodel.diarize(["/path/to/conversation.wav"], batch_size=1)
print(segments)
diarize() 方法返回带说话人标记的段落(start end speaker_id)。设置 include_tensor_outputs=True 可获取原始概率张量。
实时演示与生态系统支持
- 实时演示:https://huggingface.co/spaces/nvidia/nemotron-diarization – 支持合成八说话人对话、实时麦克风输入和多语言流。
- Argmax Pro SDK 3:支持设备端、实时的八说话人归属,以及预分离转录 API。
- 合作伙伴部署:Baseten、DigitalOcean 和 Argmax 提供生产级推理、扩展和移动端集成路径。
资源
- 模型卡片:https://huggingface.co/nvidia/Nemotron-3-Diarization
- VoiceArena 说话人分离基准排行榜
- Argmax Pro SDK 3 发布公告
- NVIDIA NeMo Speech 仓库
- Sortformer 论文(arXiv:2409.06656)和 Streaming Sortformer 论文(arXiv:2507.18446)
- 说话人分离 + ASR 集成快速入门指南
- 交互式演示空间
意义
Nemotron-3 说话人分离展示了单个相对较小(100M)的 Transformer 模型如何在支持八名说话人的情况下,实现跨多种延迟预算的最先进说话人归属准确率。这降低了在会议、呼叫中心分析、播客和设备端语音助手等场景中实现实时多说话人转录的门槛,并为未来的说话人分离研究与产品化设立了新基准。