跳到主要内容

语音识别 · NVIDIA NeMo Speech

本地部署 NeMo 语音识别:从 2GB 就能加载的 Parakeet,到吃下 24 分钟长音频的 A100

NVIDIA 的语音栈已经从大一统的 NeMo 里拆了出来,现在的主线是 NeMo Speech v3.0.0。这一页把 Parakeet、Canary、Nemotron ASR 每个现役型号真实的显存门槛、能跑的卡,以及自部署时躲不掉的那几个坑,一次讲完。

先把名字理清楚。NeMo 不是一个模型,是 NVIDIA 的语音框架,Apache 2.0;你真正下载的权重叫 Parakeet、Canary、Nemotron ASR。它也不是 Mistral NeMo——那是 Mistral 与 NVIDIA 合作的 12B 文本大模型,同名不同物。更要注意的是仓库本身拆过一次:最后一个拆分前版本是 v2.7.3,之后 NVIDIA/NeMo 转向音频、语音与多模态 LLM,现在跟着走的是 NeMo Speech v3.0.0(对应 26.07.00 NGC 容器)。环境要求也随之抬高了:Python 3.12 以上、PyTorch 2.7 以上,官方实际在测的栈是 Python 3.13 + PyTorch 2.12 + CUDA 13.2。照着两年前的教程装,第一步就会卡住。

第二件事,也是选卡时最容易算错的:NeMo 的 ASR 显存需求跟音频长度走,不跟参数量走。模型卡写得很直白——parakeet-tdt-0.6b-v3「至少 2GB 显存即可加载模型,显存越大能吃的音频越长」,canary-1b-v2 是「至少 6GB」。听起来一张老卡就够了,但真正的边界在下一句:Parakeet v3 用全注意力时,在 A100 80GB 上支持到 24 分钟音频;换成局部注意力才能顶到 3 小时。所以 Hugging Face 讨论区里出现频率最高的报错就是长音频 CUDA out of memory,跟模型大小一点关系都没有。选卡要按你手上最长的那条录音选。

第三件事,中文用户必须先看:旗舰两个型号都不支持中文。parakeet-tdt-0.6b-v3 和 canary-1b-v2 覆盖的都是 25 种欧洲语言,列表里没有中文。要中文只有三条路——用 nemotron-3.5-asr-streaming-0.6b,它覆盖 40 个 language-locale,其中 zh-CN 落在第二档 broad-coverage 而不是第一档 transcription-ready,能用但别按英文精度去预期;或者拿 NeMo 自己在中文数据上微调,NVIDIA 官方放过 parakeet-tdt_ctc-0.6b-ja、parakeet-ctc-0.6b-Vietnamese 这类单语版本,说明这条路是通的;或者换模型。第二条路正好是租卡的典型场景。NexGPU 上 RTX 3090 24GB $0.193/卡·时、A10 24GB $0.414/卡·时、A100 SXM4 80GB $1.088/卡·时,按秒计费,把你最长的那条音频和最难的那批数据先跑一遍,比买卡试错便宜太多。

01 —

NeMo 现役语音模型与显存对照

官方模型卡给出的最低加载显存、音频长度边界与许可证,一栏看完。

