☰
Nemotron-3-Diarization搭配流式ASR实现谁说了什么:说话人归属转写完整实战指南
2026/9/26 5:22:47 网站建设 项目流程

Nemotron-3-Diarization搭配流式ASR实现谁说了什么:说话人归属转写完整实战指南

【免费下载链接】Nemotron-3-Diarization项目地址: https://ai.gitcode.com/hf_mirrors/nvidia/Nemotron-3-Diarization

Nemotron-3-Diarization是 NVIDIA 开源的说话人分离(Speaker Diarization)模型,专门回答音频中"谁在什么时候说话"这个问题。将它与流式 ASR(语音识别)模型搭配,就能进一步生成"谁说了什么"的说话人归属转写——会议记录、客服通话、播客字幕等场景的刚需能力。本指南带你从零跑通这条流水线:支持最多8 位说话人、流式延迟最低0.32 秒、单检查点即可覆盖流式与离线两种模式。

先搞懂:分离模型 + 流式ASR 如何配合

很多人以为"语音转文字 + 区分说话人"是两件事,实际上它们是一条流水线:

环节负责模型输出
谁在什么时候说话Nemotron-3-Diarization帧级说话人活动概率(每 10 ms 一帧、8 路通道)
说了什么流式 ASR 模型每个说话人一条独立的转写流

这是一条耦合的流式流水线:分离模型持续输出"当前哪些人在说话",ASR 阶段则为每个被发现的说话人维护一条转写流。两者共用同一条音频流,边听边转,无需先录完再处理。

✨ 模型核心亮点:

  • 最多 8 位说话人(基线模型只有 4 人),靠"按到达顺序排列输出通道"自动解决说话人顺序问题
  • 单一检查点多延迟:输入缓冲延迟从 80 ms(极限)到 30.4 s(离线风格)可调,最低推荐配置为0.32 s
  • 仅100M 参数,轻量好部署;输入要求 16 kHz 单声道音频
  • 支持分块推理,音频时长无上限

准备工作:跑通分离模型的 3 个快速步骤

第 1 步:安装 NeMo Speech 运行环境

模型基于 NeMo 框架 v3.0,需要 Python 3.12+ 与较新的 PyTorch。最简安装路径:

apt-get update && apt-get install -y libsndfile1 ffmpeg uv pip install Cython packaging uv pip install 'nemo-toolkit[asr]'

第 2 步:准备标准格式的音频

配对模型只吃16 kHz、单声道音频。任何格式(mp3、opus、flac)先转换一下:

ffmpeg -i input.mp3 -ac 1 -ar 16000 -c:a pcm_s16le conversation.wav

第 3 步:加载模型

模型仓库自带检查点文件 Nemotron-3-Diarization.nemo,可通过模型名nvidia/Nemotron-3-Diarization直接从模型仓库加载,也可用restore_from()加载本地.nemo文件。详细加载方式与流式参数设置见 README.md。

两种开箱即用的流式ASR搭配方案

官方集成指南 ASR_INTEGRATION_GUIDE.md 给出两套验证过的搭配,按需二选一:

方案 1:Multitalker Parakeet方案 2:Nemotron 3.5 ASR
模型nvidia/multitalker-parakeet-streaming-0.6b-v1nvidia/nemotron-3.5-asr-streaming-0.6b
语言仅英文开箱支持 32 种语言地区
重叠语音处理针对重叠语音微调,直接消费说话人活动作为条件用分离活动的掩码识别重叠语音
关键开关masked_asr=falsemasked_asr=true
推荐上下文att_context_size='[70,13]'att_context_size='[56,13]'

方案 1:重叠会议首选 Multitalker Parakeet

在 NeMo Speech 仓库根目录运行多说话人流式推理脚本:

python examples/asr/asr_cache_aware_streaming/speech_to_text_multitalker_streaming_infer.py \ asr_model=nvidia/multitalker-parakeet-streaming-0.6b-v1 \ diar_model=nvidia/Nemotron-3-Diarization \ audio_file=/absolute/path/to/conversation.wav \ max_num_of_spks=8 single_speaker_mode=false masked_asr=false \ parallel_speaker_strategy=true cache_gating=true binary_diar_preds=true \ att_context_size='[70,13]' fifo_len=264 spkcache_update_period=222 \ output_path=./speaker_attributed_output.json

