هذا هو تطبيق التعليمات البرمجية لمشروع السنة النهائية لـ Wish Suharitdamrong، السنة الثالثة بكالوريوس علوم الكمبيوتر في جامعة ساري حول موضوع تركيب الشفاه الصوتي والمرئي عبر تمثيل المعالم الوسيطة.
العرض التوضيحي عبر الإنترنت متاح في؟ HuggingFace
هناك طريقتان لتثبيت الحزمة باستخدام conda أو pip
1. قم بإنشاء بيئة كوندا افتراضية من environment.yml
2. استخدم النقطة لتثبيت pakages (تأكد من استخدام python 3.7
أو أعلى لأن الإصدار الأقدم قد لا يدعم بعض المكتبات)
# إنشاء بيئة افتراضية من .yml fileconda env create -f Environment.yml# تفعيل البيئة الافتراضيةcondaactivate fyp
# استخدم النقطة للتثبيت require packagespip install -r require.txt
مجموعة البيانات الصوتية والمرئية المستخدمة في هذا المشروع هي LRS2 وLRS3. تم استخدام بيانات LRS2 لكل من التدريب النموذجي والتقييم. تم استخدام بيانات LRS3 فقط لتقييم النموذج.
مجموعة البيانات | صفحة |
---|---|
LRS2 | وصلة |
LRS3 | وصلة |
تحميل نموذج مولد الأوزان
نموذج | رابط التحميل |
---|---|
مولد | وصلة |
مولد + SyncLoss | وصلة |
مولد الاهتمام + SyncLoss | وصلة |
قم بتنزيل الأوزان الخاصة برابط تنزيل نموذج SyncNet المستند إلى Landmark
يمكن تنزيل الوزن المدرب مسبقًا لنموذج Image2Image Translation من مستودع MakeItTalk في قسم النماذج المدربة مسبقًا Repo Link.
├── نقطة تفتيش # دليل لنقطة تفتيش النموذج │ └── مولد # ضع أوزان نموذج المولد هنا │ └── syncnet # ضع أوزان نموذج Landmark SyncNet هنا │ └── image2image # ضع أوزان نموذج ترجمة Image2Image هنا
python run_inference.py --generator_checkpoint <checkpoint_path> --image2image_checkpoint <checkpoint_path> --input_face <image/video_path> --input_audio <audio_source_path>
لقد استخدمت نفس طرق المعالجة المسبقة للبيانات مثل Wav2Lip لمزيد من التفاصيل حول بنية المجلد التي يمكن العثور عليها في مستودعهم هنا.
python preprocess_data.py --data_root data_root/main --preprocessed_root preprocessed_lrs2_landmark/
# CLI for traning attention generator with pretrain landmark SyncNet discriminator python run_train_generator.py --model_type attnlstm --train_type pretrain --data_root preprocessed_lrs2_landmark/ --checkpoint_dir <folder_to_save_checkpoints>
# CLI for training pretrain landmark SyncNet discriminator python run_train_syncnet.py --data_root preprocessed_lrs2_landmark/ --checkpoint_dir <folder_to_save_checkpoints>
استخدم هذا المشروع بيانات من مجموعة بيانات LRS2 وLRS3 للتقييم الكمي، ويتم توفير قائمة بيانات التقييم من Wav2Lip. تتوفر قائمة الملفات (بيانات الفيديو والصوت المستخدمة للتقييم) والتفاصيل حول معيار Lip Sync في مستودعها هنا.
cd evaluation # generate evaluation videos python gen_eval_vdo.py --filelist <path> --data_root <path> --model_type <type_of_model> --result_dir <save_path> --generator_checkpoint <gen_ckpt> --image2image_checkpoint <image2image_checkpoint>
قاعدة التعليمات البرمجية لهذا المشروع مستوحاة من Wav2Lip وMakeItTalk. أود أن أشكر مؤلف كلا المشروعين على إتاحة تنفيذ التعليمات البرمجية لعملهم المذهل عبر الإنترنت.