NVIDIA NeMo Speech 3.0发布:拆分仓库、移除80万行弃用代码,新增语音模型训练与推理功能
首个主版本聚焦技术债清理:仓库更名并聚焦语音任务,SpeechLM2支持NeMo Automodel训练,新增Nemotron VoiceChat模块,并带来流式ASR、MagpieTTS更新。
AI解读:NVIDIA对NeMo Speech 3.0的这次重构,本质是给语音开发者拆掉一座“大而全”但难以维护的仓库。原来NeMo把LLM、视觉、语音等全塞在一起,导致安装依赖多、文档混乱、迭代慢。3.0 把仓库拆成多个独立项目,Speech只专注ASR、TTS、音频和语音语言模型,并清理了 80 万行弃用代码——对用户最直接的感受是:安装更干净(用uv),容器更轻,出错面更小。功能上,SpeechLM2现在支持用NeMo Automodel训练稠密和MoE模型,并整合了vLLM推理导出;新加入的Nemotron VoiceChat模块为构建双向语音对话系统提供了训练和评估代码。不过要注意,“NemotronVoiceChat”类目前仅支持推理和评估,训练仍需分别调用DuplexSTT和TTS模块。如果你是现有NeMo用户,升级前需确认自己用的组件是否被迁移到其他仓库;普通开发者不需要马上行动,可以等社区积累迁移案例后再评估。
NVIDIA于 3 月 4 日发布NeMo Speech 3.0,这是仓库拆分并更名为 `NVIDIA-NeMo/Speech` 后的首个主版本(release notes标注r3.0.0)。新仓库聚焦ASR、TTS、音频处理、说话人任务和语音语言模型(SpeechLM);非语音的Framework、LLM、VLM、diffusion、export/deploy与evaluator组件移至NVIDIA-NeMo组织下的其他仓库。
官方发布说明称,版本核心是清除技术债:移除约 80 万行弃用代码,迁移至uv包管理器,增强模型测试覆盖,减少依赖数量,重写文档,提供更轻量的容器,并新增 `AGENTS.md` 与agentic skills。
破坏性变更与迁移路径
以下迁移事项可能影响现有用户:LLM/VLM/diffusion/NLP/export/evaluator集合已移出;不支持的ASR/TTS模型和旧教程已删除,需改用 `examples/` 下的活跃示例及 `docs/source/` 文档;`uv sync` 可复现受支持的NeMo Speech环境,但可能替换 `.venv` 内的Python/PyTorch/CUDA,如需保留自有环境,应先安装PyTorch,再用 `uv pip` 或 `pip`;SpeechLM2的编译加速为可选,官方建议在Docker镜像中使用Transformer Engine、FlashAttention、Mamba、grouped-GEMM和DeepEP性能路径。
SpeechLM2训练:支持NeMo Automodel与并行扩展
SpeechLM2现支持通过 `SALMAutomodel` 使用NeMo Automodel训练,目标涵盖稠密和MoE大模型骨干(如Nemotron 3)。该路径支持原生LoRA、延迟 `configure_model()` 初始化、分片感知的分布式加载和Automodel管理的mesh创建。
`AutomodelParallelStrategy` 支持FSDP2、HSDP、TP、CP和EP策略,可组合使用分片数据并行、张量/模型分区、长上下文序列分片和MoE专家路由。优化后端覆盖Transformer Engine、FlashAttention、Mamba/状态空间内核、用于MoE专家的grouped GEMM,以及用于专家并行all-to-all通信的DeepEP。
导出和服务方面,新增vLLM集成、支持HuggingFace/vLLM的检查点导出、骨干原生对话模板、离线HF导出和缓冲式SALM推理。数据格式支持ShareGPT对话、带索引的ShareGPT JSONL,以及基于WebDataset的ShareGPT对话。
- THD打包序列训练可减少变长语音批次中的填充浪费,是CP长音频训练的受支持路径。
- 长音频支持扩展包括编码器分块、激活检查点控制、CP安全的数据处理,以及dtype/检查点恢复的修复。
- 文档新增对FSDP2、HSDP、TP、PP、CP、EP策略在SpeechLM训练中的说明。
Nemotron VoiceChat训练模块与语音代理
NeMo Speech 3.0新增了Nemotron VoiceChat的训练/评估模块。具体包括:用于全双工语音对话响应生成侧的语音解码器模块;用于从用户语音和文本上下文生成智能体文本的DuplexSTT训练与推理代码;语音生成组件(含MagpieTTS解码器集成和语义编码器训练支持);以及整合STT+TTS的 `NemotronVoiceChat` 类,用于验证、离线语音到语音推理和导出流程。
官方说明提示:`NemotronVoiceChat` 类仅用于推理和评估,训练需分别使用 `DuplexSTTModel` 和 `DuplexEARTTS`/语音解码器模块。此外,新增强了语音代理(Voice Agent)示例,覆盖Nemotron Nano v2/v3、MagpieTTS、工具调用、音频日志和README指引,并加固了默认Parakeet EOU STT、文本聚合、结束处理、RTVI消息等行为。
ASR更新:流式、提示模型与解码提速
ASR方面,统一提示模型支持现涵盖多语言ASR和流式推理。流式ASR新增统一RNNT推理、批量流式波束搜索、模拟分块transducer解码、流式语音翻译以及Canary流式策略。
Transducer解码提速:官方称带置信度的解码速度提升 2.4 倍,并加入缓冲/缓存感知的置信度计算、减少冗余解码遍、降低流式内存占用,同时修复了WER相关问题。
短语提升(phrase boosting)扩展至transducer、缓存感知RNN-T,支持CTC/RNN-T/TDT的GPU短语提升。新增和更新的模型家族包括具备提示能力的Parakeet Hybrid RNNT/CTC模型、ASR EOU模型、Streaming Sortformer、带NFA的Canary2,以及ASR Transformer/Conformer-Transformer编码器。说话人分离/VAD移除了Pyannote依赖,并改进了输入处理。
TTS与音频工具
MagpieTTS获得大规模更新:新增解码器模型并重构,支持长文推理,统一了长文/标准推理路径和模型内部结构。新增CFG蒸馏(含局部transformer CFG蒸馏),并支持MagpieTTS MoE。
语言和文本支持扩展:新增印地语、日语、阿拉伯语字符分词器,日语-英语片假名及hi-IN、ko-KR、pt-BR的IPA支持,日语G2P重音支持。音频编码器与评估方面,新增语义编码器训练、编码器转换/带宽扩展、HF音频编码器加载、Frechet Codec Distance、并行评分、对比报告及确定性多GPU评估。
音频部分新增和修复了Conformer U-Net语音增强模型,为flow-matching语音增强增加了数据预测目标,并为 `SpectrogramToAudio` 增加流式模式,同时修复BNR 2.0在填充输入信号下的推理对齐。
数据加载、文档与安装
Lhotse支持扩展到Parquet/Arrow嵌入式音频、AIS批量加载、非tarred S3音频、温度重加权、随机化tarred分片切片及manifest内声道选择。在线数据增强现涵盖裁剪、低通滤波和有损编码器增强。
文档围绕语音范围、uv安装、ASR/TTS/SpeechLM2指南全面重写。安装遵循uv优先的源代码安装方式:`uv sync --extra all --extra cu13`;提供自带Python/PyTorch/CUDA的说明;Docker镜像基于官方PyTorch基础镜像,支持轻量级分阶段构建并为CUDA 12/13配置,同时更新了CVE相关依赖。
- 为每个受支持的公开模型添加了功能性的初始化/训练步/推理测试。
- 添加了grouped GEMM/专家路由的黄金值MoE调度测试。
- 测试按ASR GPU/CPU和SpeechLM2分类;发布CI迁移到AWS临时运行器。