lip synthesis
1.0.0
這是薩里大學計算機科學學士 Wish Suharitdamrong 的最後一年計畫第 3 年的代碼實現,主題是透過中間地標表示進行視聽唇形合成。
線上演示可在 ?抱臉
使用 conda 或 pip 安裝套件有兩種方法
1.從environment.yml
建立虛擬conda環境
2.使用pip安裝pakages(確保使用python 3.7
或更高版本,因為舊版本可能不支援某些程式庫)
# 從 .yml 檔案建立虛擬環境conda env create -fenvironment.yml# 啟動虛擬環境conda activate fyp
# 使用pip安裝require套件spip install -rrequirement.txt
本專案使用的視聽資料集是LRS2和LRS3。 LRS2 資料用於模型訓練和評估。 LRS3數據僅用於模型評估。
數據集 | 頁 |
---|---|
遠端RS2 | 關聯 |
遠端RS3 | 關聯 |
下載權重產生器模型
模型 | 下載連結 |
---|---|
發電機 | 關聯 |
生成器 + 同步損失 | 關聯 |
注意力產生器 + SyncLoss | 關聯 |
下載基於 Landmark 的 SyncNet 模型的權重 下載鏈接
Image2Image Translation 模型的預訓練權重可以從 MakeItTalk 儲存庫的預訓練模型部分 Repo Link 下載。
├── checkpoint # 模型檢查點目錄│ └── Generator # 在此放置 Generator 模型權重 │ └──syncnet # 在此放置 Landmark SyncNet 模型權重 │ └── image2image # 在此放置 Image2Image Translation 模型權重
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 的啟發。我要感謝這兩個項目的作者,他們在線提供了他們出色工作的代碼實現。