يتضمن Voice100 نماذج TTS/ASR العصبية. يعد استنتاج Voice100 منخفضًا من حيث التكلفة لأن نماذجها ضئيلة وتعتمد فقط على CNN دون عودة.
يتم توزيع طراز TTS إلى نموذجين فرعيين ، محاذاة نموذج ونموذج الصوت. محاذاة نموذج محاذاة محاذاة النص مع نص. يتم إنشاء نص محاذاة من النص ومحاذاة النص. ميزات النموذج الصوتي للتنبؤات العالمية (F0 ، مظروف الطيف ، الفتيلة المشفرة) بالنظر إلى النص المحاذاة.
شبكة المحاذاة
الرسم البياني TD
A [نص الإدخال] -> | Hello | ب (التضمين)
ب -> ج (1D مقلوب x4)
ج -> د (الالتفاف)
D -> | H: 0،1 E: 0،2 L: 1،1 L: 1،1 O: 1،2 | ه [محاذاة]
شبكة الصوت
الرسم البياني TD
A [النص المحاذاة] -> | _HEE_L_OO_OO | ب (التضمين)
ب -> ج (1D مقلوب x4)
C -> D (الالتفاف عبر 1D)
D -> E (1D مقلوب X3 المتبقي)
ه -> و (الالتفاف)
F -> G [المعلمات العالمية]
| Name | Type | Params
-----------------------------------------
0 | embedding | Embedding | 14.8 K
1 | layers | Sequential | 8.6 M
-----------------------------------------
8.6 M Trainable params
0 Non-trainable params
8.6 M Total params
17.137 Total estimated model params size (MB)
| Name | Type | Params
-------------------------------------------
0 | embedding | Embedding | 14.8 K
1 | decoder | VoiceDecoder | 11.0 M
2 | norm | WORLDNorm | 518
3 | criterion | WORLDLoss | 0
-------------------------------------------
11.1 M Trainable params
518 Non-trainable params
11.1 M Total params
22.120 Total estimated model params size (MB)
إدخال نموذج المحاذاة هو تسلسل الرموز الخاصة بنص الإدخال. نص الإدخال هو الحالة السفلية والرمز إلى أحرف وترميزها بواسطة تشفير النص. يحتوي مشفر النص على 28 حرفًا في المفردات ، والتي تتضمن الحروف الحرارية السفلية ومساحة و apostrophy. تتم إزالة جميع الشخصيات التي لم يتم العثور عليها في المفردات.
إخراج نموذج المحاذاة هو تسلسل أزواج من التوقيت الذي طوله هو نفس عدد رموز المدخلات. يحتوي الزوج على قيمتان ، وعدد الإطارات قبل الرمز المميز وعدد الإطارات للرمز المميز. إطار واحد هو 20ms. يتم إنشاء نص محاذاة من نص الإدخال وأزواج التوقيت. طول النص المحاذاة هو عدد إجمالي الإطارات للصوت.
إن إدخال نموذج الصوت هو النص المحاذاة المشفرة ، والذي يتم ترميزه بنفس طريقة المعالجة المسبقة لنموذج المحاذاة ، إلا أنه يحتوي على رمز واحد إضافي في المفردات للتباعد بين الرموز للنص الأصلي.
إخراج نموذج الصوت هو تسلسل الوجود F0 ، F0 ، الغلاف الطيفي السجل ، الفتيلة المشفرة. وجود F0 هو قيمة منطقية ، وهذا صحيح عندما يكون F0 متاحًا كاذبًا خلاف ذلك. يتم إجبار F0 على 0 عندما يكون الوجود F0 خاطئًا. إطار واحد هو 10 مللي ثانية. طول الإخراج هو ضعف طول الإدخال.
نموذج ASR هو المتبقي المقلوب من 9 طبقات مقلوب ويتم تدريبه على التنبؤ على فقدان CTC.
شبكة ASR
الرسم البياني TD
A [MEL Spectrogram] -> B (1D مقلوب المتبقي × 12)
ب -> ج (الالتواء)
C -> G [سجلات النص المحاذاة]
| Name | Type | Params
----------------------------------------------------------------
0 | encoder | ConvVoiceEncoder | 11.6 M
1 | decoder | LinearCharDecoder | 14.9 K
2 | loss_fn | CTCLoss | 0
3 | batch_augment | BatchSpectrogramAugumentation | 0
----------------------------------------------------------------
11.6 M Trainable params
0 Non-trainable params
11.6 M Total params
23.243 Total estimated model params size (MB)
نموذج المحاذاة هو LSTM ثنائي الطبقة ثنائية الطبقة والذي يتم تدريبه على التنبؤ بالنصوص المحاذاة من ميزات الصوت MFCC. يتم استخدام نموذج المحاذاة لإعداد النصوص المحاذاة لمجموعة البيانات لتدريب نماذج TTS.
| Name | Type | Params
----------------------------------------------------------------
0 | conv | Conv1d | 24.7 K
1 | lstm | LSTM | 659 K
2 | dense | Linear | 7.5 K
3 | loss_fn | CTCLoss | 0
4 | batch_augment | BatchSpectrogramAugumentation | 0
----------------------------------------------------------------
691 K Trainable params
0 Non-trainable params
691 K Total params
1.383 Total estimated model params size (MB)
voice100-prepare-dataset
--dataset ljspeech
--language en
--use_phone
voice100-prepare-dataset
--dataset librispeech
--language en
--use_phone
voice100 fit
--config config/asr_en_phone_base.yaml
--trainer.accelerator gpu
--trainer.devices 1
--trainer.precision 16
--trainer.default_root_dir ./outputs/asr_en_phone_base هذا ينشئ النص المحاذاة data/${DATASET}-phone-align.txt .
voice100-align-text
--batch_size 4
--dataset ljspeech
--language en
--use_phone
--checkpoint asr_en_phone_small-20230309.ckptvoice100 fit --config voice100/config/align_en_phone_base.yaml
--trainer.accelerator gpu
--trainer.devices 1
--trainer.precision 16
--trainer.default_root_dir=./outputs/align_en_phone_base هذا ينشئ الإحصائيات data/${DATASET}-stat.pt
voice100-calc-stat
--dataset ljspeech
--language en
--output data/audio-stat.pyvoice100 fit --config voice100/config/tts_en_phone_base.yaml
--trainer.accelerator gpu
--gpus 1
--precision 16
--trainer.default_root_dir=./outputs/tts_en_phone_basevoice100-export-onnx
--checkpoint model/ ${MODEL} /lightning_logs/version_0/checkpoints/last.ckptنماذج CMU هي نموذج يستخدم إخراج G2P_EN كتمثيل نص بدلاً من النص الخام.
تقوم هذه الأوامر بتحويل النصوص في مجموعة البيانات إلى ./data/[dataset]-phone-[split].txt ثم قم بتشغيل voice100-train-[model] مع --use-phone .
voice100-prepare-dataset
--dataset ljspeech
voice100-prepare-dataset
--dataset librispeech
--split train
voice100-prepare-dataset
--dataset librispeech
--split valيعد نموذج CMU متعدد المهام متغيرًا من نموذج الصوت TTS الذي يكون الإدخال هو نص محاذاة والمخرجات هي معلمات Vocoder العالمية و CMU Phonemes. لتدريب نموذج CMU متعدد المهام ، نحتاج إلى بيانات محاذاة لصالح اللغة الإنجليزية و CMU.
./data/ljspeech-align-train.txt./data/ljspeech-phone-align-train.txtثم ركض
MODEL=ttsaudio_en_mt_conv_base
voice100-train-ttsaudio-mt
--gpus 1
--dataset ${DATASET}
--language ${LANGUAGE}
--batch_size 32
--precision 16
--max_epochs 150
--default_root_dir ./model/ ${MODEL} استخدم وقت تشغيل Voice100 وتصدير ملفات OnNx.
| اسم | فئة النموذج | مجموعة البيانات | تحميل |
|---|---|---|---|
| ASR_EN_SMALL-20230225 | AudiotoAligntext | Librispeech ، خطاب LJ 1.1 | تحميل |
| ASR_EN_BASE-20230319 | AudiotoAligntext | Librispeech ، خطاب LJ 1.1 | تحميل |
| asr_en_phone_small-20230309 | AudiotoAligntext | Librispeech ، خطاب LJ 1.1 | تحميل |
| ASR_EN_PHOND_BASE-20230314 | AudiotoAligntext | Librispeech ، خطاب LJ 1.1 | تحميل |
| ASR_JA_Phone_SMALL-20230104 | AudiotoAligntext | صوت مشترك 12.0 جا | تحميل |
| ASR_JA_Phone_Base-20230104 | AudiotoAligntext | صوت مشترك 12.0 جا | تحميل |
| align_en_base-20230401 | texttoaligntext | خطاب LJ 1.1 | تحميل |
| TTS_EN_BASE-20230407 | aligntexttoaudio | خطاب LJ 1.1 | تحميل |
| align_en_phone_base-20230407 | texttoaligntext | خطاب LJ 1.1 | تحميل |
| tts_en_phone_base-20230401 | aligntexttoaudio | خطاب LJ 1.1 | تحميل |
| align_ja_phone_base-20230203 | texttoaligntext | خطاب Kokoro v1.2 كبير | تحميل |
| TTS_JA_Phone_Base-20230204 | aligntexttoaudio | خطاب Kokoro v1.2 كبير | تحميل |
| ASR_EN_BASE-20210628 (تم إهمالها) | AudioAlignctc | خطاب LJ 1.1 | تحميل |
| align_en_lstm_base_ctc-20210628 (تم إهماله) | AudioAlignctc | خطاب LJ 1.1 | تحميل |
| align_en_phone_lstm_base_ctc-20220103 (تم إهمالها) | AudioAlignctc | خطاب LJ 1.1 | تحميل |
| align_ja_lstm_base_ctc-20211116 (تم إهماله) | AudioAlignctc | خطاب Kokoro v1.1 صغير | تحميل |
| align_ja_phone_lstm_base_ctc-20221230 (تم إهمالها) | AudioAlignctc | خطاب Kokoro v1.1 صغير | تحميل |
| ttsalign_en_conv_base-20220409 (تم إهماله) | TextToAligntextModel | خطاب LJ 1.1 | تحميل |
| ttsalign_en_phone_conv_base-20220409 (تم إهماله) | TextToAligntextModel | خطاب LJ 1.1 | تحميل |
| ttsalign_ja_conv_base-20220411 (تم إهمالها) | TextToAligntextModel | خطاب Kokoro v1.1 صغير | تحميل |
| ttsaudio_en_conv_base-20220107 (تم إهماله) | aligntexttoaudiomodel | خطاب Kokoro v1.1 صغير | تحميل |
| ttsaudio_en_phone_conv_base-20220105 (تم إهماله) | aligntexttoaudiomodel | خطاب LJ 1.1 | تحميل |
| ttsaudio_ja_conv_base-20220416 (تم إهماله) | aligntexttoaudiomodel | خطاب Kokoro v1.1 صغير | تحميل |
| ttsaudio_en_mt_conv_base-20220316 (تم إهماله) | aligntexttoaudiOlditAskModel | خطاب LJ 1.1 | تحميل |
| ASR_EN_CONV_BASE_CTC-20220126 (تم إهمالها) | AudiotoTextCTC | Librispeech | تحميل |
| ASR_EN_PHOND_CONV_BASE_CTC-20220107 (تم إهماله) | AudiotoTextCTC | Librispeech | تحميل |
| stt_ja_conv_base_ctc-20211127 (تم إهماله) | AudiotoTextCTC | صوت مشترك 6.1 جا | تحميل |
| asr_ja_phone_conv_base_ctc-20221225 (تم إهماله) | AudiotoTextCTC | صوت مشترك 6.1 جا | تحميل |