最近已經對單階段的文本到語音模型進行了積極研究,其結果表現優於兩階段管道系統。儘管以前的單階段模型取得了長足的進步,但其間歇性的不自然,計算效率和對音素轉化的強烈依賴有改善的餘地。在這項工作中,我們介紹了VITS2,這是一種單階段的文本到語音模型,通過改進以前工作的幾個方面來有效地綜合了更自然的語音。我們提出了改進的結構和訓練機制,並提出了所提出的方法可有效改善自然性,多演講者模型中語音特徵的相似性以及培訓和推理的效率。此外,我們證明了以前作品中對音素轉換的強大依賴性可以大大減少我們的方法,這允許完全端到端的單級方法。
演示:https://vits-2.github.io/demo/
論文:https://arxiv.org/abs/2307.16430
VITS2的非官方實施。這是一項正在進行的工作。有關更多詳細信息,請參考Todo。
| 持續時間預測指標 | 標準化流程 | 文本編碼器 |
|---|---|---|
![]() | ![]() | ![]() |
[進行中]
在1 GPU上為LJSpeech數據集進行52,000個培訓步驟之後的音頻樣本:https://github.com/daniilrobnikov/vits2/assets2/assets2/91742765/d769c77a-bd92-bd92-bd92-bd92-bd92-4732-96 e7-96e7-bab53bf50d783
克隆倉庫
git clone [email protected]:daniilrobnikov/vits2.git
cd vits2這是假設您在克隆之後已導航到vits2 root。
注意:這是在python3.11下與Conda Env進行的。對於其他Python版本,您可能會遇到版本衝突。
Pytorch 2.0請參閱要求。
# 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 " 您可以選擇以下三個選項:LJ Speech,VCTK或自定義數據集。
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 wavspython preprocess/mel_transform.py --data_dir /path/to/LJSpeech-1.1 -c datasets/ljs_base/config.yaml預處理文本。請參閱準備/filelists.ipynb
重命名或創建指向數據集文件夾的鏈接。
ln -s /path/to/LJSpeech-1.1 DUMMY1wget https://datashare.is.ed.ac.uk/bitstream/handle/10283/3443/VCTK-Corpus-0.92.zip
unzip VCTK-Corpus-0.92.zip(可選):將音頻文件置於22050 Hz。請參閱audio_resample.ipynb
預處理旋光圖。請參閱mel_transform.py
python preprocess/mel_transform.py --data_dir /path/to/VCTK-Corpus-0.92 -c datasets/vctk_base/config.yaml預處理文本。請參閱準備/filelists.ipynb
重命名或創建指向數據集文件夾的鏈接。
ln -s /path/to/VCTK-Corpus-0.92 DUMMY2datasets集目錄中復制ljs_base並將其重命名為custom_baseconfig.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-speakerpython preprocess/mel_transform.py --data_dir /path/to/custom_dataset -c datasets/custom_base/config.yaml注意:如果要使用phonemize_text清潔劑,則可能需要安裝espeak-ng 。請參考Espeak-ng
ln -s /path/to/custom_dataset DUMMY3 # 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請參閱teac thece.ipynb和inperion_batch.ipynb
[進行中]