🚀 BigVGAN:通过大规模训练实现的通用神经声码器
BigVGAN是一款通用神经声码器,借助大规模训练达成了出色的音频合成效果。它适用于语音合成等音频生成任务,能有效提升音频质量和合成效率。
🚀 快速开始
本仓库包含预训练的BigVGAN检查点,可轻松进行推理,还提供了额外的huggingface_hub
支持。
若你对模型训练和其他功能感兴趣,请访问官方GitHub仓库获取更多信息:https://github.com/NVIDIA/BigVGAN
git lfs install
git clone https://huggingface.co/nvidia/bigvgan_24khz_100band
✨ 主要特性
- 代码优化:2024年7月(v2.3)进行了全面重构和代码改进,提高了代码的可读性。
- CUDA内核融合:实现了抗锯齿激活(上采样 + 激活 + 下采样)的全融合CUDA内核,并进行了推理速度基准测试。
- 本地交互演示:2024年7月(v2.2),仓库包含了使用Gradio的交互式本地演示。
- Hugging Face集成:2024年7月(v2.1),BigVGAN与🤗 Hugging Face Hub集成,可轻松使用预训练检查点进行推理,还在Hugging Face Spaces上提供了交互式演示。
- BigVGAN-v2发布:2024年7月(v2)发布了BigVGAN-v2及预训练检查点,具有自定义CUDA推理内核、改进的判别器和损失函数、更大的训练数据集等特点。
📦 安装指南
git lfs install
git clone https://huggingface.co/nvidia/bigvgan_24khz_100band
💻 使用示例
基础用法
以下示例展示了如何使用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_24khz_100band', 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_24khz_100band', 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
)的检查点。
📄 许可证
本项目采用MIT许可证,详情请见https://huggingface.co/nvidia/BigVGAN/blob/main/LICENSE。
论文与代码链接
- 作者:Sang - gil Lee, Wei Ping, Boris Ginsburg, Bryan Catanzaro, Sungroh Yoon
- 论文:[Paper]
- 代码:[Code]
- 展示:[[Showcase]](https://bigvgan - demo.github.io/)
- 项目页面:[Project Page]
- 权重:[[Weights]](https://huggingface.co/collections/nvidia/bigvgan - 66959df3d97fd7d98d97dc9a)
- 演示:[Demo]
论文引用
[](https://paperswithcode.com/sota/speech - synthesis - on - libritts?p=bigvgan - a - universal - neural - vocoder - with - large)
项目图片
