nvidia/bigvgan_v2_22khz_80band_256x · in-browser
A neural vocoder, running on your GPU.
BigVGAN is NVIDIA's universal neural vocoder. It does one job: it turns a mel spectrogram (a compact picture of which frequencies are loud when) back into an audio waveform. Text-to-speech, voice conversion, and music models usually generate mel spectrograms, then hand them to a vocoder like this one to make sound. This page runs the 22 kHz v2 checkpoint fully client-side with ONNX Runtime Web on WebGPU. No audio leaves your machine.
- Params
- 112 M
- Sample rate
- 22.05 kHz
- Input
- 80-band log-mel
- Upsampling
- 256× (4·4·2·2·2·2)
- audio
- → STFT + mel (JS) →
- 80 × T mel
- → BigVGAN (WebGPU) →
- audio @ 22.05 kHz
01Load the vocoder
02Pick some audio
Resampled to 22.05 kHz mono and trimmed to 30 s. Everything stays on your device.
03Edit the mel spectrogram
Choose some audio first.
04Generate the waveform
What's inside
BigVGAN (Lee et al., ICLR 2023) is a GAN-trained generator. Six transposed-convolution stages upsample the mel frames 256×, each followed by multi-receptive-field residual blocks. Its signature is the Snake activation, x + 1/β · sin²(αx), which builds a periodic inductive bias into the network. Each activation runs at 2× the sample rate between Kaiser-windowed low-pass filters, so it doesn't introduce aliasing.
The v2 release adds a multi-scale sub-band CQT discriminator and a multi-scale mel loss, trained on a large, diverse corpus of speech in many languages, environmental sounds, and instruments. That's why it can resynthesize a trumpet as convincingly as a voice. This checkpoint was trained for 5M steps.
How this demo works: the PyTorch generator was exported to ONNX with weight-norm folded, the CUDA anti-aliasing kernel swapped for its plain depthwise-conv equivalent, and a fixed 512-frame input so every shape computation constant-folds away. Convolution weights are stored in fp16 (228 MB) and upcast at load, so all compute stays fp32 (~51 dB SNR vs. PyTorch). Clips run in 512-frame windows with 24 frames of context on each side, which makes the seams numerically invisible, and each window plays as soon as it's ready. The mel spectrogram is computed in TypeScript to match BigVGAN's own mel_spectrogram.
Model card ↗Paper ↗NVIDIA/BigVGAN ↗Model weights: MIT license