|
--- |
|
license: mit |
|
tags: |
|
- vits |
|
- vits istft |
|
- istft |
|
pipeline_tag: text-to-speech |
|
--- |
|
|
|
# VITS: Conditional Variational Autoencoder with Adversarial Learning for End-to-End Text-to-Speech |
|
|
|
VITS is an end-to-end speech synthesis model that predicts a speech waveform conditional on an input text sequence. It is a |
|
conditional variational autoencoder (VAE) comprised of a posterior encoder, decoder, and conditional prior. This repository |
|
contains the weights for the official VITS checkpoint trained on the [LJ Speech](https://huggingface.co./datasets/lj_speech) dataset. |
|
|
|
# VITS ISTFT: New decoder synthesized speech as natural as that synthesized by VITS while achieving a real-time factor of 0.066 on an Intel Core i7 CPU, 4.1 times faster than original VITS. Suitable for real-time and edge device applications |
|
|
|
| Checkpoint | Train Hours | Speakers | |
|
|------------|-------------|----------| |
|
| [ljspeech_vits_ms_istft](https://huggingface.co./anhnct/ljspeech_vits_ms_istft) | 24 | 1 | |
|
| [ljspeech_vits_mb_istft](https://huggingface.co./anhnct/ljspeech_vits_mb_istft) | 24 | 1 | |
|
| [ljspeech_vits_istft](https://huggingface.co./anhnct/ljspeech_vits_istft) | 24 | 1 | |
|
|
|
## Usage |
|
|
|
To use this checkpoint, |
|
first install the latest version of the library: |
|
|
|
``` |
|
pip install --upgrade transformers accelerate |
|
``` |
|
|
|
Then, run inference with the following code-snippet: |
|
|
|
```python |
|
from transformers import AutoModel, AutoTokenizer |
|
import torch |
|
import numpy as np |
|
|
|
model = AutoModel.from_pretrained("anhnct/ljspeech_vits_mb_istft", trust_remote_code=True) |
|
tokenizer = AutoTokenizer.from_pretrained("anhnct/ljspeech_vits_mb_istft") |
|
|
|
text = "Hey, it's Hugging Face on the phone" |
|
inputs = tokenizer(text, return_tensors="pt") |
|
|
|
with torch.no_grad(): |
|
output = model(**inputs).waveform |
|
``` |
|
|
|
The resulting waveform can be saved as a `.wav` file: |
|
|
|
```python |
|
import scipy |
|
|
|
data_np = output.numpy() |
|
data_np_squeezed = np.squeeze(data_np) |
|
scipy.io.wavfile.write("techno.wav", rate=model.config.sampling_rate, data=data_np_squeezed) |
|
``` |
|
|
|
Or displayed in a Jupyter Notebook / Google Colab: |
|
|
|
```python |
|
from IPython.display import Audio |
|
|
|
Audio(data_np_squeezed, rate=model.config.sampling_rate) |
|
``` |
|
|
|
## License |
|
|
|
The model is licensed as [**MIT**](https://github.com/jaywalnut310/vits/blob/main/LICENSE). |