تنفيذ Pytorch لـ CS-Tacotron ، وهو نموذج TTS التوليدي لتبديل الكود من طرف إلى طرف يعتمد على Tacotron. للحصول على نسخة منتظمة من Tacotron ، يرجى الاطلاع على هذا الريبو.
مع النجاح الواسع في نماذج النصوص إلى التعلم الآلي الأخير (TTS) ، أثبتت نتائج واعدة حول توليف الكلام الواقعية قدرة الآلة على تصنيع الأصوات التي تشبه الإنسان. ومع ذلك ، لم يتم إحراز تقدم ضئيل في مجال تخليق النص إلى الكود الصيني والإنجليزي ، حيث يتعين على الماكينة أن تتعلم التعامل مع كل من الإدخال والمخرجات بطريقة متعددة اللغات. يحدث تبديل الكود عندما يتناوب المتحدث بين لغتين أو أكثر ، في الوقت الحاضر يتواصل الأشخاص في لغات تبديل التعليمات البرمجية في الحياة اليومية ، وبالتالي يجب تطوير تقنيات اللغة المنطوقة مثل TTS للتعامل مع المدخلات والمخرجات متعددة اللغات.
في هذا العمل ، نقدم Tacotron تبديل الكود ، الذي تم تصميمه على أساس أحدث طراز Tacotron النموذجي من طرف إلى طرف إلى النهاية (Wang et al. ، 2017). CS-TACOTRON قادر على تصنيع خطاب تبديل التعليمات البرمجية مشروطة على نص CS الخام. بالنظر إلى نص CS وأزواج الصوت ، يمكن تدريب نموذجنا من شامل إلى النهاية مع المعالجة المسبقة للبيانات المناسبة. Forceurmore ، نقوم بتدريب نموذجنا على مجموعة بيانات محاضرات محاضرة ، وهي مجموعة بيانات قائمة على محاضرات تبديل الكود الصينية ، والتي تنشأ من معالجة الإشارات الرقمية (DSP) المقدمة في جامعة تايوان الوطنية (NTU). نقدم العديد من تقنيات التنفيذ الرئيسية لجعل نموذج Tacotron أداءً جيدًا في مهمة توليد الكلام المتعددة اللغات الصعبة. تمتلك CS-Tacotron قدرة توليد خطاب CS من نص CS ، ويتحدث بوضوح مع نمط مكبر الصوت المحاضر.
انظر Report.pdf لمزيد من التفاصيل من هذا العمل.
طلبات السحب موضع ترحيب!
عينات صوتية من CS-Tacotron. كل العبارات أدناه غير مرئية أثناء التدريب.
تثبيت بيثون 3.
قم بتثبيت أحدث إصدار من Pytorch وفقًا للمنصة. لتحسين الأداء ، قم بالتثبيت باستخدام دعم GPU (CUDA) إذا كان قابلاً للتطبيق. يعمل هذا الرمز مع Pytorch 1.0 وبعد ذلك.
(اختياري) قم بتثبيت أحدث إصدار من TensorFlow وفقًا للمنصة. يمكن أن يكون هذا اختياريًا ، ولكن في الوقت الحالي مطلوب لمعالجة الكلام.
متطلبات التثبيت:
pip3 install -r requirements.txt
تحذير: تحتاج إلى تثبيت Torch و TensorFlow / TensorFlow-GPU اعتمادًا على النظام الأساسي الخاص بك. هنا ندرج إصدار Pytorch و TensorFlow الذي نستخدمه عندما قمنا ببناء هذا المشروع.
python3 test.py --interactive --plot --long_input --model 470000
python3 test.py --plot --model 480000 --test_file_path ../data/text/test_sample.txt
* '--long_input' is optional to add
ملاحظة: قمنا بتدريب نموذجنا على مجموعة البيانات الخاصة بنا: LecturedSp. حاليًا هذه مجموعة البيانات غير متوفرة للإصدار العام وتظل مجموعة خاصة في المختبر. راجع "Report.pdf" لمزيد من المعلومات حول مجموعة البيانات هذه.
قم بتنزيل مجموعة بيانات تبديل الكود التي تختارها.
قم بفك مجموعة البيانات في ~/data/text و ~/data/audio .
بعد التفريغ ، يجب أن تبدو شجرة البيانات الخاصة بك هكذا للمسارات الافتراضية للعمل:
./CS-Tacotron
|- data
|- text
|- train_sample.txt
|- test_sample.txt
|- audio
|- sample
|- audio_sample_*.wav
|- ...
ملاحظة: بالنسبة للقسم التالي ، قم بتعيين المسارات وفقًا لأسماء الملفات الخاصة بمجموعة البيانات الخاصة بك ، وهذا مجرد عرض لبعض بيانات العينة. يجب أن يتطابق تنسيق مجموعة البيانات الخاصة بك مع بيانات العينة المقدمة لهذا الرمز للعمل.
المعالجة المسبقة البيانات النصية باستخدام src/preprocess.py:
python3 preprocess.py --mode text --text_input_raw_path ../data/text/train_sample.txt --text_pinyin_path '../data/text/train_sample_pinyin.txt'
المعالجة المسبقة بيانات الصوت باستخدام src/preprocess.py:
python3 preprocess.py --mode audio --audio_input_dir ../data/audio/sample/ --audio_output_dir ../data/audio/sample_processed/ --visualization_dir ../data/audio/sample_visualization/
تصور الاختلافات الصوتية قبل المعالجة:
قم بعمل ملفات ميتا جاهزة للنموذج من النص والصوت باستخدام src/preprocess.py:
python3 preprocess.py --mode meta --text_pinyin_path ../data/text/train_sample_pinyin.txt --audio_output_dir ../data/audio/sample_processed/
تدريب نموذج باستخدام src/train.py
python3 train.py
تم العثور على فرط النطق القابل للضبط في src/config.py. يمكنك ضبط هذه المعلمات والإعداد عن طريق تحرير الملف. ينصح بمقاييس الفصائل الافتراضية للمحاضرة وبيانات تبديل الكود الصيني والإنجليزي.
شاشة مع Tensorboardx (اختياري)
tensorboard --logdir 'path to log dir'
يقوم المدرب بتفريغ الصوت والمحاذاة كل 2000 خطوة بشكل افتراضي. يمكنك العثور على هذه في CS-tacotron/ckpt .
نود أن نمنح الفضل في عمل Ryuichi Yamamoto ، وهو تطبيق Pytorch الرائع لـ Tacotron ، والذي نعتمد عليه بشكل أساسي عملنا.
نعرض مؤامرة محاذاة مرحلة اختبار نموذجنا ، حيث يوضح الأول محاذاة المدخلات الصينية أحادية اللغة ، والثاني هو مدخلات تبديل الكود الصينية-الإنجليزية ، والثالث هو مدخلات اللغة الإنجليزية أحادية اللغة ، على التوالي.