speechbrain
English
Vocoder
HiFIGAN
speech-synthesis
chaanks's picture
Update README.md
10f4826 verified
metadata
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 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/

GitHub: https://github.com/speechbrain/speechbrain