Dies ist eine Code-Implementierung für Wish Suharitdamrongs Abschlussprojekt Jahr 3 BSc Informatik an der University of Surrey zum Thema Audio-Visua-Lippensynthese mittels intermediärer Orientierungspunktdarstellung.
Eine Online-Demonstration ist verfügbar unter ? Umarmendes Gesicht
Es gibt zwei Möglichkeiten, Pakete mit Conda oder Pip zu installieren
1. Erstellen Sie eine virtuelle Conda-Umgebung aus environment.yml
2.Verwenden Sie pip, um ein Paket zu installieren (stellen Sie sicher, dass Sie python 3.7
oder höher verwenden, da ältere Versionen möglicherweise einige Bibliotheken nicht unterstützen).
# Erstellen Sie eine virtuelle Umgebung aus der .yml-Dateiconda env create -f Environment.yml# aktivieren Sie die virtuelle Umgebungconda aktivieren Sie fyp
# Verwenden Sie pip, um require packetspip install -r require.txt zu installieren
Die in diesem Projekt verwendeten audiovisuellen Datensätze sind LRS2 und LRS3. LRS2-Daten wurden sowohl für das Modelltraining als auch für die Evaluierung verwendet. LRS3-Daten wurden nur zur Modellbewertung verwendet.
Datensatz | Seite |
---|---|
LRS2 | Link |
LRS3 | Link |
Laden Sie das Gewichtsgeneratormodell herunter
Modell | Link herunterladen |
---|---|
Generator | Link |
Generator + SyncLoss | Link |
Aufmerksamkeitsgenerator + SyncLoss | Link |
Laden Sie den Download-Link für Gewichte für das Landmark-basierte SyncNet-Modell herunter
Vorab trainierte Gewichte für das Image2Image-Übersetzungsmodell können aus dem MakeItTalk-Repository im Repo-Link im Abschnitt „Vorab trainierte Modelle“ heruntergeladen werden.
├── checkpoint # Verzeichnis für Modell-Checkpoint│ └── Generator # Generator-Modellgewichte hier einfügen│ └── syncnet # Landmark SyncNet-Modellgewichte hier einfügen│ └── image2image # Image2Image-Translation-Modellgewichte hier einfügen
python run_inference.py --generator_checkpoint <checkpoint_path> --image2image_checkpoint <checkpoint_path> --input_face <image/video_path> --input_audio <audio_source_path>
Ich habe die gleichen Methoden der Datenvorverarbeitung wie Wav2Lip verwendet. Weitere Details zur Ordnerstruktur finden Sie in ihrem Repository hier.
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>
Dieses Projekt verwendete Daten aus den Datensätzen LRS2 und LRS3 für die quantitative Bewertung. Die Liste der Bewertungsdaten stammt von Wav2Lip. Die Dateiliste (zur Bewertung verwendete Video- und Audiodaten) und Details zum Lip Sync-Benchmark finden Sie in ihrem Repository hier.
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>
Die Codebasis dieses Projekts wurde von Wav2Lip und MakeItTalk inspiriert. Ich möchte den Autoren beider Projekte dafür danken, dass sie die Code-Implementierung ihrer erstaunlichen Arbeit online verfügbar gemacht haben.