
NVIDIA Nemotron 3 Diarization:实时多说话人日志模型

NVIDIA 发布了一款名为 Nemotron 3 Diarization 的开源权重模型,参数规模 1 亿(100M),专门解决「谁在什么时候说话」的问题。它在 VoiceArena 的 Diarization-Bench 排行榜上排名第一,Diarization Error Rate(DER)为 14.72%,比第二名系统的 19.3% 相对降低了约 24%。
说话人日志(Speaker Diarization)和语音识别是两件不同的事。ASR 负责把语音转成文字,但不负责区分是谁说的;Diarization 则负责标出每个说话人的活跃时间段,即使多人同时说话也能处理。只有把两者结合,才能生成带说话人属性的转录文本,让摘要、行动项提取、对话分析这些下游应用真正可用。
Nemotron 3 Diarization 沿用了此前 Streaming Sortformer 的「到达顺序排序」思路:第一个出现的新声音成为 speaker_0,第二个成为 speaker_1,以此类推。这样做的好处是,模型输出的说话人标签是稳定的,不需要在每个音频块上都重新解决说话人排列问题。模型最多支持 8 个说话人通道,但这些标签是匿名的,不负责识别具体身份,下游应用需要自行把通道 ID 映射到真实人物。
模型接受 16 kHz 单声道音频,转换成 10 ms 步长的 Mel 频谱特征,再以 8 倍堆叠成 80 ms 帧,送入一个 31 层 Transformer 编码器(使用 RoPE 旋转位置嵌入)。输出是一个 [T, 8] 的浮点张量,表示每个时间步上 8 个说话人通道各自的活跃概率。这种表示天然支持重叠语音——同一帧里可以有两个通道同时激活。
流式推理依靠两种记忆机制:Arrival-Order Speaker Cache(AOSC)按到达顺序保留先前音频块中出现的说话人信息,FIFO 队列提供当前块之前的近期帧上下文。输入缓冲区还可以包含右上下文(当前块之后的音频),右上下文越多越有助于判断说话人转换,但等待时间也越长。同一个模型可以配置在多个延迟档位下运行,推荐输入缓冲延迟为 30.4 秒、1.04 秒、0.64 秒和 0.32 秒。虽然技术上可以把输入缓冲压到 80 ms,但官方推荐的最低配置是 0.32 秒。
训练数据方面,官方明确使用了公开和授权的语音数据,其中包含从 David AI 授权的真实世界多说话人对话。加入 David AI 数据后,模型的复合 DER 从 11.19% 降至 10.42%,绝对下降了 0.77 个百分点。此外还使用 David AI 音频合成了覆盖 21 种语言的大规模模拟混合数据。
在评测方面,NeMo 评估集包含 901 个特定条件的录音,涵盖多语言电话语音、会议、近场和远场麦克风、多麦克风采集等场景,所有评测都对重叠语音计分。在与上一代四说话人 Streaming Sortformer(diar_streaming_sortformer_4spk-v2.1)的对比中,Nemotron 3 Diarization 在 1.04 秒输入缓冲延迟下,8 个评测数据集全部取得更低的 DER,相对降幅从 CALLHOME-Part2 的 9.0% 到 NOTSOFAR1 MHM 的 65.2% 不等,未加权平均相对降低 41.0%。在多个共享延迟档位(30.4 秒、1.04 秒、0.32 秒)上,新模型在每个数据集上的 DER 都更低。
性能优势在说话人数量较多的场景中更加明显。一个值得注意的细节是:在 CALLHOME 的两说话人子集上,新模型 DER 为 5.98%,略高于旧模型的 5.68%;但在完整 CALLHOME-Part2 评测中,DER 从 10.32% 改善到 9.10%,提升主要来自高说话人数子集。DIHARD III 的聚合结果包含 5 到 9 个说话人的录音,而 9 人超过了模型支持的 8 人上限,这意味着该聚合结果包含超出规格的音频。
吞吐量方面,在 30.4 秒配置下,Nemotron 3 Diarization 在 batch size 32 配合 torch.compile() 时达到 15,113× RTFx,旧基线为 2,619×,同时 DIHARD III DER 从 19.09% 降至 12.73%。在 1.04 秒配置下,新模型达到 865×(旧模型 136×),DER 从 19.60% 降至 13.18%。这些数据是在特定测试系统上用 BF16 和 NeMo PyTorch 后端测得的批量吞吐,不等同于单流的端到端应用延迟。
官方演示支持合成对话、8 说话人模式、现场麦克风输入和压力测试场景,还新增了多语言现场麦克风,可以对讲不同语言的说话人做实时流式日志。Argmax 已在其 Pro SDK 3 中加入对 Nemotron 3 Diarization 的支持,可实现最多 8 人的实时说话人归属,并推出了预日志转录 API。上手方面,模型从 Hugging Face 加载(nvidia/Nemotron-3-Diarization),可通过 NeMo 工具包调用 diarize() 方法获得带时间戳的说话人分段,也可以和 Parakeet TDT 0.6B v3 等 ASR 模型结合,用简单的中点对齐规则生成带说话人标签的文字。
官方明确列出了使用限制:最多支持 8 个说话人,超过上限会漏检或错分;噪音、严重混响、远场录音、领域偏移和超长音频都会导致性能下降。使用模型需遵守 OpenMDW License Agreement 1.1 版。


