Il s'agit d'une implémentation de code pour le projet de dernière année de Wish Suharitdamrong, année 3 BSc en informatique à l'Université de Surrey sur le thème de la synthèse labiale audio-visuelle via une représentation de points de repère intermédiaires.
Une démonstration en ligne est disponible sur ? ÉtreindreVisage
Il existe deux façons d'installer le package en utilisant conda ou pip
1.Créer un environnement conda virtuel à partir d' environment.yml
2.Utilisez pip pour installer un package (assurez-vous d'utiliser python 3.7
ou supérieur, car les anciennes versions peuvent ne pas prendre en charge certaines bibliothèques)
# Créer un environnement virtuel à partir d'un fichier .ymlconda env create -f environnement.yml# activer l'environnement virtuelconda activer fyp
# Utilisez pip pour installer require packagespip install -r require.txt
Les ensembles de données audiovisuelles utilisés dans ce projet sont LRS2 et LRS3. Les données LRS2 ont été utilisées à la fois pour la formation et l'évaluation du modèle. Les données LRS3 n'ont été utilisées que pour l'évaluation du modèle.
Ensemble de données | Page |
---|---|
LRS2 | Lien |
LRS3 | Lien |
Télécharger le modèle de générateur de poids
Modèle | Lien de téléchargement |
---|---|
Générateur | Lien |
Générateur + SyncLoss | Lien |
Générateur d'attention + SyncLoss | Lien |
Télécharger les poids pour le modèle SyncNet basé sur Landmark Lien de téléchargement
Le poids pré-entraîné pour le modèle Image2Image Translation peut être téléchargé à partir du référentiel MakeItTalk sur leur section de modèles pré-entraînés Repo Link.
├── point de contrôle # Répertoire du point de contrôle du modèle│ └── générateur # mettre les poids du modèle du générateur ici│ └── syncnet # mettre les poids du modèle Landmark SyncNet ici│ └── image2image # mettre les poids du modèle Image2Image Translation ici
python run_inference.py --generator_checkpoint <checkpoint_path> --image2image_checkpoint <checkpoint_path> --input_face <image/video_path> --input_audio <audio_source_path>
J'ai utilisé les mêmes méthodes de prétraitement des données que Wav2Lip pour plus de détails sur la structure des dossiers peuvent être trouvés dans leur référentiel ici.
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>
Ce projet a utilisé les données des ensembles de données LRS2 et LRS3 pour une évaluation quantitative, la liste des données d'évaluation est fournie par Wav2Lip. La liste de fichiers (données vidéo et audio utilisées pour l'évaluation) et les détails sur le benchmark Lip Sync sont disponibles dans leur référentiel ici.
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>
La base de code de ce projet a été inspirée de Wav2Lip et MakeItTalk. Je voudrais remercier l'auteur des deux projets pour avoir rendu la mise en œuvre du code de leur incroyable travail disponible en ligne.