Nemotron-3-Diarization API详解:4种输入方式与输出结果怎么用对
Nemotron-3-Diarization API详解4种输入方式与输出结果怎么用对【免费下载链接】Nemotron-3-Diarization项目地址: https://ai.gitcode.com/hf_mirrors/nvidia/Nemotron-3-DiarizationNemotron-3-Diarization 是 NVIDIA 开源的说话人分离Speaker Diarization模型专门回答音频中谁在什么时候说话。它最多支持 8 位说话人同时覆盖流式与离线两种推理场景。本文带你一次看懂diarize()API 的 4 种输入方式与 2 种输出结果并按延迟需求选对流式参数组让 API 第一次就用对。1️⃣ 快速认识这个模型能做什么Nemotron 3 Diarization 是一个 1 亿参数的 Transformer 编码器31 层带 RoPE 位置编码把 10 ms 梅尔频谱特征降采样为 80 ms 帧率处理流式推理时通过AOSC按到达顺序的说话人缓存 FIFO 队列在分块之间保持说话人身份稳定。一句话概括输入一段音频输出每个时刻是谁在说话。关键能力说明说话人数上限最多 8 人通道按谁先出现自动排序输入音频16 kHz 单声道支持.wav/.flac/.opus/.mp3时长限制分块推理下无固定上限输出帧分辨率默认 10 ms可配置为 10 ms 的任意倍数最低输入缓冲延迟0.32 s离线配置为 30.4 s2️⃣ 四种输入方式diarize()的 audio 参数怎么传调用核心只有一行predicted_segments diar_model.diarize(audioaudio_input, batch_size1)区别全在audio_input的传法上官方支持 4 种方式一单个音频文件路径最简单适合快速验证audio_input /path/to/multispeaker_audio1.wav方式二文件路径列表批量推理一次处理多段音频batch_size与之配合audio_input [/path/to/multispeaker_audio1.wav, /path/to/multispeaker_audio2.wav]方式三Numpy 数组单个或列表内存中音频适合流式管线中已经解码好的 PCM 数据import numpy as np audio_input np.random.randn(16000 * 10).astype(np.float32) # 10秒16kHz diar_model.diarize(audioaudio_input, batch_size1, sample_rate16000)⚠️重点提示传 Numpy 数组时必须显式指定sample_rate默认 16000传数组列表时更不可省略。方式四JSONL manifest 文件大批量/评测场景每行一个 JSON 对象含audio_filepath、offset、duration字段{audio_filepath: /path/to/multispeaker_audio1.wav, offset: 0, duration: 600} {audio_filepath: /path/to/multispeaker_audio2.wav, offset: 900, duration: 580} 小贴士非标准音频建议先用 ffmpeg 转成 16 kHz 单声道 PCMffmpeg -i input.mp3 -ac 1 -ar 16000 -c:a pcm_s16le conversation.wav3️⃣ 两种输出结果拿到数据后怎么读默认输出带说话人标记的片段列表predicted_segments diar_model.diarize(audioaudio_input, batch_size1) # 每个片段形如(开始秒, 结束秒, speaker_index)这是最常用的形式——直接得到起止时间 说话人编号。可选输出说话人活动概率张量加一个参数即可同时拿到逐帧概率predicted_segments, predicted_probs diar_model.diarize( audioaudio_input, batch_size1, include_tensor_outputsTrue)读这个张量只需记住 4 点形状为[T, 8]T 个输出帧 × 8 个说话人通道取值是 0~1 的活动概率8 个通道按说话人在音频中首次出现的时间排序第 0 通道就是最先开口的人默认帧分辨率 10 ms可配置为 30 ms、80 ms、240 ms 等任意 10 ms 倍数概率经后处理即可得到类似[speaker1, 0.51, 12.62]的通用标签 时间戳。4️⃣ 流式参数速查一张表选对延迟配置流式配置以80 ms 帧为单位定义官方给出 4 档推荐参数详见 README.md配置延迟SPKCACHE_LENFIFO_LENCHUNK_LENRIGHT_CONTEXTUPDATE_PERIOD离线精度优先30.4 s2644034040300低延迟1.04 s26426494222超低延迟0.64 s26426462222极超低延迟0.32 s26426431222两个使用要点延迟 (CHUNK_LEN RIGHT_CONTEXT) × 80 ms不含计算耗时参数设置完成后记得调用diar_model._check_streaming_parameters()做校验延迟越低精度会略有下降按业务取舍。5️⃣ 进阶一步从谁说了到说了什么分离模型只回答who spoke when要生成谁说了什么的说话人归属转写需搭配流式 ASR 模型。官方给出两种受支持组合及完整命令参数完整流程见 ASR_INTEGRATION_GUIDE.md。如果你要做效果评测DER / SCA / MAE 指标的定义与推荐评测命令见 diarization_evaluation.md。6️⃣ 常见坑位清单说话人编号≠真名输出的speaker_index只是会话内身份编号不代表真实姓名展示人名需要应用层另行映射超过 8 人模型只有 8 个通道更多说话人会漏检或被错分忘了 sample_rate传 Numpy 数组而不指定采样率结果会整体跑偏音频格式不对务必 16 kHz 单声道否则可能被拒绝或效果变差重连后编号变了标签是会话局部的断开重连后身份编号会重新分配这属于正常行为。相关资料README.md完整使用说明与性能数据 · ASR_INTEGRATION_GUIDE.mdASR 集成指南 · diarization_evaluation.md评测协议 · Nemotron-3-Diarization.nemo模型检查点【免费下载链接】Nemotron-3-Diarization项目地址: https://ai.gitcode.com/hf_mirrors/nvidia/Nemotron-3-Diarization创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考