Vocoder with HiFIGAN Unit trained on LibriTTS
This repository provides all the necessary tools for using a scalable HiFiGAN Unit vocoder trained with LibriTTS.
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 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.
Using the Vocoder with DiscreteSSL
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
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/
- Downloads last month
- 145