版本参数量显存上下文说明
nvidia/parakeet-tdt-0.6b-v3600M(FastConformer-TDT)官方最低 2GB 加载;全注意力 24 分钟音频需 A100 80GB全注意力 24 分钟/局部注意力 3 小时批量转写主力。25 种欧洲语言、自动语种识别,Open ASR Leaderboard 平均 WER 6.34%、RTFx 3,332.74,自带标点大小写与词级、段级时间戳。CC-BY-4.0。
nvidia/canary-1b-v2978M(32 层 FastConformer 编码器 + 8 层 Transformer 解码器)官方最低 6GB 加载超过 40 秒自动动态分块,块间 1 秒重叠,需 batch_size=1转写加翻译双活:X→英、英→X 都能做。MLS 六语 WER 7.27%、RTFx 749。模型卡只验证到 Ampere / Hopper / Blackwell,别往 Volta 上放。CC-BY-4.0。
nvidia/canary-qwen-2.5b2.5B(SALM:FastConformer 编码器 + Transformer 解码器)官方未给最低值;按 2.5B 参数推算 bf16 权重在 5GB 量级,实操留到 16GB 以上稳妥训练时最长音频 40 秒、最长序列 1024 token英文精度天花板:Open ASR Leaderboard 平均 WER 5.63%,代价是 RTFx 掉到 418。支持 ASR 与 LLM 双模式,需 NeMo 2.5.0 以上。CC-BY-4.0。
nvidia/parakeet-unified-en-0.6b600M(Unified-FastConformer-RNNT,24 层编码器)与 Parakeet v3 同量级,按最长音频而不是按参数量留余量离线与流式共用一份权重,延迟档位 2.08s / 1.12s / 0.56s / 0.40s / 0.32s / 0.24s / 0.16s / 0.08s英文语音应用一套权重两种模式,最低延迟 160ms,编码器、predictor、joint 三部分参数共享。LibriSpeech test-clean 1.63%、test-other 3.11%。NVIDIA Open Model License。
nvidia/nemotron-3.5-asr-streaming-0.6b600M(FastConformer-CacheAware-RNNT with Prompt)官方未给最低值;同为 0.6B 量级,吞吐测试是在单张 H100 上做的分块 80ms 到 1,120ms 连续可调多语流式唯一解:40 个 language-locale,分三档——19 个 transcription-ready(含 ja-JP、ko-KR、ar-AR)、13 个 broad-coverage(zh-CN 在这一档)、8 个 adaptation-ready。OpenMDW-1.1。
nvidia/parakeet_realtime_eou_120m-v1120M(FastConformer-RNNT,17 层编码器,注意力上下文 [70,1])全系最小的一档,显存不是瓶颈;支持 Volta / Ampere / Hopper / Blackwell端到端延迟 80ms–160ms,输入需 16kHz 单声道、最短 160ms语音 Agent 专用:边转写边吐 <EOU> token 判断用户说完没有。EOU 检测延迟 p50 160ms、p90 280ms、p95 320ms,平均 WER 9.30%。需 NeMo 2.5.3 以上。NVIDIA Open Model License。

02 —

按场景选卡:NeMo ASR 显卡配置建议

显存按你最长的那条音频留,不是按参数量留——每一档都对应 NexGPU 上真实可租的卡与价格。

  • Parakeet TDT 0.6B v3 批量转写,音频切成片段处理

    RTX 3090 24GB$0.193/卡·时

    0.6B 权重官方只要 2GB 就能加载,剩下的 22GB 全部拿去堆 batch 和音频长度;3090 是 Ampere,在 Parakeet 的支持架构列表里,也是我们最便宜的 24GB 卡。想要 NVIDIA 亲测过的具体机型,Tesla T4 16GB($0.298/卡·时)就在模型卡的测试清单上。

  • Canary-1B-v2 做转写加语音翻译

    A10 24GB$0.414/卡·时

    官方最低 6GB 才能加载,且模型卡明确只在 Ampere / Hopper / Blackwell 上验证过,Volta 不在列。A10 正好是 NVIDIA 自己列出的实测机型之一,24GB 给 40 秒以上音频的动态分块留足了余量。

  • 长音频要全注意力原生精度,一次吃下 24 分钟不切片

    A100 PCIE 80GB$0.824/卡·时

    模型卡里那个 24 分钟全注意力的数字,就是在 A100 80GB 上给出来的。改成局部注意力可以顶到 3 小时,但要不切片、不改注意力配置的原生效果,这张卡是门槛。

  • 中文或多语流式识别,语音 Agent 常驻在线

    RTX 4090 24GB$0.540/卡·时

    nemotron-3.5-asr-streaming-0.6b 的支持架构列表里 Lovelace 在列,40 个 language-locale 含 zh-CN。流式吃的是低延迟而不是大显存,单请求算力占用很小,一张 4090 能同时扛多路 80ms–1,120ms 的会话。

03 —

四步把 NeMo 跑起来

