🚀 BigVGAN: 大規模トレーニングを用いた汎用的なニューラルボコーダ
BigVGANは、大規模トレーニングによって実現された汎用的なニューラルボコーダです。このモデルは、高品質な音声合成を可能にし、多様な音声データセットでのトレーニングにより、幅広い音声タイプに対応しています。
Sang-gil Lee, Wei Ping, Boris Ginsburg, Bryan Catanzaro, Sungroh Yoon
[論文] - [コード] - [展示] - [プロジェクトページ] - [重み] - [デモ]

🚀 クイックスタート
このセクションでは、BigVGANの基本的な使い方を紹介します。以下の手順に従って、モデルをインストールし、音声合成を行ってみましょう。
✨ 主な機能
- 大規模トレーニング:多様な音声データセットを用いた大規模トレーニングにより、高品質な音声合成が可能。
- カスタムCUDAカーネル:高速な推論を実現するためのカスタムCUDAカーネルを提供。
- Hugging Face Hubとの統合:Hugging Face Hubと統合されており、簡単に事前学習済みモデルを利用できる。
📦 インストール
このリポジトリには、事前学習済みの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 = '/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')
高度な使用法
カスタムCUDAカーネルを使用して合成を行うことができます。BigVGANをインスタンス化する際に、use_cuda_kernel
パラメータを使用します。
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
という名前)のチェックポイントをダウンロードすることができます。
📄 ライセンス
このプロジェクトはMITライセンスの下でライセンスされています。詳細については、ライセンスファイルを参照してください。