ภาษาจีนง่ายๆ | ภาษาอังกฤษ
[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
ดูตัวอย่างสังเคราะห์ที่นี่
บางรุ่นที่ผ่านการฝึกอบรมมาก่อนจะแสดงที่นี่
ขั้นตอน (1) : โคลนที่เก็บ
$ git clone https://github.com/atomicoo/ParallelTTS.gitขั้นตอน (2) : ติดตั้งการพึ่งพา
$ conda create -n ParallelTTS python=3.7.9
$ conda activate ParallelTTS
$ pip install -r requirements.txtขั้นตอน (3) : การออกเสียงสังเคราะห์
$ 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/ หากคุณต้องการสังเคราะห์เสียงในภาษาอื่นคุณต้องระบุไฟล์การกำหนดค่าที่เกี่ยวข้องผ่าน --config
ขั้นตอน (1) : เตรียมข้อมูล
$ python prepare-dataset.py ไฟล์การกำหนดค่าสามารถระบุได้ผ่าน --config และ default default.yaml สำหรับชุดข้อมูล LJSpeech
ขั้นตอน (2) : การฝึกอบรมรูปแบบการจัดตำแหน่ง
$ python train-duration.pyขั้นตอน (3) : ระยะเวลาการสกัด
$ python extract-duration.py --ground_truth สามารถใช้เพื่อระบุว่าสเปกตรัมความจริงพื้นดินถูกสร้างขึ้นโดยใช้โมเดลการจัดตำแหน่งหรือไม่
ขั้นตอน (4) : การฝึกอบรมแบบจำลองสังเคราะห์
$ python train-parallel.py --ground_truth สามารถใช้เพื่อระบุว่าจะใช้สเปกตรัมความจริงพื้นดินสำหรับการฝึกอบรมแบบจำลองหรือไม่
หากคุณใช้ TensorBoardX ให้เรียกใช้คำสั่งต่อไปนี้:
$ tensorboard --logdir logdir/[DIR]/
แนะนำให้ใช้ Wandb (น้ำหนักและอคติ) เพียงเพิ่มตัวเลือก --enable_wandb ลงในคำสั่งการฝึกอบรมด้านบน
TODO: จะเสริม
ความเร็วในการฝึกอบรม : สำหรับชุดข้อมูล LJSpeech ให้ตั้งค่าขนาดแบทช์เป็น 64 และคุณสามารถฝึกฝนการ์ดกราฟิก 8GB GTX 1080 เดียว หลังจากฝึกอบรม ~ 8H (~ 300 Epochs) คุณสามารถสังเคราะห์เสียงคุณภาพสูง
ความเร็วการสังเคราะห์ : การทดสอบต่อไปนี้ดำเนินการภายใต้ CPU @ Intel Core i7-8550U / GPU @ Nvidia GeForce MX150 แต่ละส่วนของเสียงสังเคราะห์ประมาณ 8 วินาที (ประมาณ 20 คำ)
| ขนาดแบทช์ | รายละเอียด (GPU) | เสียง (GPU) | รายละเอียด (CPU) | เสียง (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 |
โปรดทราบว่าไม่มีการทดสอบหลายครั้งเพื่อให้ได้ค่าเฉลี่ยและผลลัพธ์สำหรับการอ้างอิงเท่านั้น
vocoder นำมาจาก Parallelwavegan เนื่องจากวิธีการสกัดคุณสมบัติอะคูสติกที่เข้ากันไม่ได้จึงจำเป็นต้องแปลง ดูที่นี่สำหรับรหัสการแปลงเฉพาะ