🚀 BigVGAN:基于大规模训练的通用神经声码器
BigVGAN是一款经过大规模训练的通用神经声码器,能够高效地实现音频生成,在语音合成等领域具有重要应用价值。
🚀 快速开始
本仓库包含预训练的BigVGAN检查点,方便进行推理,并额外支持huggingface_hub
。
如果你对模型训练和其他功能感兴趣,请访问官方GitHub仓库获取更多信息:https://github.com/NVIDIA/BigVGAN
git lfs install
git clone https://huggingface.co/nvidia/bigvgan_v2_22khz_80band_fmax8k_256x
✨ 主要特性
- 代码优化:2024年7月(v2.3)进行了全面重构和代码改进,提升了代码的可读性。同时推出了抗锯齿激活(上采样 + 激活 + 下采样)的全融合CUDA内核,并进行了推理速度基准测试。
- 本地演示:2024年7月(v2.2),仓库中增加了使用gradio的交互式本地演示。
- 集成Hugging Face Hub:2024年7月(v2.1),BigVGAN与🤗 Hugging Face Hub集成,可轻松使用预训练检查点进行推理。同时在Hugging Face Spaces上提供了交互式演示。
- BigVGAN-v2发布:2024年7月(v2)发布了BigVGAN-v2及预训练检查点。亮点包括:
- 自定义CUDA内核用于推理:提供用CUDA编写的融合上采样 + 激活内核,加速推理速度。在单个A100 GPU上,测试显示速度提高了1.5 - 3倍。
- 改进的判别器和损失函数:使用多尺度子带CQT判别器和多尺度梅尔频谱图损失进行训练。
- 更大的训练数据:使用包含多种音频类型的数据集进行训练,包括多种语言的语音、环境声音和乐器声音。
- 多样的预训练检查点:提供使用不同音频配置的BigVGAN-v2预训练检查点,支持高达44 kHz的采样率和512x的上采样率。
📦 安装指南
git lfs install
git clone https://huggingface.co/nvidia/bigvgan_v2_22khz_80band_fmax8k_256x
💻 使用示例
基础用法
以下示例展示了如何使用BigVGAN:从Hugging Face Hub加载预训练的BigVGAN生成器,从输入波形计算梅尔频谱图,并使用梅尔频谱图作为模型输入生成合成波形。
device = 'cuda'
import torch
import bigvgan
import librosa
from meldataset import get_mel_spectrogram
model = bigvgan.BigVGAN.from_pretrained('nvidia/bigvgan_v2_22khz_80band_fmax8k_256x', use_cuda_kernel=False)
model.remove_weight_norm()
model = model.eval().to(device)
wav_path = '/path/to/your/audio.wav'
wav, sr = librosa.load(wav_path, sr=model.h.sampling_rate, mono=True)
wav = torch.FloatTensor(wav).unsqueeze(0)
mel = get_mel_spectrogram(wav, model.h).to(device)
with torch.inference_mode():
wav_gen = model(mel)
wav_gen_float = wav_gen.squeeze(0).cpu()
wav_gen_int16 = (wav_gen_float * 32767.0).numpy().astype('int16')
高级用法
你可以在实例化BigVGAN时使用参数use_cuda_kernel
来应用快速CUDA推理内核:
import bigvgan
model = bigvgan.BigVGAN.from_pretrained('nvidia/bigvgan_v2_22khz_80band_fmax8k_256x', use_cuda_kernel=True)
首次应用时,它会使用nvcc
和ninja
构建内核。如果构建成功,内核将保存到alias_free_activation/cuda/build
,模型会自动加载该内核。代码库已使用CUDA 12.1
进行测试。
请确保系统中安装了nvcc
和ninja
,并且系统中安装的nvcc
版本与你的PyTorch构建版本匹配。
更多详细信息,请参阅官方GitHub仓库:https://github.com/NVIDIA/BigVGAN?tab=readme-ov-file#using-custom-cuda-kernel-for-synthesis
📚 详细文档
预训练模型
我们在Hugging Face Collections上提供了预训练模型。可以在列出的模型仓库中下载生成器权重(名为bigvgan_generator.pt
)及其判别器/优化器状态(名为bigvgan_discriminator_optimizer.pt
)的检查点。
相关链接
论文作者
Sang-gil Lee, Wei Ping, Boris Ginsburg, Bryan Catanzaro, Sungroh Yoon
论文成绩

模型图片
📄 许可证
本项目采用MIT许可证,详情请见许可证链接。