许可证:mit
许可证链接:https://huggingface.co/nvidia/BigVGAN/blob/main/LICENSE
标签:
- 神经声码器
- 音频生成
库名称:PyTorch
流水线标签:音频到音频
BigVGAN:基于大规模训练的通用神经声码器
李相吉(Sang-gil Lee)、魏平(Wei Ping)、鲍里斯·金斯伯格(Boris Ginsburg)、布莱恩·卡坦扎罗(Bryan Catanzaro)、尹成录(Sungroh Yoon)
[论文] - [代码] - [展示] - [项目页] - [权重] - [演示]

最新动态
-
2024年7月(v2.3):
- 全面重构和代码优化,提升可读性。
- 完全融合的抗锯齿激活CUDA内核(上采样+激活+下采样),并附有推理速度基准测试。
-
2024年7月(v2.2): 仓库新增基于gradio的交互式本地演示。
-
2024年7月(v2.1): BigVGAN现已集成至🤗 Hugging Face Hub,支持通过预训练检查点轻松进行推理。我们还提供了Hugging Face Spaces上的交互式演示。
-
2024年7月(v2): 我们发布了BigVGAN-v2及预训练检查点,亮点如下:
- 定制CUDA推理内核:提供融合的上采样+激活CUDA内核,推理速度提升1.5至3倍(基于单块A100 GPU测试)。
- 改进的判别器与损失函数:BigVGAN-v2采用多尺度子带CQT判别器和多尺度梅尔频谱损失进行训练。
- 更大规模的训练数据:训练集涵盖多样音频类型,包括多语言语音、环境音及乐器音。
- 提供多种音频配置的预训练检查点,支持最高44 kHz采样率及512倍上采样率。
安装
本仓库包含预训练的BigVGAN检查点,支持快速推理及huggingface_hub
集成。
如需训练模型或使用其他功能,请访问官方GitHub仓库:https://github.com/NVIDIA/BigVGAN
git lfs install
git clone https://huggingface.co/nvidia/bigvgan_v2_22khz_80band_256x
使用指南
以下示例展示如何加载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_256x', use_cuda_kernel=False)
model.remove_weight_norm()
model = model.eval().to(device)
wav_path = '/路径/至/音频.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')
使用定制CUDA内核加速合成
实例化BigVGAN时可通过参数use_cuda_kernel
启用快速CUDA推理内核:
import bigvgan
model = bigvgan.BigVGAN.from_pretrained('nvidia/bigvgan_v2_22khz_80band_256x', use_cuda_kernel=True)
首次使用时,系统会通过nvcc
和ninja
编译内核。若编译成功,内核将保存至alias_free_activation/cuda/build
并自动加载。代码库已在CUDA 12.1环境下测试。
请确保系统中已安装上述工具,且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
)。