Chinois simplifié | Anglais
[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
Voir quelques exemples synthétiques ici.
Certains modèles pré-formés sont présentés ici.
Étape (1) : cloner le référentiel
$ git clone https://github.com/atomicoo/ParallelTTS.gitÉtape (2) : Installer les dépendances
$ conda create -n ParallelTTS python=3.7.9
$ conda activate ParallelTTS
$ pip install -r requirements.txtÉtape (3) : prononciation synthétique
$ 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/ Si vous souhaitez synthétiser des voix dans d'autres langues, vous devez spécifier le fichier de configuration correspondant via --config .
Étape (1) : Préparez les données
$ python prepare-dataset.py Le fichier de configuration peut être spécifié via --config , et le default.yaml défaut.
Étape (2) : Formation du modèle d'alignement
$ python train-duration.pyÉtape (3) : durée d'extraction
$ python extract-duration.py --ground_truth peut être utilisé pour spécifier si le spectre du sol est généré à l'aide du modèle d'alignement.
Étape (4) : Formation du modèle synthétique
$ python train-parallel.py --ground_truth peut être utilisé pour spécifier s'il faut utiliser le spectre du sol pour la formation du modèle.
Si vous utilisez TensorBoardx, exécutez la commande suivante:
$ tensorboard --logdir logdir/[DIR]/
WANDB (poids et biais) est fortement recommandé, ajoutez simplement l'option --enable_wandb à la commande de formation ci-dessus.
TODO: à compléter
Vitesse de formation : Pour l'ensemble de données LJSpeech, définissez la taille du lot sur 64 et vous pouvez vous entraîner sur une seule carte graphique GTX 1080 de 8 Go. Après l'entraînement ~ 8h (~ 300 époques), vous pouvez synthétiser des voix de haute qualité.
Vitesse de synthèse : Les tests suivants sont effectués sous CPU @ Intel Core i7-8550U / gpu @ nvidia geforce MX150, chaque segment d'audio synthétisé est d'environ 8 secondes (environ 20 mots)
| Taille de lot | Spécifier (GPU) | Audio (GPU) | Spécifier (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 |
Notez qu'aucun test multiple n'a été effectué pour obtenir la moyenne, et les résultats sont pour référence uniquement.
vocoder est tiré de ParallelWavegan. En raison des méthodes d'incompatibilité des caractéristiques acoustiques, il est nécessaire de convertir. Voir ici pour le code de conversion spécifique.