【大模型】数字人 EchoMimicV2 的环境配置和使用
一、EchoMimicV2的简单介绍
EchoMimicV2是EchoMimicV1的升级版本,旨在通过音频驱动生成更加自然和流畅的半身人类动画。它能够让用户仅通过简单的音频输入,生成与声音内容相匹配的动画效果,使虚拟人物看起来更加生动。
- 作者:由蚂蚁集团推出的开源数字人项目。
- github链接:https://github.com/antgroup/echomimic_v2
- 主要功能
- 音频驱动的动画生成:利用音频剪辑驱动人物的面部表情和身体动作,实现音频与动画的同步。
- 半身动画制作:从仅生成头部动画扩展到生成包括上半身的动画。
- 简化的控制条件:减少动画生成过程中所需的复杂条件,让动画制作更为简便。
- 手势和表情同步:基于手部姿势序列与音频的结合,生成自然且同步的手势和面部表情。
- 多语言支持:支持中文和英文驱动,根据语言内容生成相应的动画。
- 应用场景
EchoMimicV2适用于虚拟主播、在线教育、娱乐和游戏等多个场景。例如,在在线教育场景中,它可以通过录制好的讲解音频和教师的人物形象,生成与之同步的动态教学视频,为远程教学提供更加生动的视觉体验。
二、EchoMimicV2的环境配置
- 工程下载
git clone https://github.com/antgroup/echomimic_v2 cd echomimic_v2
- 虚拟环境安装与激活
conda create -n echomimic_v2 python=3.10 conda activate echomimic_v2
- 环境自动安装
要求:CUDA >= 11.7, Python == 3.10sh linux_setup.sh
- 下载 ffmpeg-static
下载链接:https://www.johnvansickle.com/ffmpeg/old-releases/ffmpeg-4.4-amd64-static.tar.xz
下载后解压,文件层级如下:终端虚拟环境中,设置环境变量。注意该环境变量的设置仅限于当前终端echomimic_v2/ └── ffmpeg-4.4-amd64-static/ ├── manpages/ ├── model/ ├── ffmpeg ├── ffprobe ├── GPLv3.txt ├── qt-faststart ├── readme.txt └── autogen.sh
export FFMPEG_PATH=./ffmpeg-4.4-amd64-static
- 模型的下载
该项目使用过程中需要下载4组模型:EchoMimicV2、sd-vae-ft-mse、sd-image-variations-diffusers、audio_processor。
可以从huggingface上下载,但需要翻墙,且下载速度慢。可选择modelscope进行下载,由于模型比较大,实际操作建议设置下载路径,下载到数据盘中。下面是我实际设置的路径【/opt/ai-platform/lldataset/240/modelscope/modelscope/hub/echomimi_v2】,自己使用时修改为想要存放的路径即可。对于 audio_processor的下载,直接访问下载链接即可。pip install modelscope modelscope download --model BadToBest/EchoMimicV2 --local_dir /opt/ai-platform/lldataset/240/modelscope/modelscope/hub/echomimi_v2 modelscope download --model zhuzhukeji/sd-vae-ft-mse --local_dir /opt/ai-platform/lldataset/240/modelscope/modelscope/hub/echomimi_v2/sd-vae-ft-mse modelscope download --model gqy2468/sd-image-variations-diffusers --local_dir /opt/ai-platform/lldataset/240/modelscope/modelscope/hub/echomimi_v2/sd-image-variations-diffusers
下载结束后,在路径【/opt/ai-platform/lldataset/240/modelscope/modelscope/hub/echomimi_v2】下的结构如图:然后在工程的目录下创建文件夹【pretrained_weights】然后创建软连接/opt/ai-platform/lldataset/240/modelscope/modelscope/hub/echomimi_v2/ ├── denoising_unet.pth ├── reference_unet.pth ├── motion_module.pth ├── pose_encoder.pth ├── sd-image-variations-diffusers │ └── ... ├── sd-vae-ft-mse │ └── ... └── audio_processor └── tiny.pt
mkdir pretrained_weights ln -s /opt/ai-platform/lldataset/240/modelscope/modelscope/hub/echomimi_v2/* pretrained_weights ls -l pretrained_weights ## 查看信息
补充,当我们删除【pretrained_weights】,仅仅删除了软连接,不会影响到连接路径下的文件。- 工程的运行
python app.py
三、EchoMimicV2的数字人的生成
3.1 生成流程
- 1 图片的上传:本地文件上传、现场拍照、剪切板粘贴
- 2 音频的上传:本地文件上传(格式为wav)、现场录制
- 3 姿态输入:测试阶段,使用工程默认的姿态。
- 4 点击视频生成。
生成视频时,终端如下图,可以看到整个生成过程基本需要22分钟。
生成视频时,查看gpu只用情况如下图,需要月15G显存。
3.2 注意事项
在工程路径【./echomimic_v2/assets/halfbody_demo】下,给出了官方示例的图片、音频、动作。
图片的拍摄
【官方demo图片】可以查看到官方提供的图片尺寸的长宽比为1:1,且人在画幅中所占比例如图。 所以我们提供自己的照片时,也尽量保持和demo图片相似的状态。
【实际测试1】个人在实际测试中,上传了一个头肩的图片如下图,生成的效果不忍直视
生成的数字人如下图:
【实际测试2】选取张合适的照片
生成的数字人如下图:
音频的上传
该工程上传的音频,支持的是 wav格式。而实际中更多的格式为MP3。这里提供一个简单的转换的代码from pydub import AudioSegment def convert_mp3_to_wav(mp3_file_path, wav_file_path): """ 将 MP3 文件转换为 WAV 格式 :param mp3_file_path: MP3 文件的路径 :param wav_file_path: 输出 WAV 文件的路径 """ try: # 加载 MP3 文件 audio = AudioSegment.from_mp3(mp3_file_path) # 导出为 WAV 格式 audio.export(wav_file_path, format="wav") print(f"转换完成,WAV 文件已保存到 {wav_file_path}") except Exception as e: print(f"转换失败:{e}") # 示例用法 mp3_file_path = "data/3月25日.MP3" # 替换为你的 MP3 文件路径 wav_file_path = "data/3月25日.wav" # 替换为你希望保存的 WAV 文件路径 convert_mp3_to_wav(mp3_file_path, wav_file_path)
四、EchoMimicV2的数字人使用体验
【记录日期】2025.3.25
【使用体验】配置的版本为当前最新的版本。但实际使用效果的体验,只能说测试玩玩,体验下当前开源数字人技术,想要能够使用还差较大距离