【免费下载链接】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 的三点重要说明:
- 时间戳是绝对时间:相对整段录音起点,方便与后续数据对齐;
- 多人可重叠:重叠说话时,多个说话人会同时处于活跃状态;
- 编号是通用 ID:标签按说话人出现顺序分配,模型不识别"这是谁",如需声纹识别请另行处理。
常见注意事项清单 ✅
- 📌 输入必须是16 kHz 单声道,否则结果可能异常;
- 📌 说话人数超过 8 位时,模型只能区分前 8 位;
- 📌
generate_stream的说话人编号在全程保持一致,可直接用于拼接时间轴; - 📌 训练数据、评测指标与许可证详情,请参考模型卡片上游说明(见 README.md);
- 📌 权重文件通过 Git LFS 管理(见 .gitattributes),克隆时请确保环境支持 LFS。
仓库核心文件速查
| 文件 | 用途 |
|---|---|
| README.md | 模型简介、generate / generate_stream / feed 完整调用示例 |
| config.json | 模型结构、处理器参数(采样率、特征配置等) |
| model.safetensors | MLX 格式权重文件 |
小结:Nemotron-3-Diarization 把"谁在什么时候说话"这件事变得很简单——离线批处理用generate一步到位,长音频与实时展示用generate_stream增量输出,麦克风流则交给feed。三步之后,你的 MLX 设备上就跑起来了一个工业级的说话人分离引擎。🚀
【免费下载链接】Nemotron-3-Diarization
相关推荐
5分钟上手Nemotron-3-Diarization-preview:说话人分离模型快速开始指南
5分钟上手Nemotron 3 Diarization preview:说话人分离模型快速开始指南 Nemotron 3 Diarization preview
Nemotron-3-Diarization-8bit 核心API完全指南:generate与generate_stream一行代码解析说话人分段
Nemotron 3 Diarization 8bit 核心API完全指南:generate与generate_stream一行代码解析说话人分段 Nemotr
Nemotron-3-Diarization-8bit 快速上手:5分钟在Apple Silicon上跑通10毫秒级说话人分离
Nemotron 3 Diarization 8bit 快速上手:5分钟在Apple Silicon上跑通10毫秒级说话人分离 Nemotron 3 Diari
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考