🚀 BigVGAN:大规模训练的通用神经声码器
BigVGAN是一款经过大规模训练的通用神经声码器,能够有效应用于音频生成任务,在语音合成等领域具有出色表现。
📚 详细文档
论文与代码链接
- 作者:Sang - gil Lee、Wei Ping、Boris Ginsburg、Bryan Catanzaro、Sungroh Yoon
- 论文 - 代码 - [展示](https://bigvgan - demo.github.io/) - 项目页面 - [权重](https://huggingface.co/collections/nvidia/bigvgan - 66959df3d97fd7d98d97dc9a) - 演示
论文影响力
[
](https://paperswithcode.com/sota/speech - synthesis - on - libritts?p=bigvgan - a - universal - neural - vocoder - with - large)
模型图示
📢 最新消息
- 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编写的融合上采样 + 激活内核,以加速推理速度。我们的测试显示,在单个A100 GPU上速度可提高1.5 - 3倍。
- 改进的判别器和损失函数:BigVGAN - v2使用多尺度子带CQT判别器和多尺度梅尔频谱图损失进行训练。
- 更大的训练数据:BigVGAN - v2使用包含多种音频类型的数据集进行训练,包括多种语言的语音、环境声音和乐器声音。
- 我们提供了使用多种音频配置的BigVGAN - v2预训练检查点,支持高达44 kHz的采样率和512倍的上采样率。
📦 安装指南
本仓库包含预训练的BigVGAN检查点,可轻松进行推理,并提供了额外的huggingface_hub
支持。
如果您对模型训练和其他功能感兴趣,请访问官方GitHub仓库获取更多信息:https://github.com/NVIDIA/BigVGAN
git lfs install
git clone https://huggingface.co/nvidia/bigvgan_v2_44khz_128band_512x
💻 使用示例
基础用法
以下示例展示了如何使用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_44khz_128band_512x', 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_44khz_128band_512x', 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](https://huggingface.co/collections/nvidia/bigvgan - 66959df3d97fd7d98d97dc9a)上提供了预训练模型。您可以在列出的模型仓库中下载生成器权重(名为bigvgan_generator.pt
)及其判别器/优化器状态(名为bigvgan_discriminator_optimizer.pt
)的检查点。
📄 许可证
本项目采用MIT许可证,详情请见:https://huggingface.co/nvidia/BigVGAN/blob/main/LICENSE