当前位置: 首页 > article >正文

【大模型】数字人 EchoMimicV2 的环境配置和使用

一、EchoMimicV2的简单介绍

EchoMimicV2是EchoMimicV1的升级版本,旨在通过音频驱动生成更加自然和流畅的半身人类动画。它能够让用户仅通过简单的音频输入,生成与声音内容相匹配的动画效果,使虚拟人物看起来更加生动。

  • 作者:由蚂蚁集团推出的开源数字人项目。
  • github链接:https://github.com/antgroup/echomimic_v2
  • 主要功能
    • 音频驱动的动画生成:利用音频剪辑驱动人物的面部表情和身体动作,实现音频与动画的同步。
    • 半身动画制作:从仅生成头部动画扩展到生成包括上半身的动画。
    • 简化的控制条件:减少动画生成过程中所需的复杂条件,让动画制作更为简便。
    • 手势和表情同步:基于手部姿势序列与音频的结合,生成自然且同步的手势和面部表情。
    • 多语言支持:支持中文和英文驱动,根据语言内容生成相应的动画。
  • 应用场景
    EchoMimicV2适用于虚拟主播、在线教育、娱乐和游戏等多个场景。例如,在在线教育场景中,它可以通过录制好的讲解音频和教师的人物形象,生成与之同步的动态教学视频,为远程教学提供更加生动的视觉体验。

二、EchoMimicV2的环境配置

  1. 工程下载
    git clone https://github.com/antgroup/echomimic_v2
    cd echomimic_v2
    
  2. 虚拟环境安装与激活
    conda create -n echomimic_v2 python=3.10
    conda activate echomimic_v2
    
  3. 环境自动安装
    要求:CUDA >= 11.7, Python == 3.10
    sh linux_setup.sh
    
  4. 下载 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
    
  5. 模型的下载
    该项目使用过程中需要下载4组模型:EchoMimicV2、sd-vae-ft-mse、sd-image-variations-diffusers、audio_processor。
    可以从huggingface上下载,但需要翻墙,且下载速度慢。可选择modelscope进行下载,由于模型比较大,实际操作建议设置下载路径,下载到数据盘中。下面是我实际设置的路径【/opt/ai-platform/lldataset/240/modelscope/modelscope/hub/echomimi_v2】,自己使用时修改为想要存放的路径即可。
    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
    
    对于 audio_processor的下载,直接访问下载链接即可。
    下载结束后,在路径【/opt/ai-platform/lldataset/240/modelscope/modelscope/hub/echomimi_v2】下的结构如图:
    /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
    
    然后在工程的目录下创建文件夹【pretrained_weights】然后创建软连接
    mkdir pretrained_weights
    ln -s /opt/ai-platform/lldataset/240/modelscope/modelscope/hub/echomimi_v2/* pretrained_weights
    ls -l pretrained_weights    ## 查看信息
    
    在这里插入图片描述
    补充,当我们删除【pretrained_weights】,仅仅删除了软连接,不会影响到连接路径下的文件。
  6. 工程的运行
    python app.py
    
    在这里插入图片描述

三、EchoMimicV2的数字人的生成


3.1 生成流程

在这里插入图片描述

  • 1 图片的上传:本地文件上传、现场拍照、剪切板粘贴
  • 2 音频的上传:本地文件上传(格式为wav)、现场录制
  • 3 姿态输入:测试阶段,使用工程默认的姿态。
  • 4 点击视频生成。
    生成视频时,终端如下图,可以看到整个生成过程基本需要22分钟。
    在这里插入图片描述
    生成视频时,查看gpu只用情况如下图,需要月15G显存。
    在这里插入图片描述

3.2 注意事项

在工程路径【./echomimic_v2/assets/halfbody_demo】下,给出了官方示例的图片、音频、动作。

  1. 图片的拍摄
    官方demo图片】可以查看到官方提供的图片尺寸的长宽比为1:1,且人在画幅中所占比例如图。 所以我们提供自己的照片时,也尽量保持和demo图片相似的状态。
    在这里插入图片描述
    实际测试1】个人在实际测试中,上传了一个头肩的图片如下图,生成的效果不忍直视
    在这里插入图片描述
    生成的数字人如下图:
    在这里插入图片描述
    实际测试2】选取张合适的照片
    在这里插入图片描述
    生成的数字人如下图:
    在这里插入图片描述

  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
【使用体验】配置的版本为当前最新的版本。但实际使用效果的体验,只能说测试玩玩,体验下当前开源数字人技术,想要能够使用还差较大距离


http://www.kler.cn/a/601120.html

相关文章:

  • 哈希表简单例子
  • Node.js 模块加载机制--详解
  • Javaweb后端登录会话技术jwt令牌
  • MySQL学习笔记(四)
  • git上传大文件到远程仓库中
  • RabbitMQ 学习整理2 - 消峰限流
  • 解锁 AWX+Ansible 自动化运维新体验:快速部署实战
  • 向量数据库学习笔记(1) —— 基础概念
  • apache安装脚本使用shell建立
  • C 语言中, scanf 函数在哪些情况下会结束输入读取:
  • 2025-03-25 学习记录--C/C++-PTA 习题11-7 奇数值结点链表
  • 修改git在提交代码时的名称
  • TARS:字节跳动开源的AI智能体,让生活更便捷、工作更高效
  • 蓝桥杯15届B组题解
  • Springboot 学习 之 Shardingsphere 按照日期水平分表(一)
  • 游戏引擎学习第182天
  • Linux之基本命令和格式
  • AVI格式:经典视频格式的坚守与挑战
  • Unity中对象池(Object Pool)技术解析与实现
  • 笔试面试01 c/c++