简介
EchoMimic是阿里巴巴达摩院推出的一个AI驱动的口型同步技术项目。通过一段音频和一张人物的面部照片,生成一个看起来像是在说话的视频,其中的人物口型动作与音频中的语音完美匹配。
EchoMimic优点:
1.口型同步生成:能根据音频和面部照片,创造出口型动作与语音完美匹配的视频。
2.自然逼真:它会融合音频和面部特征,生成的面部动画看起来很符合真实的面部运动和表情变化。
3.多语言支持:不仅支持普通话,还能处理英语和歌唱等多种语言和风格。
缺点:模型太大、生成时间比较久
技术原理
EchoMimic技术核心在于结合音频与视觉分析,通过以下关键步骤实现语音驱动的面部动画:
1.音频特征提取:利用音频处理技术分析语音的节奏、音调等特征。
2.面部标志点定位:高精度面部识别算法定位关键面部区域。
3.多模态融合与动画生成:结合音频特征与面部信息,通过深度学习模型(如CNN、RNN、GAN)生成与语音同步的逼真面部表情和口型。
4.创新训练与实时处理:采用创新训练策略,结合预训练模型,实现快速适应新音频并实时生成动画。
这些技术共同确保了EchoMimic生成的面部动画在视觉和语义上与音频内容高度一致且自然流畅。
算法部署
1.源码下载
git clone https://github.com/BadToBest/EchoMimic
cd EchoMimic
2.运行环境要求
Tested System Environment: Ubuntu 22.04, Cuda >= 11.7
Tested GPUs: RTX3090 (24G)
Tested Python Version: 3.8 / 3.10 / 3.11
3.创建conda环境
conda create -n echomimic python=3.8
conda activate echomimic
4.安装依赖库
pip install -r requirements.txt
5.下载ffmpeg-static并设置环境变量
下载地址:https://www.johnvansickle.com/ffmpeg/old-releases/ffmpeg-4.4-amd64-static.tar.xz
export FFMPEG_PATH=/home/nvidia/ffmpeg-4.4-amd64-static
6.下载预训练模型
git clone https://huggingface.co/BadToBest/EchoMimic pretrained_weights
./pretrained_weights/
├── denoising_unet.pth
├── reference_unet.pth
├── motion_module.pth
├── face_locator.pth
├── sd-vae-ft-mse
│ └── …
├── sd-image-variations-diffusers
│ └── …
└── audio_processor
└── whisper_tiny.p
音频驱动算法推理
编辑./configs/prompts/animation.yaml文件,替换成自己的素材
test_cases:
“./assets/test_imgs/a.png”:
- “./assets/test_audios/echomimic_en.wav”
“./assets/test_imgs/b.png”:
- “./assets/test_audios/echomimic_en_girl.wav”
“./assets/test_imgs/c.png”:
- “./assets/test_audios/echomimic_en_girl.wav”
“./assets/test_imgs/d.png”:
- “./assets/test_audios/echomimic_en_girl.wav”
“./assets/test_imgs/e.png”:
- “./assets/test_audios/echomimic_en.wav”
运行python推理脚本:
python -u infer_audio2vid.py
音频和姿态驱动算法推理
编辑./configs/prompts/animation_pose.yaml文件,替换成自己的素材
test_cases:
“./assets/test_pose_demo/d.jpg”:
- “./assets/test_pose_demo_audios/movie_0_clip_0.wav”
- “./assets/test_pose_demo_pose”
运行python推理脚本:
python -u infer_audio2vid_pose.py
运行Gradio用户界面
python -u webgui.py --server_port=3000
源码地址:https://github.com/BadToBest/EchoMimic
官网:https://badtobest.github.io/echomimic.html