从开机到第一条转写,外加上线前必须补的那一行。

  1. 01

    开一台实例,先对版本

    NeMo Speech v3.0.0 要求 Python 3.12 以上、PyTorch 2.7 以上,官方持续在测的栈是 Python 3.13 + PyTorch 2.12 + CUDA 13.2。在 NexGPU 控制台的 2,000+ 预置镜像里直接选 PyTorch 镜像,省掉自己配 CUDA 的一晚上。SSH 或网页终端进去先确认一遍——版本对不上,后面加载 .nemo 检查点时才报错,那时候你已经付了半小时的卡钱。

    nvidia-smi && python -c "import torch; print(torch.__version__, torch.version.cuda)"
  2. 02

    只装 asr 这一支,别装全量

    ASR 不需要整套 NeMo,模型卡给的就是这一行 extra。装完第一次 from_pretrained 会自动从 Hugging Face 把 .nemo 检查点拉到本地缓存。留意落盘位置:NexGPU 存储中位价 $0.414/GB·月,实例停了存储还在计费,权重和数据集记得挑对卷放。

    pip install -U "nemo_toolkit[asr]"
  3. 03

    加载模型,跑第一条音频

    Parakeet 系列一行加载一行转写,输出自带标点、大小写和时间戳。Canary 要额外给 source_lang 和 target_lang——这两个参数是「转写」还是「翻译」的唯一开关,讨论区里最常见的困惑就是没给参数、结果拿到了一段译文。也可以走 transformers 路线,Parakeet 已经有原生的 AutoModelForTDT / AutoModelForRNNT / AutoModelForCTC 支持。

    python -c "import nemo.collections.asr as nemo_asr; m = nemo_asr.models.ASRModel.from_pretrained('nvidia/parakeet-tdt-0.6b-v3'); print(m.transcribe(['audio.wav'])[0].text)"
  4. 04

    长音频先切到局部注意力,别等 OOM

    讨论区出现频率最高的报错就是长音频 CUDA out of memory。Parakeet v3 全注意力在 A100 80GB 上到 24 分钟为止,切成局部注意力能顶到 3 小时。上线前把这行加上,比事后一格一格调 batch 便宜得多。跑通了再决定要不要把这套流水线往 A100 或 H100 上搬。

    asr_model.change_attention_model(self_attention_model="rel_pos_local_attn", att_context_size=[256, 256])

跑一次 NeMo 到底要花多少钱

从最常见的一档算起:Parakeet TDT 0.6B v3 在 RTX 3090 24GB 上批量转写,$0.193/卡·时,通宵跑 8 小时是 0.193 × 8 = $1.544。要 Canary-1B-v2 的转写加翻译,A10 24GB $0.414/卡·时,同样 8 小时是 0.414 × 8 = $3.312。长音频要全注意力原生精度,A100 PCIE 80GB $0.824/卡·时,连跑一整天是 0.824 × 24 = $19.776。流式语音 Agent 想常驻,按 RTX 4090 24GB 算一整月:0.540 × 24 × 30 = $388.80——比买一张 4090 再配一台机器便宜得多,何况不用的时候停掉就不再计算力费。想用中文数据微调一版属于自己的 ASR,A100 SXM4 80GB $1.088/卡·时,单卡一轮 12 小时是 1.088 × 12 = $13.056;四卡并行一轮 3 小时是 1.088 × 4 × 3 = $13.056,同样的钱换四分之一的墙钟时间。存储另算:一份 0.6B 的 .nemo 检查点加上几十 GB 音频数据集,按 50GB 计是 50 × 0.414 = $20.70/月,实例停了存储仍在计费,不用的记得销毁。全程按秒计量、按小时计价,没有最低消费、没有开通费、不用申请配额。

04 —

常见问题

NeMo 和 Mistral NeMo 是同一个东西吗?我该下载哪个?

不是同一个。Mistral NeMo 是 Mistral 与 NVIDIA 合作的 12B 文本大模型;这一页说的 NeMo 是 NVIDIA 的语音框架 NeMo Speech,Apache 2.0 许可,你真正下载的权重叫 Parakeet、Canary、Nemotron ASR。另外仓库本身也拆过一次——最后一个拆分前版本是 v2.7.3,之后 NVIDIA/NeMo 转向音频、语音与多模态 LLM,现在的主线是 NeMo Speech v3.0.0。分不清就别先买卡,在 NexGPU 上开一台 RTX 3090 24GB($0.193/卡·时)装一遍,一小时之内就有答案。

