Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jaywalnut310/vits
VITS: Conditional Variational Autoencoder with Adversarial Learning for End-to-End Text-to-Speech
https://github.com/jaywalnut310/vits
deep-learning pytorch speech-synthesis text-to-speech tts
Last synced: 1 day ago
JSON representation
VITS: Conditional Variational Autoencoder with Adversarial Learning for End-to-End Text-to-Speech
- Host: GitHub
- URL: https://github.com/jaywalnut310/vits
- Owner: jaywalnut310
- License: mit
- Created: 2021-05-26T23:38:12.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-12-06T01:29:50.000Z (about 1 year ago)
- Last Synced: 2024-12-05T02:50:28.508Z (9 days ago)
- Topics: deep-learning, pytorch, speech-synthesis, text-to-speech, tts
- Language: Python
- Homepage: https://jaywalnut310.github.io/vits-demo/index.html
- Size: 3.26 MB
- Stars: 6,923
- Watchers: 54
- Forks: 1,268
- Open Issues: 160
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- AiTreasureBox - jaywalnut310/vits - 12-07_6931_1](https://img.shields.io/github/stars/jaywalnut310/vits.svg) |VITS: Conditional Variational Autoencoder with Adversarial Learning for End-to-End Text-to-Speech| (Repos)
- StarryDivineSky - jaywalnut310/vits
- awesome-genai - Vits - Conditional Variational Autoencoder with Adversarial Learning for End-to-End Text-to-Speech. [![Forks](https://img.shields.io/github/forks/jaywalnut310/vits?style=social)](https://github.com/jaywalnut310/vits/network/members) [![Stars](https://img.shields.io/github/stars/jaywalnut310/vits?style=social)](https://github.com/jaywalnut310/vits/stargazers) (Tools & Frameworks / Open-source projects)
- awesome-genai - Vits - Conditional Variational Autoencoder with Adversarial Learning for End-to-End Text-to-Speech. [![Forks](https://img.shields.io/github/forks/jaywalnut310/vits?style=social)](https://github.com/jaywalnut310/vits/network/members) [![Stars](https://img.shields.io/github/stars/jaywalnut310/vits?style=social)](https://github.com/jaywalnut310/vits/stargazers) (Tools & Frameworks / Open-source projects)
README
# VITS: Conditional Variational Autoencoder with Adversarial Learning for End-to-End Text-to-Speech
### Jaehyeon Kim, Jungil Kong, and Juhee Son
In our recent [paper](https://arxiv.org/abs/2106.06103), we propose VITS: Conditional Variational Autoencoder with Adversarial Learning for End-to-End Text-to-Speech.
Several recent end-to-end text-to-speech (TTS) models enabling single-stage training and parallel sampling have been proposed, but their sample quality does not match that of two-stage TTS systems. In this work, we present a parallel end-to-end TTS method that generates more natural sounding audio than current two-stage models. Our method adopts variational inference augmented with normalizing flows and an adversarial training process, which improves the expressive power of generative modeling. We also propose a stochastic duration predictor to synthesize speech with diverse rhythms from input text. With the uncertainty modeling over latent variables and the stochastic duration predictor, our method expresses the natural one-to-many relationship in which a text input can be spoken in multiple ways with different pitches and rhythms. A subjective human evaluation (mean opinion score, or MOS) on the LJ Speech, a single speaker dataset, shows that our method outperforms the best publicly available TTS systems and achieves a MOS comparable to ground truth.
Visit our [demo](https://jaywalnut310.github.io/vits-demo/index.html) for audio samples.
We also provide the [pretrained models](https://drive.google.com/drive/folders/1ksarh-cJf3F5eKJjLVWY0X1j1qsQqiS2?usp=sharing).
** Update note: Thanks to [Rishikesh (ऋषिकेश)](https://github.com/jaywalnut310/vits/issues/1), our interactive TTS demo is now available on [Colab Notebook](https://colab.research.google.com/drive/1CO61pZizDj7en71NQG_aqqKdGaA_SaBf?usp=sharing).
VITS at training
VITS at inference
## Pre-requisites
0. Python >= 3.6
0. Clone this repository
0. Install python requirements. Please refer [requirements.txt](requirements.txt)
1. You may need to install espeak first: `apt-get install espeak`
0. Download datasets
1. Download and extract the LJ Speech dataset, then rename or create a link to the dataset folder: `ln -s /path/to/LJSpeech-1.1/wavs DUMMY1`
1. For mult-speaker setting, download and extract the VCTK dataset, and downsample wav files to 22050 Hz. Then rename or create a link to the dataset folder: `ln -s /path/to/VCTK-Corpus/downsampled_wavs DUMMY2`
0. Build Monotonic Alignment Search and run preprocessing if you use your own datasets.
```sh
# Cython-version Monotonoic Alignment Search
cd monotonic_align
python setup.py build_ext --inplace# Preprocessing (g2p) for your own datasets. Preprocessed phonemes for LJ Speech and VCTK have been already provided.
# python preprocess.py --text_index 1 --filelists filelists/ljs_audio_text_train_filelist.txt filelists/ljs_audio_text_val_filelist.txt filelists/ljs_audio_text_test_filelist.txt
# python preprocess.py --text_index 2 --filelists filelists/vctk_audio_sid_text_train_filelist.txt filelists/vctk_audio_sid_text_val_filelist.txt filelists/vctk_audio_sid_text_test_filelist.txt
```## Training Exmaple
```sh
# LJ Speech
python train.py -c configs/ljs_base.json -m ljs_base# VCTK
python train_ms.py -c configs/vctk_base.json -m vctk_base
```## Inference Example
See [inference.ipynb](inference.ipynb)