---
language: "en"
inference: false
tags:
- Vocoder
- HiFIGAN
- speech-synthesis
- speechbrain
license: "apache-2.0"
datasets:
- LibriTTS
---
# Vocoder with HiFIGAN Unit trained on LibriTTS
This repository provides all the necessary tools for using a [scalable HiFiGAN Unit](https://arxiv.org/abs/2406.10735) vocoder trained with [LibriTTS](https://www.openslr.org/141/).
The pre-trained model take as input discrete self-supervised representations and produces a waveform as output. This is suitable for a wide range of generative tasks such as speech enhancement, separation, text-to-speech, voice cloning, etc. Please read [DASB - Discrete Audio and Speech Benchmark](https://arxiv.org/abs/2406.14294) for more information.
To generate the discrete self-supervised representations, we employ a K-means clustering model trained using `microsoft/wavlm-large` hidden layers ([1, 3, 7, 12, 18, 23]), with k=1000.
## Install SpeechBrain
First of all, please install tranformers and SpeechBrain with the following command:
```
pip install speechbrain transformers
```
Please notice that we encourage you to read our tutorials and learn more about
[SpeechBrain](https://speechbrain.github.io).
### Using the Vocoder with DiscreteSSL
```python
import torch
from speechbrain.lobes.models.huggingface_transformers.wavlm import (WavLM)
inputs = torch.rand([3, 2000])
model_hub = "microsoft/wavlm-large"
save_path = "savedir"
ssl_layer_num = [7,23]
deduplicate =[False, True]
bpe_tokenizers=[None, None]
vocoder_repo_id = "speechbrain/hifigan-wavlm-k1000-LibriTTS"
kmeans_dataset = "LibriSpeech"
num_clusters = 1000
ssl_model = WavLM(model_hub, save_path,output_all_hiddens=True)
model = DiscreteSSL(save_path, ssl_model, vocoder_repo_id=vocoder_repo_id, kmeans_dataset=kmeans_dataset,num_clusters=num_clusters)
tokens, _, _ = model.encode(inputs,SSL_layers=ssl_layer_num, deduplicates=deduplicate, bpe_tokenizers=bpe_tokenizers)
sig = model.decode(tokens, ssl_layer_num)
```
### Standalone Vocoder Usage
```python
import torch
from speechbrain.inference.vocoders import UnitHIFIGAN
hifi_gan_unit = UnitHIFIGAN.from_hparams(source="speechbrain/hifigan-wavlm-k1000-LibriTTS", savedir="pretrained_models/vocoder")
codes = torch.randint(0, 99, (100, 1))
waveform = hifi_gan_unit.decode_unit(codes)
```
### Inference on GPU
To perform inference on the GPU, add `run_opts={"device":"cuda"}` when calling the `from_hparams` method.
### Limitations
The SpeechBrain team does not provide any warranty on the performance achieved by this model when used on other datasets.
#### Referencing SpeechBrain
```
@misc{SB2021,
author = {Ravanelli, Mirco and Parcollet, Titouan and Rouhe, Aku and Plantinga, Peter and Rastorgueva, Elena and Lugosch, Loren and Dawalatabad, Nauman and Ju-Chieh, Chou and Heba, Abdel and Grondin, Francois and Aris, William and Liao, Chien-Feng and Cornell, Samuele and Yeh, Sung-Lin and Na, Hwidong and Gao, Yan and Fu, Szu-Wei and Subakan, Cem and De Mori, Renato and Bengio, Yoshua },
title = {SpeechBrain},
year = {2021},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\\\\url{https://github.com/speechbrain/speechbrain}},
}
```
#### About SpeechBrain
SpeechBrain is an open-source and all-in-one speech toolkit. It is designed to be simple, extremely flexible, and user-friendly. Competitive or state-of-the-art performance is obtained in various domains.
Website: https://speechbrain.github.io/
GitHub: https://github.com/speechbrain/speechbrain