nemo-nano-codec-22khz-1.89kbps-21.5fps部署指南:从NVIDIA GPU到Jetson设备的全平台支持
【免费下载链接】nemo-nano-codec-22khz-1.89kbps-21.5fps项目地址: https://ai.gitcode.com/hf_mirrors/nvidia/nemo-nano-codec-22khz-1.89kbps-21.5fps
nemo-nano-codec-22khz-1.89kbps-21.5fps是一款由NVIDIA开发的NeMo NanoCodec神经音频编解码器,它利用有限标量量化和对抗训练技术,在不同比特率和帧率范围内实现了最先进的音频压缩效果。这款模型支持22050Hz采样率、21.5fps帧率和1.89kbps比特率,非常适合需要高效音频压缩的应用场景。
🚀 模型概述:为什么选择nemo-nano-codec-22khz-1.89kbps-21.5fps? 🚀
NeMo NanoCodec采用全卷积生成器神经网络和三个鉴别器组成的架构,生成器包括编码器、向量量化和基于HiFi-GAN的解码器。非因果编码器由五个残差块组成,每个块包含三个类似多接收场融合(MRF)模块的残差层。因果解码器基于HiFi-GAN声码器,使用与编码器一维卷积步长相反的上采样率。
向量量化采用有限标量量化(FSQ),具有8个码本,每个码本2016个码,嵌入维度为32,FSQ级别为[8,7,6,6]。该模型总参数为62M,能够在保持高质量音频重建的同时实现高效压缩。
🌟 核心特性与优势
- 全平台支持:兼容NVIDIA Ampere、Blackwell、Hopper、Lovelace等多种GPU架构,以及Jetson设备
- 高效压缩:1.89kbps超低比特率下实现高质量音频重建
- 跨语言支持:支持105种语言的音频处理
- 易于集成:可无缝集成到NVIDIA NeMo 2.0.0框架中
- 商业可用:支持商业和非商业用途
📋 系统要求与兼容性
硬件要求
NeMo NanoCodec经过优化,可在以下NVIDIA硬件上运行:
- NVIDIA Ampere
- NVIDIA Blackwell
- NVIDIA Jetson
- NVIDIA Hopper
- NVIDIA Lovelace
- NVIDIA Pascal
- NVIDIA Turing
- NVIDIA Volta
软件要求
- 操作系统:Linux
- 运行时引擎:NeMo 2.0.0
- 依赖库:librosa、torch、soundfile等(具体版本请参见NeMo官方文档)
🔧 快速开始:安装与部署步骤
1️⃣ 准备工作:环境搭建
首先确保您的系统已安装NeMo 2.0.0框架。如果尚未安装,可以通过以下命令进行安装:
pip install nemo-toolkit[all]==2.0.02️⃣ 获取模型:两种方式任选
方式一:通过NeMo自动下载(推荐)
NeMo框架支持直接从Hugging Face Hub自动下载预训练模型,无需手动下载文件。
方式二:手动下载模型文件
如果需要手动下载模型,可以从项目仓库获取以下文件:
- nemo-nano-codec-22khz-1.89kbps-21.5fps.nemo:完整模型文件
- nemo_nano_codec_22khz_1.89kbps_21.5fps.decoder.f16.gguf:GGUF格式解码器
3️⃣ 克隆项目仓库
git clone https://gitcode.com/hf_mirrors/nvidia/nemo-nano-codec-22khz-1.89kbps-21.5fps cd nemo-nano-codec-22khz-1.89kbps-21.5fps🎯 基础使用指南:编码与解码
使用自动下载的模型进行推理
以下代码展示了如何使用NeMo框架自动下载并使用nemo-nano-codec模型进行音频编码和解码:
import librosa import torch import soundfile as sf from nemo.collections.tts.models import AudioCodecModel path_to_input_audio = "input.wav" # 输入音频路径 path_to_output_audio = "output.wav" # 重建输出音频路径 # 加载音频编解码器模型 nemo_codec_model = AudioCodecModel.from_pretrained("nvidia/nemo-nano-codec-22khz-1.89kbps-21.5fps").eval() # 从音频获取离散令牌 audio, _ = librosa.load(path_to_input_audio, sr=nemo_codec_model.sample_rate) device = 'cuda' if torch.cuda.is_available() else 'cpu' audio_tensor = torch.from_numpy(audio).unsqueeze(dim=0).to(device) audio_len = torch.tensor([audio_tensor[0].shape[0]]).to(device) encoded_tokens, encoded_len = nemo_codec_model.encode(audio=audio_tensor, audio_len=audio_len) # 从令牌重建音频 reconstructed_audio, _ = nemo_codec_model.decode(tokens=encoded_tokens, tokens_len=encoded_len) # 保存重建音频 output_audio = reconstructed_audio.cpu().numpy().squeeze() sf.write(path_to_output_audio, output_audio, nemo_codec_model.sample_rate)使用手动下载的模型进行推理
如果您已手动下载了模型文件,可以使用以下代码加载并运行推理:
import librosa import torch import soundfile as sf from nemo.collections.tts.models import AudioCodecModel codec_path = "nemo-nano-codec-22khz-1.89kbps-21.5fps.nemo" # 模型.nemo检查点路径 path_to_input_audio = "input.wav" # 输入音频路径 path_to_output_audio = "output.wav" # 重建输出音频路径 # 加载音频编解码器模型 nemo_codec_model = AudioCodecModel.restore_from(restore_path=codec_path, map_location="cpu").eval() # 从音频获取离散令牌 audio, _ = librosa.load(path_to_input_audio, sr=nemo_codec_model.sample_rate) device = 'cuda' if torch.cuda.is_available() else 'cpu' audio_tensor = torch.from_numpy(audio).unsqueeze(dim=0).to(device) audio_len = torch.tensor([audio_tensor[0].shape[0]]).to(device) encoded_tokens, encoded_len = nemo_codec_model.encode(audio=audio_tensor, audio_len=audio_len) # 从令牌重建音频 reconstructed_audio, _ = nemo_codec_model.decode(tokens=encoded_tokens, tokens_len=encoded_len) # 保存重建音频 output_audio = reconstructed_audio.cpu().numpy().squeeze() sf.write(path_to_output_audio, output_audio, nemo_codec_model.sample_rate)📊 性能表现
nemo-nano-codec-22khz-1.89kbps-21.5fps在多个客观音频质量指标上表现优异,以下是在不同测试集上的性能结果:
| 数据集 | Squim MOS (↑) | PESQ (↑) | Mel Dist. (↓) | SECS (↓) | CER (↓) |
|---|---|---|---|---|---|
| MLS | 4.427 | 2.837 | 0.150 | 0.854 | 2.434 |
| DAPS | 4.666 | 3.156 | 0.145 | 0.832 | 0.601 |
这些结果表明,该模型在保持低比特率的同时,能够提供高质量的音频重建效果,特别适合对带宽敏感的应用场景。
🔍 高级应用:模型微调
如果您需要针对特定数据集微调模型,可以参考NeMo的音频编解码器训练教程。需要将CONFIG_FILENAME参数设置为"audio_codec_low_frame_rate_22050.yaml"配置,并将pretrained_model_name设置为"audio_codec_low_frame_rate_22khz"。
⚠️ 注意事项与最佳实践
- 输入音频要求:模型仅支持22050Hz单声道音频输入
- 硬件加速:虽然模型可以在CPU上运行,但强烈建议使用NVIDIA GPU以获得最佳性能
- 内存要求:推理时建议至少有8GB内存,训练和微调则需要更多资源
- 语言支持:模型在105种语言上进行了训练,但在某些低频语言上的性能可能会有所下降
- 许可证:该模型遵循NVIDIA Open Model License Agreement,支持商业和非商业用途
📚 更多资源
- 官方文档:NeMo Audio Codec Inference Tutorial
- 研究论文:NeMo NanoCodec论文
- 相关模型:Magpie TTS(与本模型配合使用效果最佳)
通过本指南,您应该能够轻松地在各种NVIDIA平台上部署和使用nemo-nano-codec-22khz-1.89kbps-21.5fps模型,享受高效音频压缩带来的便利。如有任何问题或反馈,请参考项目的官方文档或联系NVIDIA支持团队。
【免费下载链接】nemo-nano-codec-22khz-1.89kbps-21.5fps项目地址: https://ai.gitcode.com/hf_mirrors/nvidia/nemo-nano-codec-22khz-1.89kbps-21.5fps
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考