如何用 uv 从源码安装 NeMo Speech 并验证 ASR 与 TTS 集合可用
【免费下载链接】SpeechA scalable generative AI framework built for researchers and developers working on Large Language Models, Multimodal, and Speech AI (Automatic Speech Recognition and Text-to-Speech)项目地址: https://gitcode.com/GitHub_Trending/nem/Speech
目标:在本地从零安装 NVIDIA NeMo Speech,安装完成后能确认 ASR(自动语音识别)和 TTS(文本转语音)两个集合都已可用,即可以导入对应的nemo.collections子包,并能加载预训练模型。安装文档见 docs/source/starthere/install.rst,模型加载验证方式参考 docs/source/starthere/ten_minutes.rst 与 docs/source/tts/checkpoints.rst。
安装前的环境要求
安装文档给出的最低要求:
- Python 3.12 或更高版本;
- PyTorch 2.7 或更高版本(CPU 或 CUDA 构建均可,按你的目标选);
- NVIDIA GPU + CUDA:训练必需;纯 CPU 推理可行但很慢;
uv:官方推荐的安装工具(pip也可以,但 uv 是主路径)。
uv 安装路径会按仓库提交的uv.lock复现官方主动测试的依赖栈——默认是 Python 3.13、PyTorch 2.12 搭配 CUDA 13.2(另有 PyTorch 2.11 + CUDA 12.9 组合)。这是官方支持并持续测试的组合,但不是硬性要求;如果你已有满足最低要求的 Python/PyTorch/CUDA 环境,也可以用后文的 pip 回退方式装在现有环境之上,且不会替换你已有的 PyTorch。
用 uv 从源码安装
在源码根目录(本仓库)下执行:
git clone https://github.com/NVIDIA-NeMo/Speech.git cd Speech # CUDA 13.x(推荐)。CUDA 12.x 环境改用 --extra cu12 uv sync --extra all --extra cu13各参数的含义:
--extra all:安装全部集合(ASR、TTS、audio、speechlm2)。如果只需要 ASR 与 TTS,也可以改为--extra asr --extra tts的组合方式,二者在文档的 extras 表中都有定义;--extra cu13/--extra cu12:指定 CUDA 13.x 或 12.x 对应的 PyTorch 构建。Linux 上这两个 extra 互斥,必须且只能传其中一个;两个都省略时,uv 会装通用的 PyPI PyTorch wheel 而不是 NVIDIA 的 CUDA 匹配构建;uv sync会在.venv/中创建虚拟环境,并以 editable 模式安装 NeMo Speech。
日常使用有两种方式:用uv run <cmd>运行命令,或先source .venv/bin/activate激活环境。
可选步骤(按需):
# 安装测试工具链依赖(test 是 PEP 735 依赖组,不是 extra,必须用 --group) uv sync --extra all --extra cu13 --group test # 安装文档构建依赖 uv sync --group docs注意test和docs是依赖组,只能用--group安装,.[test]这种 bracket 写法无效。
如果目标是与容器完全一致的基线(Dockerfile 和 CI 使用的路径),加上--locked --python 3.13:
uv sync --locked --python 3.13 --extra all --extra cu13反过来,如果你是想在自带 Python/PyTorch/CUDA 的环境上叠加安装,不要用uv sync --locked——它会强制套用uv.lock,把你已有的 Python/PyTorch/CUDA 替换成受支持基线。该场景应使用uv pip或pip安装(安装文档的 “Install from PyPI with pip” 一节)。
验证 ASR 集合可用
安装完成后,官方文档给出的验证命令是导入 ASR 集合:
python -c "import nemo.collections.asr as nemo_asr; print('NeMo Speech ASR installed')"如果用了uv sync且没有激活.venv,需要通过 uv 运行:uv run python -c "..."。输出NeMo Speech ASR installed说明 ASR 集合导入成功。
文档还提供了更深一步的验证:实际下载并加载一个预训练模型:
import nemo_collections.asr as nemo_asr # 注意实际导入名为 import nemo.collections.asr model = nemo_asr.models.ASRModel.from_pretrained("nvidia/parakeet-tdt-0.6b-v2") print(f"Loaded: {model.__class__.__name__}")以上代码块按文档原文应写作:
import nemo.collections.asr as nemo_asr model = nemo_asr.models.ASRModel.from_pretrained("nvidia/parakeet-tdt-0.6b-v2") print(f"Loaded: {model.__class__.__name__}")from_pretrained会触发一次模型下载,需要网络可达;加载成功后打印模型类名。
验证 TTS 集合可用
TTS 集合的导入验证与 ASR 同理(导入语句取自 TTS 检查点文档的用法):
python -c "import nemo.collections.tts as nemo_tts; print('NeMo Speech TTS installed')"同样,未激活.venv时用uv run python执行。
如需验证 TTS 能实际生成语音,docs/source/starthere/ten_minutes.rst 给出了 Magpie TTS 的完整示例(模型会从 Hugging Face 下载):
from nemo.collections.tts.models import MagpieTTSModel import soundfile as sf # Load model (multilingual 357M, from Hugging Face) model = MagpieTTSModel.from_pretrained("nvidia/magpie_tts_multilingual_357m") model.eval() # Generate speech audio, audio_len = model.do_tts( transcript="Hello! Welcome to NeMo Speech AI.", language="en", ) # Save to file sf.write("output.wav", audio[0].cpu().numpy(), 22050) print("Speech saved to output.wav")能生成并保存出output.wav,说明 TTS 集合不仅可导入,推理链路也通了。
已知限制与注意事项
weights_only相关:从 PyTorch 2.6 起,torch.load默认weights_only=True。部分 checkpoint 需要weights_only=False,此时在加载前设置环境变量TORCH_FORCE_NO_WEIGHTS_ONLY_LOAD=1,并且只应用于可信文件——对不受信文件开启完整 pickle 支持有任意代码执行风险。- compiled 依赖不在本路径内:
compiled/compiled-a100extra 是为 SpeechLM2/Automodel 准备的可选性能增强(Transformer Engine、FlashAttention、Mamba、MoE kernel),需要完整 CUDA 构建环境且官方建议通过docker/Dockerfile构建。安装 ASR/TTS 集合不需要它们。 - pip 回退路径:想用自己的 PyTorch 时,先装 PyTorch(≥ 2.7),再
uv pip install 'nemo-toolkit[asr,tts]'(或等价的pip install),已装的 PyTorch 会被保留而不是替换。
验证命令全部通过后,ASR 与 TTS 集合即安装完成,可以继续按 docs/source/starthere/ten_minutes.rst 做转写与合成的实际操作,或查看 docs/source/asr/all_chkpt.rst 了解可用的预训练检查点。
【免费下载链接】SpeechA scalable generative AI framework built for researchers and developers working on Large Language Models, Multimodal, and Speech AI (Automatic Speech Recognition and Text-to-Speech)项目地址: https://gitcode.com/GitHub_Trending/nem/Speech
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考