wav2lip数字人
一、wav2lip简介
Wav2Lip 是一种通过将音频与视频中的嘴唇动作同步的技术,旨在生成与音频内容高度匹配的口型动画。其主要应用是让视频中的人物嘴唇动作与配音或其他音频输入精确同步,这在电影配音、虚拟主持人、在线教学、影视后期处理等领域非常有用。
Wav2Lip 基于深度学习,特别是生成对抗网络(GAN)。它通过以下关键技术实现音视频的嘴唇同步:
-
生成对抗网络(GAN):Wav2Lip 使用了 GAN 框架,其中生成器负责根据输入的音频生成与嘴唇动作同步的图像,判别器则用于评估生成的图像是否与输入的音频匹配。生成器通过不断优化生成与音频匹配的嘴部动作,直到判别器无法区分真假。
-
音频特征提取:通过卷积神经网络(CNN),从音频信号中提取出有助于判断嘴唇动作的特征。这些特征用于指导生成器生成与音频相符的嘴部动作。
-
视觉输入:从原始视频帧中提取面部信息,结合音频特征,生成器对嘴唇部分进行调整,使其动作与输入音频相匹配。
通过这些技术和应用,Wav2Lip 为各种音频与视频同步需求提供了强大的解决方案。
-
影视后期配音:Wav2Lip 能够帮助影视制作中配音演员的声音与演员口型完美匹配,极大减少了后期制作的工作量。
-
虚拟角色和动画:在游戏、虚拟现实和动画领域,它可以让虚拟角色在实时对话中表现出高度自然的口型同步,提高用户体验的沉浸感。
-
多语言配音:对于需要将视频配音为多语言的场景,Wav2Lip 可以使嘴型与多语言音频相匹配,提升多语言视频的自然度。
-
可访问性:对于需要生成同步手语和口型的应用(如为聋哑人提供的工具),Wav2Lip 可以提高准确性和可用性。
二、环境部署
由于这个代码时间比较久,有些安装环境已经没有了,所以使用下面方式安装。
1.创建环境和安装pytorch
conda create -n wav2lip python==3.9
activate wav2lip
#由于我的cuda是11.8版本,所以安装
conda install pytorch==2.3.1 torchvision==0.18.1 torchaudio==2.3.1 pytorch-cuda=11.8 -c pytorch -c nvidia
2. 修改requirement并安装
requirement:
librosa==0.10.0
numpy<1.24.1
opencv-contrib-python>=4.2.0.34
opencv-python==4.7.0.72
tqdm==4.48
numba==0.56.4
pip install -r requirements.txt
3.模型下载
wav2lip.pth存放到checkpoints目录下
wav2lip_gan.pth存放到checkpoints目录下
lipsync_expert.pth存放到checkpoints目录下
visual_quality_disc.pth存放到checkpoints目录下
s3fd.pth存放到face_detection/detection/sfd/目录下
三、合成数字人
新建data文件夹,放入音频和视频素材。
python inference.py --checkpoint_path checkpoints/wav2lip_gan.pth --face data/2.mp4 --audio data/audio0.wav