تبسيط الصينية | إنجليزي
[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 (الأوزان والتحيزات) ، فقط أضف خيار --enable_wandb إلى أمر التدريب أعلاه.
TODO: أن تكمل
سرعة التدريب : بالنسبة لمجموعة بيانات LJSPEEDE ، قم بتعيين حجم الدُفعة على 64 ، ويمكنك التدريب على بطاقة رسومات GTX 1080 بسعة 8 جيجا بايت. بعد التدريب ~ 8H (~ 300 عصر) ، يمكنك توليف الأصوات عالية الجودة.
سرعة التوليف : يتم إجراء الاختبارات التالية ضمن CPU @ intel core i7-8550u / gpu @ nvidia geforce mx150 ، كل جزء من الصوت المركب حوالي 8 ثوانٍ (حوالي 20 كلمة)
| حجم الدُفعة | المواصفات (GPU) | صوتي (GPU) | المواصفات (وحدة المعالجة المركزية) | صوتي (وحدة المعالجة المركزية) |
|---|---|---|---|---|
| 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. بسبب طرق استخراج الميزات الصوتية غير المتوافقة ، من الضروري التحويل. انظر هنا للحصول على رمز التحويل المحدد.