NVIDIA 发布了 Nemotron 3 Diarization,这是一个在 Hugging Face 上的开源权重说话人分离模型。它回答了关于任何对话的一个问题:谁在什么时候说话。这个 100M 参数的模型最多可追踪 8 位说话人,包括声音重叠的情况。一个检查点同时处理离线录音和实时流式传输。

它可以部署吗?可以。权重以 OpenMDW License 1.1 发布,允许商业使用。它通过 NVIDIA NeMo 在 Linux 上运行,使用 Ampere、Ada Lovelace、Hopper 或 Blackwell GPU。

为什么需要说话人分离?

自动语音识别(ASR)给你文字。它不会告诉你这些话是谁说的。没有归属,摘要工具就无法判断谁做出了承诺,或者谁提出了异议。

说话人分离输出每位说话人活跃的时间区间。这些时间戳与 ASR 输出结合,生成带说话人归属的转录文本。会议工具、通话分析、播客流水线和语音智能体记忆都依赖这一步。

相比 Streaming Sortformer 有什么变化

NVIDIA 早先的 Streaming Sortformer 检查点 diar_streaming_sortformer_4spk-v2.1 支持 4 位说话人。Nemotron 3 Diarization 将这一上限翻倍到 8 位。根据 NVIDIA 的公告,其目标是处理人们同时说话的杂乱多方音频。

架构如何工作

该模型接受 16 kHz、单声道音频,格式为 .wav、.flac、.opus 或 .mp3。它将音频转换为步长为 10 ms 的 Mel 频谱图特征。这些特征按 8 倍堆叠,产生 80 ms 的编码器帧。

一个带有旋转位置嵌入(RoPE)的 31 层 Transformer 编码器处理这些帧。然后一个 Conv1D 层将预测上采样回 10 ms 分辨率。输出是一个 [T, 8] 张量,表示每位说话人的活跃概率。

这种设计直接处理重叠。如果 2 个人同时说话,同一帧中会有 2 个通道激活。

该模型遵循 Sortformer 的方法,按到达时间对说话人排序。第一个新声音占用通道 1,下一个占用通道 2,依此类推。这使标签在流式块之间保持稳定,因此模型不必为每个块重新将说话人匹配到通道。

流式处理使用 2 种记忆机制。Arrival-Order Speaker Cache (AOSC) 保留来自较早分块说话人信息。FIFO 队列提供近期帧上下文。标签是匿名的,将其映射到真实身份留给下游应用处理。

4 个延迟工作点

输入缓冲延迟等于 (chunk + right context) × 80 ms。该表使用 DIHARD III 全集 DER 和来自模型卡的 batch-32 编译吞吐量。

配置缓冲延迟DIHARD III DERRTFx (batch 32, compiled)离线风格30.4 s12.73%15,113×低延迟1.04 s13.18%865×极低延迟0.64 s13.28%579×超低延迟0.32 s13.55%292×

该延迟不包括计算、网络和 ASR 时间。该模型在技术上可以以 80 ms 缓冲运行,但 0.32 s 是最低推荐设置。

基准测试结果

在 Voice Arena 的初始 Diarization-Bench 结果中,该模型在 12 个系统和 17 种配置中排名第一。测试覆盖 139 段英语对话,总计约 22 小时。它取得了 14.72% DER,而排名第二的系统为 19.3%,相对降低约 24%。NVIDIA 指出,一旦 Voice Arena 完成其 Version 1 评估,这些结果可能会发生变化。

与 1.04 s 延迟下的 4 说话人基线相比,DER 在所有 8 个评估条件下均下降。相对降低幅度从 CALLHOME-Part2 上的 9.0% 到 NOTSOFAR1 MHM 上的 65.2% 不等。8 个条件的未加权平均值为 41.0%。

有一处回退。在 30.4 s 下的 2 说话人 CALLHOME 上,DER 从 5.68% 上升到 5.98%。全集 CALLHOME-Part2 仍从 10.32% 改善到 9.10%。

吞吐量也大幅提升。在 30.4 s 下,该模型达到 15,113× RTFx,而基线为 2,619×。测试在 NVIDIA RTX PRO 5000 上使用 BF16 和 torch.compile()。这些是批处理数字,不是单流应用延迟。

训练数据

训练结合了约 10,000 小时真实对话和 82,611 小时模拟多人混合音频。混合数据包括从 David AI 授权的真实世界多说话人音频。加入 David AI 数据后,复合 DER 从 11.19% 降至 10.42%。用于模拟混合的授权源音频涵盖 21 种语言。

快速开始

使用 Python 3.12 或更高版本安装 NVIDIA NeMo Speech:

复制代码已复制使用其他浏览器

uv pip install 'nemo-toolkit[asr]'

复制代码已复制使用其他浏览器

from nemo.collections.asr.models import SortformerEncLabelModel

diar_model = SortformerEncLabelModel.from_pretrained("nvidia/Nemotron-3-Diarization")

diar_model.eval()

segments = diar_model.diarize(audio=["conversation.wav"], batch_size=1)

输出的片段格式为 start end speaker_id。若要同时获取词级信息,请按照 ASR 集成指南将该模型与 Parakeet TDT 0.6B v3 搭配使用。

这个实时演示 Space 提供合成对话、实时麦克风、多语言实时麦克风以及音频上传功能。在生产环境中,NVIDIA 列出了 Baseten 和 DigitalOcean。端侧支持可通过 Argmax Pro SDK 3 获得。该模型目前尚未通过 Hugging Face Inference Providers 提供。

该模型存在局限。超过 8 位说话人的录音可能会出现语音遗漏或错误分配。严重噪声、混响和远场拾音也会提高错误率。

交互式讲解

关键要点

100M 参数的开源权重模型可追踪最多 8 位重叠说话人。

单个检查点覆盖从离线(30.4 s)到超低 0.32 s 流式的全部场景。

在 Voice Arena 的初始 Diarization-Bench 上以 14.72% DER 排名第一。

在 1.04 s 下相较 Streaming Sortformer 平均实现 41.0% 的相对 DER 降低。

OpenMDW-1.1 许可证允许商业使用;该模型通过 NeMo 在 NVIDIA GPU 上运行。

查看模型权重、技术博客和演示。所有功劳归于该项目的研究者。也欢迎在 Twitter 上关注我们,别忘了加入我们拥有 150k+ 成员的 ML SubReddit 并订阅我们的新闻通讯。等等!你在 Telegram 上吗?现在你也可以在 Telegram 上加入我们。

需要与我们合作推广你的 GitHub 仓库或 Hugging Face 页面或产品发布或网络研讨会等?联系我们

文章 NVIDIA Releases Nemotron 3 Diarization: A 100M-Parameter Open-Weight Model That Tracks 8 Speakers in Real Time 首发于 MarkTechPost。