Pitchtron

- مجموعة أدوات نقل Prosody التي يمكنك من خلالها إنشاء خطب أنيقة على الرغم من أن DB التدريبي الخاص بك هو أصوات محايدة من الأشخاص العاديين.
- يمكننا نقل اللهجات الكورية (Kyongsang ، Cheolla) والأرضيات العاطفية وكذلك الحوارات المحايدة.
- Pitchtron الصلب هو لنقل الصارم بدقة ، وهكذا ، فإن هيكل الجملة الصوتية المرجعية والجملة المستهدفة أفضل.
- يتابع Soft Pitchtron نقل النجارة الطبيعية حتى الصوت المرجعي والجملة المستهدفة يختلفان تمامًا في المحتوى.
- DB الذي نطلقه مع هذا المشروع متاح في العاطفة
- تتوفر عينات الصوت على http://jsh-tts.tistory.com/entry/pitchtron
- Pitchtron Paper: https://arxiv.org/abs/2005.10456
الاختلافات بين ثلاثة فروع
- جميع الفروع الثلاثة المتوفرة هنا هي لنقل Prosody.
- يمكنك توليد خطاب الأسلوب المرغوب فيه والجملة والصوت.
- يمكن أن يكون متحدث الصوت المرجعي أي شخص وهذا الشخص ليس ضروريًا لإدراج بيانات التدريب.
- يجب إدراج مكبر الصوت المستهدف (صوت الصوت المصنوع) في بيانات التدريب.
- باستخدام Pitchtorn الصلبة والناعمة ، يمكنك توليفه في لهجة "Kyongsang" ، لهجة "Cheolla" والأسلوب العاطفي حتى لو تم تدريب النموذج فقط مع خطاب عادي محايد.
- من ناحية أخرى ، للحصول على الرمز المميز على النمط العالمي ، تحتاج إلى DB من النمط المطلوب خلال وقت التدريب.
- اقترحت هذا Pitchtron من أجل التحدث في لهجة Kyongsang anc Cheolla الكورية.
- ديسيبل من هذه اللهجات محدودة للغاية و "محيط الملعب" هو مفتاح الرجوع إليها بشكل طبيعي. وينطبق هذا أيضًا على العديد من اللغة الأخرى المعروضة على الملعب (اليابانية) ، و Langauge الدرجة اللونية (الصينية) وأسلوب التحدث العاطفي.
| قرار زمني | التحكم الخطي | ضبط النطاق الصوتي | المرجع غير المتوازي | دعم أسلوب غير مرئي | متطلبات تحليل الأبعاد |
|---|
| ضريبة السلع والخدمات | x | x | x | س | x | س |
| Pitchtron لينة | س | * | س | س | س | x |
| Pitchtron الصلب | س | س | س | ** | س | x |
- *: سوف يتيح لك Pitchtron Soft التحكم في الملعب طالما أنه يمكن أن يبدو طبيعيًا. إذا كان خارج النطاق الصوتي من مكبر الصوت المستهدف ، فسيتم قصه لصنع الصوت الطبيعي.
- **: يسمح Pitchtron الصلب بالمرجع غير المتوازي المحدود.
- محدودة غير متوازية: يمكن أن يختلف النص ، ولكن يجب أن يتطابق هيكل الجملة.
| جملة |
|---|
| مرجع | "아니요 지는 그짝허고 이야기허고 싶지 않아요" |
| هدف | "그래요 갸는 친구허고 나들이가고 싶은것 같아요" |
- الدقة الزمنية: هل يمكننا التحكم في النمط بشكل مختلف عن طريق Timestep؟
- التحكم الخطي: هل يمكنني التحكم بالضبط في المبلغ الذي سيتم تحجيم الملعب (الملاحظة)؟ لست مضطرًا للاستكشاف في مساحة التضمين لمعرفة تغيير المقياس في تدمير البعد مع تغير المدخلات؟
- تعديل النطاق الصوتي: إذا كان النطاق الصوتي للمتحدث المرجعي ومكبر الصوت المستهدف مختلفًا تمامًا ، فهل يمكنني الإشارة بشكل طبيعي في النطاق الصوتي للمتكلم الهدف؟
- المرجع غير المتوازي: إذا كانت الجملة المرجعية والجملة المستهدفة مختلفة ، فهل يمكنني تجميعها بشكل طبيعي؟
- دعم أسلوب غير مرئي: إذا كان الصوت المرجعي المطلوب من الأسلوب الذي لم يسبق له مثيل أثناء التدريب ، فهل يمكن نقله بشكل طبيعي؟
- متطلبات تحليل الأبعاد: هل يجب أن أقوم بتحليل عناصر التحكم في الرمز المميز/الأبعاد والتي سمة للتحكم في هذا النموذج؟
1. ناعم pitchtron
- يوفر هذا الفرع نقلًا غير خاضع للإشراف على جمل متوازية غير متوازية وغير متوازية.
- الموازي: مرجع الجملة الصوتية ومطابقات الجملة التوليف المستهدفة.
- محدودة غير متوازية: المذكورة أعلاه.
- غير متوازي: لا تحتاج الجملة الصوتية المرجعية وجملة التوليف المستهدفة إلى مطابقة.
- على غرار الرمز المميز على النمط العالمي ، ولكن هناك العديد من المزايا.
- إنه أكثر قوة بكثير للأساليب غير المرئية أثناء التدريب.
- من الأسهل بكثير السيطرة.
- ليس عليك تحليل الرموز أو الأبعاد لمعرفة ما يفعله كل رمز.
- يمكنك توسيع نطاق الصوت المرجعي لتناسب مجموعة المتحدث المستهدف بحيث يكون النقل بين الجنسين أكثر طبيعية.
- يمكنك أيضًا التحكم في الملعب لكل مدخلات صوتية
- يتم تحجيم نطاق الصوت المرجعي لتناسب النطاق المستهدف بحيث يكون النقل بين الجنسين أكثر طبيعية.
- سيطرتك على الملعب ليست صارمة لدرجة أنها لن تتوسع إلا إلى المبلغ الذي يبدو طبيعيًا.
2. صعبة Pitchtron
- يوفر هذا الفرع نقلًا متوازيًا غير خاضع للإشراف و "محدود غير متوازي".
- بدلاً من ذلك ، فإن الإيقاع والملعب متماثلان تمامًا مثل الصوت المرجعي.
- يتم تحجيم نطاق الصوت المرجعي لتناسب النطاق المستهدف بحيث يكون النقل بين الجنسين أكثر طبيعية.
- لديك تحكم صارم في نطاق الملعب ، إلى المبلغ الذي سيتم فيه توسيع نطاقه حتى لو أدى إلى صوت غير طبيعي.
3. الرمز المميز على النمط العالمي
- تنفيذ رمز نمط عالمي. رمز نمط عالمي
- على عكس Pitchtron ، تميل الرمز المميز على النمط العالمي إلى العمل بشكل جيد فقط للأساليب التي يتم رؤيتها خلال مرحلة التدريب.
- لا يمكن تحجيم نطاق الملعب ، مما يؤدي إلى صوت صاخب إذا كان الصوت المرجعي خارج النطاق الصوتي من مكبرات الصوت المستهدفة.
- نظرًا لأنه ليس قويًا بالنسبة للأناقة الجديدة غير المرئية أثناء التدريب ، فإنه يولد في بعض الأحيان الكلام مع طاقة عالية جدًا أو توقف طويل جدًا.
خطوات المعالجة المسبقة للترشح ل TTS الكورية متعددة المتحدثين
python preprocess.py --dataset={following keywords}
قم بتشغيلها بالترتيب التالي. يمكنك إلغاء الاشتراك في بعض الأجزاء اعتمادًا على احتياجاتك.
- selvas_multispeaker_pron
- public_korean_pron
- integrate_dataset
- check_file_integrity
- generate_mel_f0
1. selvas_multispeaker_pron
- PCM الخام إلى WAV_22050 تحت كل مكبر صوت
- src: '{data_root}/{speaker}/raw/*.
- DST: '{data_root}/{speaker}/wav_22050/*. wav'
- تقليم مع 25 أعلى ديسيبل
- تقسيم البيانات: لكل 400 صوت ، اجعلها تُقيّم ونفس الشيء للاختبار
- القطار: 33194 WAVS
- Eval: 83 Wavs
- اختبار: 84 WAVS
- قم بإنشاء ملف meta باستخدام البرنامج النصي الموجود في FONEME *FILELISTS/SONED_LANGAGE_SELVAS/TRAIN_FILE_LIST_PRON.TXT
2. public_korean_pron
- مكان التنزيل: 서울말 낭독체 발화 말뭉치
- تنظيم معدل أخذ العينات إلى 22050 هرتز (هذا DB لديه غير منتظم SR)
- تقليم مع أعلى 25 ديسيبل
- مصدر:
- wav_16000/{speaker}/*. wav
- pran/{speaker}/t **. txt
- مستبعد من البرنامج النصي:
- لم يتم تضمين البرنامج النصي لإلغاء زيادة ونقل WAVs إلى WAV_16000. تحتاج إلى جعلها في هذا النموذج بنفسك
- ملف نصي لجميع المتحدثين متساوون في هذا DB ، لذلك قمت بتقسيم هذا البرنامج النصي المشترك بواسطة الأدب يدويًا. (يتضمن أخطاء في خط جديد ، لذلك اضطررت إلى القيام بذلك يدويًا)
- أيضا ، لم يتم تضمين البرنامج النصي لـ G2P أيضًا
- أخطاء إضافية في هذا DB
1. Missing speaker: fy15, mw12
2. Wrong data format: mw13_t01_s11.wav, mw13_t01_s12.wav, mw02_t10_s08.wav
3. Overlapping files and naming mistakes: mv11_t07_s4' (==mv11_t07_s40), fy17_t15_s18(==fy17_t16_s01), fv18_t07_s63(==fv18_t07_s62)
- DST: wav_22050/{speaker}/*. wav
3. integrate_dataset
- أنا دمج أعلاه اثنين من DBS الكورية.
- يمكن تعميم ذلك على TTS متعدد اللغات حيث يوجد DBs متعددة من اللغات المختلفة.
- وبالتالي ، يتم إلحاق رمز اللغة الذي يفسد كل ديسيبل إلى ملف نصي META المدمج الذي تم إنشاؤه في هذه الخطوة.
- كيف
- تعديل قوائم الملفات المصدر ('Train_file_lists' ، 'aluad_file_lists' ، 'test_file_lists') وقوائم الملفات الهدف (target_train_file_list ، target_eval_file_list ، target_test_file_list) من المعالجة المسبقة.
- قد ترغب في تعديل طريقة _integrate () لتعيين رمز اللغة لكل ديسيبل. آسف انها معترف بها الآن.
- تشغيل Preprocess.py
python preprocess.py --dataset=integrate_dataset
4. check_file_integrity
- تقوم هذه الخطوة بإنشاء ملف التعريف مع مسارات WAV التي لم تتمكن من القراءة.
- قد ترغب في إزالتها من عازفيك النهائيين أو تمر ببعض التحقيقات. إنه عليك. هذه الخطوة لا تزيل هذه الملفات المكتشفة من العازفين.
- OUT: Proubleatic_merge_korean_pron _ {}. txt
5. cender_mel_f0 (اختياري)
- هذه الخطوة اختيارية. تستخرج هذه الخطوة ميزات للتدريب وحفظها كملفات.
- SRC: WAV_22050/*. WAV
- DST: MEL/*. PT و F0/*. PT
6. تهيئة أول عصر مع مكبر صوت واحد ديسيبل
- قم بإعداد قطار منفصل ، وعلماء الأسلاك الصالحين لمتحدث واحد
- يتم أيضًا تضمين ملفات تدريب المتحدث الفردي والتحقق من صحته في عازفي الأسلوب المتعدد.
- لقد جربت تدريب 30 عصرًا أوليًا مع متحدث واحد DB وساعدت في تعلم محاذاة تشفير-ترميز التشفير كثيرًا.
كيف تتدرب؟
1. الأوامر
python train.py {program arguments}
2. حجج البرنامج
| خيار | إلزامي | غاية |
|---|
| -أ | س | مسار الدليل لحفظ نقاط التفتيش. |
| -C | x | مسار نقطة التفتيش قبل التحميل. |
| -L | س | دليل السجل لإسقاط سجلات Tensorboard. |
3. نماذج ما قبل
*يتم تدريب النماذج المسبقة على phoneme. يتوقعون صوتي كمدخلات عند إعطاء النصوص لتوليفها.
| نموذج | نقطة تفتيش ما قبل | مطابقة فرطاميرات |
|---|
| Pitchtron لينة | Pitchtron لينة | التكوينات |
| Pitchtron الصلب | Pitchtron الصلب | التكوينات |
| رمز نمط عالمي | ضريبة السلع والخدمات | التكوينات |
| WaveGlow Vocoder | WaveGlow | - |
كيف تتجمع؟
1. ناعم pitchtron
python inferent_soft_pitchtron.py
2. صعبة Pitchtron
python inference_hard_pitchtron.py
3. ضريبة السلع والخدمات
python inference_gst_tts.py
نصائح!
- لمنع تكسير الصوت ، يجب توسيع نطاق النطاق الصوتي للصوت المرجعي إلى النطاق الصوتي للسماعات المستهدفة.
- يتم تنفيذ هذا الجزء في الكود الخاص بنا ، ولكن يتم حساب النطاق الصوتي للسماعات المستهدفة بشكل خشن عن طريق أخذ عينات من 10 صوتيات فقط وأخذ الحد الأقصى كتباين.
- ستحصل على صوت أفضل بكثير إذا كنت تستخدم إحصائيات أكثر دقة للنطاق الصوتي للسماعات المستهدفة.
شكر وتقدير
- تعتمد هذه المادة على العمل المدعوم من وزارة التجارة والصناعة والطاقة (MOTIE ، كوريا) في إطار برنامج الابتكار في التكنولوجيا الصناعية (رقم 10080667 ، تطوير تكنولوجيا توليف خطاب المحادثة للتعبير عن المشاعر وشخصية الروبوتات من خلال تنويع مصدر الصوت).
- حصلت على مساعدة بخصوص Grapheme لأغشية الصوت من هذا الرجل الرائع => jeongpil_lee
- هذا المستودع هو تطبيق المؤلف للورقة التالية => (Pitchtron) https://arxiv.org/abs/2005.10456
- المستودعات المشار إليها
| مساهمة | عنوان URL |
|---|
| Tacotron2 | https://github.com/nvidia/tacotron2 |
| ميلوترون | https://github.com/nvidia/mellotron |
| WaveGlow | https://github.com/nvidia/waveglow |
| معالجة النص الكورية | https://github.com/keithito/tacotron |