☰
3步上手Nemotron-3-Diarization:generate与generate_stream说话人分离调用实战教程
2026/10/19 1:12:12 网站建设 项目流程

【免费下载链接】Nemotron-3-Diarization

项目地址:https://ai.gitcode.com/hf_mirrors/mlx-community/Nemotron-3-Diarization
点击查看免费下载

Nemotron-3-Diarization 是一款基于 MLX 框架的说话人分离(Speaker Diarization)模型,由 NVIDIA 官方模型转换而来,配合 mlx-audio 即可运行。它可以从 16 kHz 单声道音频中自动区分最多 8 位说话人,时间分辨率高达 10 ms。本文用 3 个步骤带你完成首次说话人分离调用,并对比generate与generate_stream两种调用方式,快速应用于会议记录、多轮对话标注等场景。

模型能力一览:8 个说话人、10 ms 分辨率

在动手之前,先通过 config.json 了解模型的关键能力,避免踩坑:

能力项说明
🎙️ 说话人上限最多 8 位(num_speakers: 8)
⏱️ 时间分辨率10 ms
🎧 输入要求16 kHz 单声道音频
🧮 模型精度bfloat16
🏗️ 编码器结构31 层、512 维、8 注意力头
⚙️ 核心机制Sortformer 模块 + AOSC 说话人一致性机制

第1步:安装 mlx-audio 并加载说话人分离模型

先安装依赖:

pip install mlx-audio

如果希望在本地管理权重文件,可以克隆仓库:

git clone https://gitcode.com/hf_mirrors/mlx-community/Nemotron-3-Diarization

加载模型只需一行代码,strict=True会严格校验模型参数,确保加载的就是本仓库的 model.safetensors 权重:

from mlx_audio.vad import load model = load("mlx-community/Nemotron-3-Diarization", strict=True)

第2步:用 generate 一次性完成离线分离

generate适合整段音频离线处理:传入音频文件,一次性拿到全部说话人分离结果。

result = model.generate("meeting.wav") print(result.text)

调用要点:

  • 输入文件需为 16 kHz 单声道(可用 ffmpeg 等工具转码);
  • 返回值中直接包含分离结果,可打印result.text快速查看;
  • 适合会议录音、播客等"录完再处理"的批量场景。

第3步:用 generate_stream 实现增量流式分离

generate_stream返回一个增量生成器,边计算边产出结果,适合长音频或需要实时展示进度的场景。

for result in model.generate_stream("meeting.wav"): for segment in result.segments: print(segment.start, segment.end, segment.speaker)

调用要点:

  • 每次迭代返回当前已确定的语音段:起始时间、结束时间、说话人编号;
  • 增量结果通过 AOSC 与 FIFO 机制保持说话人身份一致——同一个人在整段音频中始终使用同一编号;
  • 适合长录音转写、边播边分离的交互界面。

进阶:feed() 处理实时 PCM 流输入

如果你要做实时录音场景(麦克风逐块输入),可以跳过文件级 API,直接喂 PCM 数据:

state = model.init_streaming_state() model.feed(chunk, state) # 输入 16 kHz 单声道 PCM 块 model.feed([], state, final=True) # 收尾:冲刷残余数据

来自 README.md 的三点重要说明:

  1. 时间戳是绝对时间:相对整段录音起点,方便与后续数据对齐;
  2. 多人可重叠:重叠说话时,多个说话人会同时处于活跃状态;
  3. 编号是通用 ID:标签按说话人出现顺序分配,模型不识别"这是谁",如需声纹识别请另行处理。

常见注意事项清单 ✅

  • 📌 输入必须是16 kHz 单声道,否则结果可能异常;
  • 📌 说话人数超过 8 位时,模型只能区分前 8 位;
  • 📌generate_stream的说话人编号在全程保持一致,可直接用于拼接时间轴;
  • 📌 训练数据、评测指标与许可证详情,请参考模型卡片上游说明(见 README.md);
  • 📌 权重文件通过 Git LFS 管理(见 .gitattributes),克隆时请确保环境支持 LFS。

仓库核心文件速查

文件用途
README.md模型简介、generate / generate_stream / feed 完整调用示例
config.json模型结构、处理器参数(采样率、特征配置等)
model.safetensorsMLX 格式权重文件

小结:Nemotron-3-Diarization 把"谁在什么时候说话"这件事变得很简单——离线批处理用generate一步到位,长音频与实时展示用generate_stream增量输出,麦克风流则交给feed。三步之后,你的 MLX 设备上就跑起来了一个工业级的说话人分离引擎。🚀

【免费下载链接】Nemotron-3-Diarization

项目地址:https://ai.gitcode.com/hf_mirrors/mlx-community/Nemotron-3-Diarization
点击查看免费下载
上一篇:Laravel-admin事件系统:实现业务逻辑解耦的终极指南
下一篇:CANN/pyto符号最小值计算

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

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

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

立即咨询