นี่คือการนำโค้ดไปใช้ในโครงการปีสุดท้ายของวิช สุหฤทดำรงค์ ปี 3 วิทยาการคอมพิวเตอร์ BSc ที่มหาวิทยาลัยเซอร์เรย์ ในหัวข้อการสังเคราะห์เสียงและภาพริมฝีปากผ่านการแสดงจุดสังเกตระดับกลาง
สามารถสาธิตออนไลน์ได้ที่ ? กอดใบหน้า
มีสองวิธีในการติดตั้งแพ็คเกจโดยใช้ conda หรือ pip
1. สร้างสภาพแวดล้อม conda เสมือนจาก environment.yml
2. ใช้ pip เพื่อติดตั้งแพ็คเกจ (ตรวจสอบให้แน่ใจว่าคุณใช้ python 3.7
ขึ้นไปเนื่องจากเวอร์ชันเก่าอาจไม่รองรับบางไลบรารี)
# สร้างสภาพแวดล้อมเสมือนจาก .yml fileconda env สร้าง -f สภาพแวดล้อม yml# เปิดใช้งานสภาพแวดล้อมเสมือน conda เปิดใช้งาน fyp
# ใช้ pip เพื่อติดตั้งต้องใช้ packagespip ติดตั้ง -rrequire.txt
ชุดข้อมูลภาพและเสียงที่ใช้ในโครงการนี้คือ LRS2 และ LRS3 ข้อมูล LRS2 ถูกใช้สำหรับทั้งการฝึกโมเดลและการประเมินผล ข้อมูล LRS3 ใช้สำหรับการประเมินแบบจำลองเท่านั้น
ชุดข้อมูล | หน้าหนังสือ |
---|---|
แอลอาร์เอส2 | ลิงค์ |
แอลอาร์เอส3 | ลิงค์ |
ดาวน์โหลดแบบจำลองเครื่องกำเนิดตุ้มน้ำหนัก
แบบอย่าง | ลิงค์ดาวโหลด |
---|---|
เครื่องกำเนิดไฟฟ้า | ลิงค์ |
เครื่องกำเนิด + SyncLoss | ลิงค์ |
เครื่องกำเนิดความสนใจ + SyncLoss | ลิงค์ |
ดาวน์โหลดน้ำหนักสำหรับลิงก์ดาวน์โหลดโมเดล SyncNet ที่ใช้ Landmark
น้ำหนักที่ฝึกล่วงหน้าสำหรับโมเดลการแปล Image2Image สามารถดาวน์โหลดได้จากพื้นที่เก็บข้อมูล 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 ฉันอยากจะขอบคุณผู้เขียนทั้งสองโครงการสำหรับการนำโค้ดไปใช้ในงานที่น่าทึ่งของพวกเขาทางออนไลน์