← 开源
daniilrobnikov

vits2

VITS2: Improving Quality and Efficiency of Single-Stage Text-to-Speech with Adversarial Learning and Architecture Design

Model DevelopmentArchitectureJupyter Notebook
在 GitHub 打开
增长势头
+024 小时新增 Star0.0%
647
Star
74
Fork
+1
本周
1
贡献者
创建于 2023-07-29 · 更新于 2026-10-15 · 今日第 15553 名
主要开发者
daniilrobnikov

daniilrobnikov/vits2 排名第 15,553,有 647 个星标。

同类别比较

daniilrobnikov/vits2 排名第 15,553,此处有 8 个同类条目;YuliangXiu/MobilePose 排名第 15,550。

同类别比较
名称排名指标
aurora95/Keras-FCN15,536
语言:
Python
星标数:
648
分叉数:
259
简介:
Keras-tensorflow implementation of Fully Convolutional Networks for Semantic Segmentation(Unfinished)
maum-ai/faceshifter15,538
语言:
Python
星标数:
648
分叉数:
118
简介:
Unofficial PyTorch Implementation for FaceShifter (https://arxiv.org/abs/1912.13457)
HazyResearch/legalbench15,545
语言:
Python
星标数:
647
分叉数:
97
简介:
An open science effort to benchmark legal reasoning in foundation models
YuliangXiu/MobilePose15,550
语言:
Jupyter Notebook
星标数:
647
分叉数:
149
简介:
Light-weight Single Person Pose Estimator
google-research/sam15,556
语言:
Python
星标数:
647
分叉数:
78
lucidrains/memorizing-transformers-pytorch15,559
语言:
Python
星标数:
647
分叉数:
49
简介:
Implementation of Memorizing Transformers (ICLR 2022), attention net augmented with indexing and retrieval of memories using approximate nearest neighbors, in Pytorch
nekhtiari/image-similarity-measures15,562
语言:
Python
星标数:
647
分叉数:
70
简介:
:chart_with_upwards_trend: Implementation of eight evaluation metrics to access the similarity between two images. The eight metrics are as follows: RMSE, PSNR, SSIM, ISSM, FSIM, SRE, SAM, and UIQ.
suragnair/seqGAN15,563
语言:
Python
星标数:
647
分叉数:
146
简介:
A simplified PyTorch implementation of "SeqGAN: Sequence Generative Adversarial Nets with Policy Gradient." (Yu, Lantao, et al.)
关键参数与规格
关键参数与规格
参数值
语言Jupyter Notebook
类别Model Development
子类别Architecture
关键词Text-to-speech
星标数647
分叉数74
贡献者1
创建日期2023-07-29
更新日期2026-10-15
1 天星标数0
7 天星标数1
排名15,553
上次排名6,699
排名变化-8,854
7 天星标排名11,055
上次 7 天星标排名11,122
7 天星标排名变化67
总星标排名15,826
上次总星标排名15,790
总星标排名变化-36
国家Estonia
README 摘录

VITS2: Improving Quality and Efficiency of Single-Stage Text-to-Speech with Adversarial Learning and Architecture Design Jungil Kong, Jihoon Park, Beomjeong Kim, Jeongmin Kim, Dohee Kong, Sangjin Kim SK Telecom, South Korea Single-stage text-to-speech models have been actively studied recently, and their results have outperformed two-stage pipeline systems. Although the previous single-stage model has made great progress, there is room for improvement in terms of its intermittent unnaturalness, computational efficiency, and strong dependence on

phoneme conversion. In this work, we introduce VITS2, a single-stage text-to-speech model that efficiently synthesizes a more natural speech by improving several aspects of the previous work. We propose improved structures and training mechanisms and present that the proposed methods are effective in improving naturalness, similarity of speech characteristics in a multi-speaker model, and efficiency of training and inference. Furthermore, we demonstrate that the strong dependence on phoneme conversion in previous works can be significantly reduced

with our method, which allows a fully end-to-end single-stage approach. Demo: Paper: Unofficial implementation of VITS2. Audio Samples [In progress] Audio sample after 52,000 steps of training on 1 GPU for LJSpeech dataset: Installation: **Clone the repo** Setting up the conda env This is assuming you have navigated to the root after cloning it. **NOTE:** This is tested under with conda env. For other python versions, you might encounter version conflicts. txt Download datasets There are

three options you can choose from: LJ Speech, VCTK, or custom dataset. Custom dataset: You can use your own dataset. download and extract the LJ Speech dataset 3. rename or create a link to the dataset folder. download and extract the VCTK dataset 2. (optional): downsample the audio files to 22050 Hz. rename or create a link to the dataset folder. duplicate the in directory and rename it to 3. open custom_base and change the following fields in : 4

. ipynb **NOTE:** You may need to install if you want to use cleaner. rename or create a link to the dataset folder. Training Examples Inference Examples See inference. py [x] Monotonic Alignment Search with Gaussian noise [x] Normalizing Flows using Transformer Block [ ] Stochastic Duration Predictor with Time Step-wise Conditional Discriminator [ ] model (YourTTS) [ ] Language Conditioning [ ] Speaker Encoder [ ] model (NaturalSpeech) [x] KL Divergence Loss after Prior Enhancing [ ] GAN loss for e2e training [ ] other [x] support for batch inference [x] special tokens

in tokenizer [x] test numba. py [ ] KL Divergence Loss between TextEncoder and Projection [ ] support for streaming inference. Please refer vits_chinese [ ] use optuna for hyperparameter tuning [ ] future work [ ] update model to vits2. Please refer VITS2 [ ] update model to YourTTS with zero-shot learning. See YourTTS [ ] update model to NaturalSpeech. Please refer NaturalSpeech Acknowledgements This is unofficial repo based on VITS2 g2p for multiple languages is based on phonemizer We also thank GhatGPT for providing writing assistance. References VITS2: Improving Quality

and Efficiency of Single-Stage Text-to-Speech with Adversarial Learning and Architecture Design Conditional Variational Autoencoder with Adversarial Learning

常见问题

记录了多少星标和分叉?

daniilrobnikov/vits2 有 647 个星标和 74 个分叉。

仓库排名是多少?

daniilrobnikov/vits2 排名第 15,553。

记录的语言和类别是什么?

daniilrobnikov/vits2 有 647 个星标,语言为 Jupyter Notebook,类别为 Model Development。

哪个仓库排名最接近?

daniilrobnikov/vits2 与 YuliangXiu/MobilePose 比较,后者排名第 15,550,有 647 个星标。

README

VITS2: Improving Quality and Efficiency of Single-Stage Text-to-Speech with Adversarial Learning and Architecture Design

Jungil Kong, Jihoon Park, Beomjeong Kim, Jeongmin Kim, Dohee Kong, Sangjin Kim

SK Telecom, South Korea

Single-stage text-to-speech models have been actively studied recently, and their results have outperformed two-stage pipeline systems. Although the previous single-stage model has made great progress, there is room for improvement in terms of its intermittent unnaturalness, computational efficiency, and strong dependence on phoneme conversion. In this work, we introduce VITS2, a single-stage text-to-speech model that efficiently synthesizes a more natural speech by improving several aspects of the previous work. We propose improved structures and training mechanisms and present that the proposed methods are effective in improving naturalness, similarity of speech characteristics in a multi-speaker model, and efficiency of training and inference. Furthermore, we demonstrate that the strong dependence on phoneme conversion in previous works can be significantly reduced with our method, which allows a fully end-to-end single-stage approach.

Demo: https://vits-2.github.io/demo/

Paper: https://arxiv.org/abs/2307.16430

Unofficial implementation of VITS2. This is a work in progress. Please refer to TODO for more details.

Duration Predictor

Normalizing Flows

Text Encoder

Audio Samples

[In progress]

Audio sample after 52,000 steps of training on 1 GPU for LJSpeech dataset: https://github.com/daniilrobnikov/vits2/assets/91742765/d769c77a-bd92-4732-96e7-ab53bf50d783

Installation:

Clone the repo

git clone git@github.com:daniilrobnikov/vits2.git
cd vits2

Setting up the conda env

This is assuming you have navigated to the vits2 root after cloning it.

NOTE: This is tested under python3.11 with conda env. For other python versions, you might encounter version conflicts.

PyTorch 2.0 Please refer requirements.txt

# install required packages (for pytorch 2.0)
conda create -n vits2 python=3.11
conda activate vits2
pip install -r requirements.txt

conda env config vars set PYTHONPATH="/path/to/vits2"

Download datasets

There are three options you can choose from: LJ Speech, VCTK, or custom dataset.

  1. LJ Speech: LJ Speech dataset. Used for single speaker TTS.
  2. VCTK: VCTK dataset. Used for multi-speaker TTS.
  3. Custom dataset: You can use your own dataset. Please refer here.

LJ Speech dataset

  1. download and extract the LJ Speech dataset
wget https://data.keithito.com/data/speech/LJSpeech-1.1.tar.bz2
tar -xvf LJSpeech-1.1.tar.bz2
cd LJSpeech-1.1/wavs
rm -rf wavs
  1. preprocess mel-spectrograms. See mel_transform.py
python preprocess/mel_transform.py --data_dir /path/to/LJSpeech-1.1 -c datasets/ljs_base/config.yaml
  1. preprocess text. See prepare/filelists.ipynb

  2. rename or create a link to the dataset folder.

ln -s /path/to/LJSpeech-1.1 DUMMY1

VCTK dataset

  1. download and extract the VCTK dataset
wget https://datashare.is.ed.ac.uk/bitstream/handle/10283/3443/VCTK-Corpus-0.92.zip
unzip VCTK-Corpus-0.92.zip
  1. (optional): downsample the audio files to 22050 Hz. See audio_resample.ipynb

  2. preprocess mel-spectrograms. See mel_transform.py

python preprocess/mel_transform.py --data_dir /path/to/VCTK-Corpus-0.92 -c datasets/vctk_base/config.yaml
  1. preprocess text. See prepare/filelists.ipynb

  2. rename or create a link to the dataset folder.

ln -s /path/to/VCTK-Corpus-0.92 DUMMY2

Custom dataset

  1. create a folder with wav files
  2. duplicate the ljs_base in datasets directory and rename it to custom_base
  3. open custom_base and change the following fields in config.yaml:
data:
  training_files: datasets/custom_base/filelists/train.txt
  validation_files: datasets/custom_base/filelists/val.txt
  text_cleaners: # See text/cleaners.py
    - phonemize_text
    - tokenize_text
    - add_bos_eos
  cleaned_text: true # True if you ran step 6.
  language: en-us # language of your dataset. See espeak-ng
  sample_rate: 22050 # sample rate, based on your dataset
  ...
  n_speakers: 0 # 0 for single speaker, > 0 for multi-speaker
  1. preprocess mel-spectrograms. See mel_transform.py
python preprocess/mel_transform.py --data_dir /path/to/custom_dataset -c datasets/custom_base/config.yaml
  1. preprocess text. See prepare/filelists.ipynb

NOTE: You may need to install espeak-ng if you want to use phonemize_text cleaner. Please refer espeak-ng

  1. rename or create a link to the dataset folder.
ln -s /path/to/custom_dataset DUMMY3

Training Examples

# LJ Speech
python train.py -c datasets/ljs_base/config.yaml -m ljs_base

# VCTK
python train_ms.py -c datasets/vctk_base/config.yaml -m vctk_base

# Custom dataset (multi-speaker)
python train_ms.py -c datasets/custom_base/config.yaml  -m custom_base

Inference Examples

See inference.ipynb and inference_batch.ipynb

Pretrained Models

[In progress]

Todo

  • [ ] model (vits2)
    • [x] update TextEncoder to support speaker conditioning
    • [x] support for high-resolution mel-spectrograms in training. See mel_transform.py
    • [x] Monotonic Alignment Search with Gaussian noise
    • [x] Normalizing Flows using Transformer Block
    • [ ] Stochastic Duration Predictor with Time Step-wise Conditional Discriminator
  • [ ] model (YourTTS)
    • [ ] Language Conditioning
    • [ ] Speaker Encoder
  • [ ] model (NaturalSpeech)
    • [x] KL Divergence Loss after Prior Enhancing
    • [ ] GAN loss for e2e training
  • [ ] other
    • [x] support for batch inference
    • [x] special tokens in tokenizer
    • [x] test numba.jit and numba.cuda.jit implementations of MAS. See monotonic_align.py
    • [ ] KL Divergence Loss between TextEncoder and Projection
    • [ ] support for streaming inference. Please refer vits_chinese
    • [ ] use optuna for hyperparameter tuning
  • [ ] future work
    • [ ] update model to vits2. Please refer VITS2
    • [ ] update model to YourTTS with zero-shot learning. See YourTTS
    • [ ] update model to NaturalSpeech. Please refer NaturalSpeech

Acknowledgements

  • This is unofficial repo based on VITS2
  • g2p for multiple languages is based on phonemizer
  • We also thank GhatGPT for providing writing assistance.

References

VITS2

排名相邻
同类项目