
Nemotron-3-Diarization搭配流式ASR实现谁说了什么说话人归属转写完整实战指南【免费下载链接】Nemotron-3-Diarization项目地址: https://ai.gitcode.com/hf_mirrors/nvidia/Nemotron-3-DiarizationNemotron-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 给出两套验证过的搭配按需二选一方案 1Multitalker Parakeet方案 2Nemotron 3.5 ASR模型nvidia/multitalker-parakeet-streaming-0.6b-v1nvidia/nemotron-3.5-asr-streaming-0.6b语言仅英文开箱支持 32 种语言地区重叠语音处理针对重叠语音微调直接消费说话人活动作为条件用分离活动的掩码识别重叠语音关键开关masked_asrfalsemasked_asrtrue推荐上下文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_modelnvidia/multitalker-parakeet-streaming-0.6b-v1 \ diar_modelnvidia/Nemotron-3-Diarization \ audio_file/absolute/path/to/conversation.wav \ max_num_of_spks8 single_speaker_modefalse masked_asrfalse \ parallel_speaker_strategytrue cache_gatingtrue binary_diar_predstrue \ att_context_size[70,13] fifo_len264 spkcache_update_period222 \ output_path./speaker_attributed_output.json方案 2多语言场景选 Nemotron 3.5 ASR换 ASR 模型并改 3 个参数即可asr_modelnvidia/nemotron-3.5-asr-streaming-0.6b、masked_asrtrue、att_context_size[56,13]再按需指定target_langauto自动推断语言或具体语言。关键参数速览参数含义max_num_of_spks8会话中维护的说话人转写流上限说话人少时可调低省算力parallel_speaker_strategytrue并行处理各说话人的 ASR 流cache_gatingtrue只对有语音活动的说话人跑 ASR减少无效计算fifo_len/spkcache_update_period流式几何参数保持默认值即可两个模型的对齐关系不要单独调读懂输出说话人归属转写长什么样脚本把最终结果写入speaker_attributed_output.jsonNeMo 的 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_LEN264与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 DERDIHARD III整体19.0912.73CALLHOME-Part2电话10.329.10NOTSOFAR1 MHM会议21.776.77AMI 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),仅供参考