تكييف المصلح: المحول الفعال لمهمة النص إلى الكلام.
يحتوي هذا المشروع على:
نحن نهدف إلى إنشاء نسخة أكثر فعالية بشكل ملحوظ من طراز النص إلى الحديث عن أحدث طراز ، من خلال استبدال بنية المحولات الخاصة بها بالتحسينات المقترحة في ورقة الإصلاحية الأكثر حداثة. سنستخدمه لإنشاء DeepFake المعقولة من Donald Trump استنادًا إلى مجموعة بيانات مخصصة من خطبه ، تم إنشاؤها خصيصًا لهذا الغرض.
لسوء الحظ ، لم نتمكن من تحقيق نتائج تطابق نتائج من ورق Transformer TTS ، بعد تجربة أكثر من 100 مجموعة من الفائقة على مدار شهرين. نعتقد أن حجم النموذج هو عامل مهم هنا ، وتدريب المحولات لـ TTS ، يحتاج المرء حقًا إلى تقليل الإضافات للسماح بعملية تدريب طويلة وثابتة (حوالي أسبوع واحد من التدريب على RTX 2080TI).
أيضا ، فإن الوصول إلى التنفيذ الأصلي لـ Transformer TTS سيساعد بشكل كبير.
على الرغم من أن المصلح لم يتطابق مع توقعاتنا ، إلا أن تنفيذ SqueeZewave يطابق أداء واحد الأصلي بدون دعم FP16.
ندرج أيضًا CLI لتشغيل التدريب والاستدلال (انظر قسم الاستخدام ) ، وجميع البيانات اللازمة لاستنساخ التجارب (انظر قسم التطوير ).
يخضع المشروع تحت Refactor مهم ، ويتم ترك هذا الإصدار هنا للسماح بالتوافق مع إشرافنا السابق وسيتم نقله في المستقبل القريب .
هذا المشروع عبارة عن حزمة Python عادية ، ويمكن تثبيتها باستخدام pip ، طالما أن لديك Python 3.8 أو أكثر .
انتقل إلى صفحة الإصدارات للعثور على تعليمات التثبيت لأحدث الإصدار.
بعد التثبيت ، يمكنك رؤية الأوامر المتاحة عن طريق التشغيل:
python -m reformer_tts.cli --helpيتم تنفيذ جميع الأوامر باستخدام CLI ، على سبيل المثال:
python -m reformer_tts.cli train-vocoder يتم تحديد معظم المعلمات (على وجه الخصوص ، جميع أجهزة التدريب المفرطة) عبر الوسيطة --config إلى cli (الذي يذهب قبل الأمر الذي تريد تشغيله) ، على سبيل المثال:
python -m reformer_tts.cli -c /path/to/your/config.yml train-vocoder يمكن العثور على القيم الافتراضية في reformer_tts.config.Config (وحقولها).
بفضل مجتمع كوندا فورج ، يمكننا تثبيت جميع الحزم (بما في ذلك الثنائيات اللازمة ، مثل ffmpeg ) باستخدام أمر واحد.
conda env create -f environment.ymlPython>=3.8 : which python
python --versionpip install -r requirements.txt تأكد من أن لديك ffmpeg>=3.4,<4.0 مثبت (تعليمات التثبيت)
للتدريب ، تأكد من تثبيت برامج تشغيل CUDA و GPU (للحصول على التفاصيل ، راجع التعليمات على موقع Pytorch)
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/your/service-account-credentials.jsonملاحظة: إذا كنت بحاجة فقط إلى قراءة Acces (للاستنساخ) ، فلن تحتاج إلى تنفيذ الخطوة 1
dvc pullللقيام بذلك ، يمكنك تشغيل اختبارات المشروع:
python -m pytest --pyargs reformer_ttsيجب أن تعمل جميع الاختبارات على وحدة المعالجة المركزية و GPU ، وقد تستغرق ما يصل إلى دقيقة لإكمالها.
تذكر أن تمر --pyargs reformer_tts إلى Pytest ، وإلا فإنها ستبحث في أدلة البيانات للاختبارات
Python>=3.8requirements.txt وكذلك في environment.ymlreformer_tts/cli.py ، Run python reformer_tts/cli.py --help للمرجع التفصيلييتم تنظيم التكوين في هياكل DataClass:
config.py ، حيث يتم تحديد المعلمات والقيم الافتراضية - على سبيل المثال ، يتم تحديد معلمات تكوين مجموعة البيانات في reformer_tts.dataset.configreformer_tts.config.Config على جميع إعدادات التكوين الفرعيةوبهذه الطريقة ، يتم تعيين القيم الافتراضية بالقرب من المكان الذي يتم استخدامه فيه ، يمكن تجاوز أي قيمة تكوين أينما تريد
لتغيير تكوين وقت التشغيل
python reformer_tts/cli.py save-config -o config/custom.yml أو نسخ أحد ملفات التكوين الموجودة في config/ الدليل-c ، أي: python reformer_tts/cli.py -c config/custom.yml [COMMAND]لإضافة تكوين لوحدة جديدة
config.py في الوحدة النمطية الخاصة بكsqueezewave datasetreformer_tts.config نستخدم DVC لتحديد خطوط أنابيب معالجة البيانات. يتم إعداد Remote على Google Cloud Storage ، للحصول على تفاصيل قم بتشغيل dvc config list .
العقد المعدة للركض:
/scidatalgقبل الجولة:
لتشغيل التدريب:
srun --qos=gsn --partition=common --nodelist=<name_of_chosen_node> --pty /bin/bash/scidatalg/reformer-tts/reformer-tts/ تأكد من سحب المستودع وفي الفرع المناسبjobs/train_entropy.sbatch - تعبئة اسم العقدة وأمر التدريبsbatch your/job/script/location.sbatch pro tip watch -n 1 squeue -u your_username لمشاهدة ما إذا كانت وظيفتك تعمل بالفعل على تشغيل pro tip2 ، يمكنك مشاهدة التحديثات إلى السجل عن طريق تشغيل tail -f file.log أو less --follow-name +F file.log
للسحب من DVC استخدام jobs/entropy_dvc_pull.sbatch .
نظرًا لأن دليل /scidatasm لا يتزامن بينما نريد التدريب ، يتعين علينا إعداد التدريب على كل عقدة بشكل منفصل باليد. لإعداد ENV على العقدة الجديدة اتبع هذه المؤسسات:
ملاحظة : يتم دعم العقد فقط مع /scidatalg بواسطة هذه البرامج النصية. هذه العقد هي: ASUSGPU4 ، ASUSGPU3 ، ASUSGPU2 ، ASUSGPU1 ، ARNOLD ، SYLVESTER
srun --qos=gsn --partition=common --nodelist=<name_of_chosen_node> --pty /bin/bash${HOME}/gcp-cred.json (باستخدام المحرر المفضل لديك)scripts/setup_entropy_node.sh إلى ملف جديد في المنزل dir (مرة أخرى باستخدام المحرر)