단순화 된 중국어 | 영어
[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.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 (Weights & Biases)를 적극 권장합니다. 위의 교육 명령에 --enable_wandb 옵션을 추가하십시오.
Todo : 보충됩니다
교육 속도 : LJSpeech 데이터 세트의 경우 배치 크기를 64로 설정하면 단일 8GB GTX 1080 그래픽 카드로 훈련 할 수 있습니다. 훈련 후 ~ 8H (~ 300 에포크)를 훈련 한 후 고품질 음성을 합성 할 수 있습니다.
합성 속도 : 다음 테스트는 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 코드는 Parallel Wavegan에서 가져옵니다. 호환되지 않는 음향 기능 추출 방법으로 인해 변환해야합니다. 특정 변환 코드는 여기를 참조하십시오.