Parakeet 和 Canary 支持中文吗?NeMo 能做中文语音识别吗?

旗舰两个都不支持中文。parakeet-tdt-0.6b-v3 和 canary-1b-v2 覆盖的都是 25 种欧洲语言,列表里没有中文。要中文有三条路:一是用 nemotron-3.5-asr-streaming-0.6b,它覆盖 40 个 language-locale,zh-CN 落在第二档 broad-coverage 而不是第一档 transcription-ready,能用但别按英文精度预期;二是拿 NeMo 自己在中文数据上微调,NVIDIA 官方放过 parakeet-tdt_ctc-0.6b-ja、parakeet-ctc-0.6b-Vietnamese 这类单语版本,说明路是通的;三是换模型。第二条正好是租卡的典型场景,NexGPU A100 SXM4 80GB $1.088/卡·时,按秒计费,试错成本就是几小时的卡钱。

Parakeet 转写长音频报 CUDA out of memory,是显卡太小了吗?

多半不是模型太大,而是音频太长——NeMo 的 ASR 显存需求跟音频时长走,不跟参数量走。模型卡给的边界很明确:全注意力在 A100 80GB 上支持到 24 分钟,改成局部注意力(self_attention_model="rel_pos_local_attn",att_context_size=[256, 256])能顶到 3 小时。所以对策只有三种:切片、换局部注意力、或者直接上大显存卡。NexGPU 的 A100 PCIE 80GB 是 $0.824/卡·时,先开一小时把你最长的那条音频完整跑一遍,比在小卡上反复试 batch 划算。

转出来混进了别的语种的词,或者整句被漏掉,是模型有问题吗?

不是坏了,是社区反复报告的已知行为。讨论区里集中出现三类:不给语言标签时模型会幻觉出其他语种的词、偶尔整句漏转、数字有时被写成字母。对策是显式指定语言、把长音频切成语义完整的片段、并在后处理里对数字做规则校正。如果要英文的精度上限,可以换 canary-qwen-2.5b——Open ASR Leaderboard 平均 WER 5.63%,代价是 RTFx 从 Parakeet v3 的 3,332.74 掉到 418。两条路都值得同一批音频各跑一次,NexGPU 按秒计费,对比实验的成本就是几美元。

做实时语音 Agent,NeMo 里该选哪个模型、要多大的卡?

看你要什么。要一份权重同时干离线和流式,选 parakeet-unified-en-0.6b,最低延迟 160ms,档位从 2.08s 一路密排到 0.08s。要多语言流式,选 nemotron-3.5-asr-streaming-0.6b,分块 80ms 到 1,120ms 连续可调。要判断用户说完没有,选 parakeet_realtime_eou_120m-v1,它边转写边吐 <EOU> token,EOU 检测延迟 p50 160ms、p90 280ms、p95 320ms,只有 120M。要处理多人同时说话,还有 multitalker-parakeet-streaming-0.6b-v1,靠 speaker kernel 注入做说话人分离,但要一个说话人一个模型实例,4 人以内效果稳、5 人以上明显衰减。流式吃的是低延迟不是大显存,NexGPU 的 RTX 4090 24GB $0.540/卡·时就够常驻,Telegram 上有中英文支持,不排工单。

这些模型能商用吗?许可证是怎么分的?

分两层看,而且权重之间并不统一。框架 NeMo Speech 本身是 Apache 2.0。权重方面:parakeet-tdt-0.6b-v3、canary-1b-v2、canary-qwen-2.5b 是 CC-BY-4.0,署名即可商用;parakeet-unified-en-0.6b、multitalker-parakeet-streaming-0.6b-v1、parakeet_realtime_eou_120m-v1 走 NVIDIA Open Model License;nemotron-3.5-asr-streaming-0.6b 是 OpenMDW-1.1。选型前把这一栏读一遍,别到上线才发现条款不合适。跑在哪儿不影响许可——NexGPU 覆盖 51 个国家和地区、1,175 个已验证可租节点、2,498 张 GPU,模型和音频数据都留在你自己的实例里,控制台在 console.nexgpu.net。

开始使用 NexGPU

无论你是企业研发团队还是独立开发者,都可以在几分钟内跑起第一个任务。

注册即可浏览全网实时价格,无需绑定支付方式。