NVIDIA-NeMo/Speech · 上手攻略
- 仓库:NVIDIA-NeMo/Speech
- 链接:https://github.com/NVIDIA-NeMo/NeMo
- 分类:ai
- 作者:Tom
- 更新:2026-07-13
这是什么
NVIDIA NeMo Speech 是 NVIDIA 推出的专注于语音 AI 的开源框架,支持自动语音识别(ASR)、语音合成(TTS)和语音大模型(Speech LLM)三大方向。它是从原 NVIDIA/NeMo 大一统仓库中拆分出来的独立版本(2026 年 6 月正式发布首个 release),专门面向需要训练和微调语音模型的 연구人员和 PyTorch 开发者。
核心特点: - 不替换你的 PyTorch 环境:NeMo Speech 可以叠加在已有 PyTorch 安装上,不会覆盖现有环境 - 开源权重模型:在 HuggingFace 上有大量可直接下载的预训练检查点(Parakeet、Nemotron、Canary、MagpieTTS 等) - NVIDIA 官方优化:结合 Transformer Engine、FlashAttention 等 GPU 优化库,支持 FP8 训练和高速推理
解决什么问题
当你需要以下任务时,NeMo Speech 是首选开源方案之一:
- 训练自己的 ASR 模型:用私有数据微调一个专门的语音识别模型(如医疗记录、方言识别、客服通话)
- 训练定制 TTS:用少量样本克隆特定音色,或训练多语言 TTS
- 部署语音服务:将训练好的模型通过 FastAPI 或 NVIDIA NIM 部署为低延迟 API
- 语音大模型应用:利用 Speech LLM(如Nemotron VoiceChat)实现语音对话交互
在此之前,做这些任务通常要么依赖云服务 API(成本高、数据隐私问题),要么使用商汤/科大讯飞等商业 SDK(不透明、不可定制)。NeMo Speech 提供了全开源、透明、可自行训练的方案。
快速安装
环境要求
| 组件 | 最低要求 | 推荐配置 |
|---|---|---|
| Python | 3.12+ | 3.13 |
| PyTorch | 2.7+ | 2.12 |
| CUDA | 12.x / 13.x | CUDA 13.2 |
| GPU | 可选(推理) | NVIDIA GPU(训练必需) |
方式一:uv 源码安装(推荐,版本锁定)
git clone https://github.com/NVIDIA-NeMo/NeMo.git
cd NeMo
# CUDA 13.x(推荐)
uv sync --extra all --extra cu13
# 如使用 CUDA 12.x
uv sync --extra all --extra cu12
# 激活环境
source .venv/bin/activate
uv sync 会创建 .venv/ 虚拟环境,默认安装 Python 3.13 + PyTorch 2.12 + CUDA 13.2。注意:--extra cu13 和 --extra cu12 互斥,只能选一个。
方式二:pip 安装(带已有 PyTorch 环境)
如果你已有满足要求的 PyTorch 环境(不替换):
# 1. 创建虚拟环境
uv venv --python 3.12
source .venv/bin/activate
# 2. 安装 PyTorch(按你的 CUDA 版本选)
uv pip install torch --index-url https://download.pytorch.org/whl/cu126 # CUDA 12.6
# 3. 安装 NeMo Speech(ASR + TTS)
uv pip install 'nemo-toolkit[asr,tts]'
方式三:Docker(版本锁定,最省心)
git clone https://github.com/NVIDIA-NeMo/NeMo.git
cd NeMo
# 构建镜像(CUDA 13 / H100+,默认)
docker buildx build -f docker/Dockerfile -t nemo-speech .
# 运行
docker run --rm -it --gpus all -v "$PWD:/workspace" nemo-speech bash
A100 用户:
docker buildx build -f docker/Dockerfile \
--build-arg GPU_TARGET=a100 -t nemo-speech:a100 .
核心用法
验证安装
import nemo.collections.asr as nemo_asr
# 检查 ASR 模块是否正常导入
model = nemo_asr.models.ASRModel.from_pretrained("nvidia/parakeet-tdt-0.6b-v2")
print(f"模型加载成功: {model.__class__.__name__}")
快速 ASR 推理(语音转文字)
import torch
import soundfile as sf
import nemo.collections.asr as asr
# 加载预训练模型
model = asr.models.EncDecCTCModelBpe.from_pretrained("nvidia/parakeet-tdt-0.6b-v2")
# 读取音频(NeMo 要求特定采样率,会自动重采样)
audio, sample_rate = sf.read("your_audio.wav")
# 推理
transcriptions = model.transcribe(audio, batch_size=4)
print(transcriptions)
快速 TTS 推理(文字转语音)
import nemo.collections.tts as tts
# 加载 TTS 模型
model = tts.models.fastpitch.FastPitchModel.from_pretrained("nvidia/magpie_tts_multilingual_357m")
# 合成语音
with torch.no_grad():
audio = model.generate(text="你好,欢迎使用 NVIDIA NeMo TTS。")
# audio 现在是 numpy 数组,可进一步处理或保存
常用模块导入
# ASR(自动语音识别)
from nemo.collections.asr import models as asr_models
# TTS(语音合成)
from nemo.collections.tts import models as tts_models
# 音频处理(降噪、分离等)
from nemo.collections.audio import models as audio_models
# 语音大模型
from nemo.collections.speechlm2 import models as speechlm2_models
按需安装子模块
| 安装参数 | 包含内容 |
|---|---|
[asr] |
ASR 模型、数据加载器、工具 |
[tts] |
TTS 模型、声码器、音频编解码器 |
[audio] |
音频处理模型(增强、分离) |
[speechlm2] |
语音大模型(含 NeMo Automodel) |
[all] |
全部上述模块 |
典型适用场景
- 医疗语音录入:用私有医疗语音数据微调 ASR,构建专业医学术语识别系统
- 客服通话质检:将大量客服录音转文字后,用 NLP 模型做情感分析和关键词提取
- 低延迟语音对话:利用 Nemotron VoiceChat(Early Access)做全双工语音助手
- 多语言语音识别:Parakeet/Canary 支持 25+ 欧洲语言,适合国际化产品
- 语音数据增强:TTS 生成训练数据,解决 ASR 训练数据不足问题
- 流式 ASR 部署:Nemotron-3.5-ASR-Streaming 支持 80ms~1s 可控延迟,适合实时字幕、会议转录场景
坑与注意
- Python 3.12 是门槛:低于此版本无法安装,如果系统默认 Python 是 3.10,记得创建独立虚拟环境
- uv sync --locked 会替换 PyTorch:如果你有已有的 PyTorch 环境,不要用
--locked,否则会被覆盖;用uv pip install代替 - CUDA 版本选错会无法使用 GPU:确认 GPU 驱动支持的 CUDA 版本;H100/H200/B200 等新卡用 CUDA 13,V100/A100 用 CUDA 12
- 训练必须要有 NVIDIA GPU:纯 CPU 可以跑推理(非常慢),但无法训练;NeMo 大量使用 CUDA 核,没有 GPU 寸步难行
- 模型下载需要网络:HuggingFace 模型权重首次下载可能较大(Parakeet 约 1.2GB),内网环境注意代理
- PyTorch 2.6+ weights_only 默认行为:某些老检查点需要
TORCH_FORCE_NO_WEIGHTS_ONLY_LOAD=1,但仅限可信文件;加载来路不明的检查点有代码执行风险 - 仓库正在转型中:NeMo 正从大一统仓库拆分为 Speech、NLP 等独立仓库;2026 年 6 月后新代码在
NVIDIA-NeMo/NeMo,旧多功能版本见 v2.7.0 release
与同类对比
| 框架 | 厂商 | 特点 |
|---|---|---|
| NeMo Speech | NVIDIA | 开源、可微调、GPU 优化强;非 NVIDIA GPU 效率下降 |
| Whisper | OpenAI | 开源、识别质量好;但主要是推理,微调需额外框架 |
| Coqui TTS | Coqui | 开源 TTS、本地运行好;但模型规模和质量不及 NeMo |
| ESPnet | 学术 | 开源 ASR/TTS、学术友好;但工程化程度不如 NeMo |
| WeNet | 出门问问/学术 | 专注流式 ASR、工业部署成熟;但只覆盖 ASR |
NeMo Speech 在需要微调和NVIDIA GPU 训练的场景下有明显优势,配合 NVIDIA 官方推理优化(如 TensorRT)可达到极低延迟。但如果是纯 CPU 环境或只需要开箱即用的推理,Whisper API 或 Coqui 可能更轻便。
一句话推荐结论
如果你有 NVIDIA GPU 并需要训练或微调自己的语音模型,NeMo Speech 是目前最成熟的开源语音训练框架;但如果只是想在本地跑一个语音识别,Whisper 的门槛更低。