China yang disederhanakan | Bahasa inggris
[TOC]
.
|--- config/ # 配置文件
|--- default.yaml
|--- ...
|--- datasets/ # 数据处理
|--- encoder/ # 声纹编码器
|--- voice_encoder.py
|--- ...
|--- helpers/ # 一些辅助类
|--- trainer.py
|--- synthesizer.py
|--- ...
|--- logdir/ # 训练过程保存目录
|--- losses/ # 一些损失函数
|--- models/ # 合成模型
|--- layers.py
|--- duration.py
|--- parallel.py
|--- pretrained/ # 预训练模型(LJSpeech 数据集)
|--- samples/ # 合成样例
|--- utils/ # 一些通用方法
|--- vocoder/ # 声码器
|--- melgan.py
|--- ...
|--- wandb/ # Wandb 保存目录
|--- extract-duration.py
|--- extract-embedding.py
|--- LICENSE
|--- prepare-dataset.py # 准备脚本
|--- README.md
|--- README_en.md
|--- requirements.txt # 依赖文件
|--- synthesize.py # 合成脚本
|--- train-duration.py # 训练脚本
|--- train-parallel.py
Lihat beberapa contoh sintetis di sini.
Beberapa model pra-terlatih ditampilkan di sini.
Langkah (1) : mengkloning repositori
$ git clone https://github.com/atomicoo/ParallelTTS.gitLangkah (2) : instal dependensi
$ conda create -n ParallelTTS python=3.7.9
$ conda activate ParallelTTS
$ pip install -r requirements.txtLangkah (3) : Pengucapan Sintetis
$ python synthesize.py
--checkpoint ./pretrained/ljspeech-parallel-epoch0100.pth
--melgan_checkpoint ./pretrained/ljspeech-melgan-epoch3200.pth
--input_texts ./samples/english/synthesize.txt
--outputs_dir ./outputs/ Jika Anda ingin mensintesis suara dalam bahasa lain, Anda perlu menentukan file konfigurasi yang sesuai melalui --config .
Langkah (1) : Siapkan data
$ python prepare-dataset.py File konfigurasi dapat ditentukan melalui --config , dan default default.yaml adalah untuk dataset LJSPEECH.
Langkah (2) : Melatih Model Penyelarasan
$ python train-duration.pyLangkah (3) : Durasi Ekstraksi
$ python extract-duration.py --ground_truth dapat digunakan untuk menentukan apakah spektrum kebenaran-kebenaran dihasilkan menggunakan model penyelarasan.
Langkah (4) : Melatih model sintetis
$ python train-parallel.py --ground_truth dapat digunakan untuk menentukan apakah akan menggunakan spektrum darat untuk pelatihan model.
Jika Anda menggunakan Tensorboardx, jalankan perintah berikut:
$ tensorboard --logdir logdir/[DIR]/
WANDB (Bobot & Biases) sangat disarankan, cukup tambahkan opsi --enable_wandb ke perintah pelatihan di atas.
TODO: Untuk ditambah
Kecepatan Pelatihan : Untuk dataset LJSPEECH, atur ukuran batch ke 64, dan Anda dapat berlatih pada kartu grafis 8GB GTX 1080 tunggal. Setelah pelatihan ~ 8h (~ 300 zaman), Anda dapat mensintesis suara berkualitas tinggi.
Kecepatan Sintesis : Tes berikut dilakukan di bawah CPU @ Intel Core i7-8550U / GPU @ Nvidia GeForce MX150, setiap segmen audio yang disintesis adalah sekitar 8 detik (sekitar 20 kata)
| Ukuran batch | Spec (GPU) | Audio (GPU) | Spec (CPU) | Audio (CPU) |
|---|---|---|---|---|
| 1 | 0,042 | 0.218 | 0.100 | 2.004 |
| 2 | 0,046 | 0.453 | 0.209 | 3.922 |
| 4 | 0,053 | 0.863 | 0.407 | 7.897 |
| 8 | 0,062 | 2.386 | 0.878 | 14.599 |
Perhatikan bahwa tidak ada beberapa tes yang dilakukan untuk mendapatkan rata -rata, dan hasilnya hanya untuk referensi.
vocoder diambil dari paralelwavegan. Karena metode ekstraksi fitur akustik yang tidak kompatibel, perlu dikonversi. Lihat di sini untuk kode konversi tertentu.