方案 2:多语言场景选 Nemotron 3.5 ASR

换 ASR 模型并改 3 个参数即可:asr_model=nvidia/nemotron-3.5-asr-streaming-0.6b、masked_asr=true、att_context_size='[56,13]',再按需指定target_lang=auto(自动推断语言)或具体语言。

关键参数速览

参数含义
max_num_of_spks=8会话中维护的说话人转写流上限,说话人少时可调低省算力
parallel_speaker_strategy=true并行处理各说话人的 ASR 流
cache_gating=true只对有语音活动的说话人跑 ASR,减少无效计算
fifo_len/spkcache_update_period流式几何参数,保持默认值即可,两个模型的对齐关系不要单独调

读懂输出:说话人归属转写长什么样

脚本把最终结果写入speaker_attributed_output.json(NeMo 的 SegLST 格式),每条记录包含文本 + 时间范围 + 匿名说话人标签。渲染后大致是:

Speaker 0: Welcome, everyone. Let us begin. Speaker 1: I have the latest numbers. Speaker 2: I agree, but there is one remaining issue.

💡 注意:Speaker 编号是会话内的身份(按该说话人首次出现的时间排序),不代表真实姓名。如果应用要显示人名,需自行通过声纹注册或应用层映射来关联。想实时看流式假设,把generate_realtime_scripts设为true。

流式延迟配置速查表

同一个检查点支持四档延迟,全部以 80 ms 帧为单位配置(来自 README.md):

配置输入缓冲延迟CHUNK_LENRIGHT_CONTEXTFIFO_LEN适用场景
高延迟(离线)30.4 s3404040批处理、精度优先
低延迟1.04 s94264准实时字幕
极低延迟0.64 s62264实时对话
超低延迟0.32 s31264低延迟交互(推荐最低档)

延迟 =(CHUNK_LEN + RIGHT_CONTEXT)× 80 ms,不含计算耗时。SPKCACHE_LEN=264与UPDATE_PERIOD(离线 300 / 流式 222)在所有档中保持一致。

常见问题快速排查 ⚠️

来自 ASR_INTEGRATION_GUIDE.md 的故障排查清单:

  • 只出现纯文本、没有说话人标签:确认用的是同时传asr_model和diar_model的多说话人脚本,而不是单独调asr_model.transcribe()
  • 模型下载失败:检查模型条款是否已接受、Token 是否同时有权限读取两个模型仓库
  • 音频被拒绝或效果差:转成 16 kHz、16 位 PCM 单声道再试
  • 显存不足(CUDA OOM):调低max_num_of_spks——多说话人架构会为每个活跃说话人保留独立 ASR 状态
  • 重连后说话人编号变了:编号是会话内的,属正常现象,不是生物特征身份

性能有多强?看 DER 指标

说话人分离的通用指标是DER(说话人分离错误率),越低越好。Nemotron-3-Diarization 对比上一代 4 人基线模型(30.4 s 离线档):

基准测试基线 DERNemotron-3 DER
DIHARD III(整体)19.0912.73
CALLHOME-Part2(电话)10.329.10
NOTSOFAR1 MHM(会议)21.776.77
AMI SDM(远场会议)21.4211.14

在 5–9 人、远场、重叠语音等困难场景下提升尤为明显,且超低延迟档(0.32 s)仅付出 0.4~1 个点的 DER 代价。完整的 8 组基准对比与推理速度(RTFx)数据见 README.md 性能评测章节;用 NeMo 评测脚本复现 DER 的方法(含 manifest 格式与 collar 设置)见 diarization_evaluation.md。

安全与合规提示

  • 部署前请用你自己的业务数据验证效果,模型卡强调需按用例做迭代测试
  • 语音属于个人数据:处理前请确认录音合规与用户知情,详见 privacy.md
  • 公平性与偏见评估:bias.md;可解释性说明:explainability.md;安全与漏洞上报:safety.md

🎯一句话总结:Nemotron-3-Diarization 负责"谁在说",流式 ASR 负责"说了啥",一条命令即可串起整条流水线——0.32 s 延迟、8 人上限、无时长限制,会议与实时对话场景的"谁说了什么"问题到此解决。

【免费下载链接】Nemotron-3-Diarization项目地址: https://ai.gitcode.com/hf_mirrors/nvidia/Nemotron-3-Diarization

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询