数字人实战第二天——DH_live 部署教程(2024最新最强数字人实时驱动方案)

out

数字人实时驱动技术不仅推动了技术和艺术的融合,也为各行各业提供了新的工具和方法,使得虚拟与现实的界限日益模糊。 

  • 互动性:用户可以与数字人实时交互,提供了一种更加动态和吸引人的用户体验。
  • 广泛应用:可以用于虚拟客服、在线教育、娱乐等多个领域。
  • 训练和模拟:在医疗、军事训练等领域,数字人可以提供高度逼真的交互模拟环境。

DH_live实时驱动:消耗显存不到2G

 一、环境部署

项目地址:GitHub - kleinlee/DH_live: 每个人都能用的数字人

cd checkpoint
gzip -d -c render.pth.gz.001 > render.pth

也就是解压render.pth.gz.001,得到 render.pth。

conda create -n dhlive python==3.9
conda activate dhlive
pip install -r requirement.txt

可能安装不完全,缺什么再pip单独安装。

坑点应该是其中的pytorch部分,要求是:torch==2.1.1+cu121
torchvision==0.16.1+cu121,我cuda版本是11.8,安装121的pytorch也可以运行。

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

二、素材准备

准备自己的视频,1.mp4.

python data_preparation.py 1.mp4

将生成的front.mp4 和back.mp4复制data中,再次运行python data_preparation.py 1.mp4。

就会在video_data下生成一个文件夹里面包含:circle.mp4和keypoint_rotate.pkl

(但是可能有问题,只生成某一个,我的情况是,windows电脑生成一个,ubuntu服务器生成了另一个)

最新更新:将data_preparation.py 代码中的第90行代码:

for frame_index in tqdm.tqdm(range(totalFrames)):

修改为:for frame_index in range(totalFrames):

即可正常生成circle.mp4和keypoint_rotate.pkl

三、合成视频

将video_data下生成一个文件夹重命名为test1

python demo.py video_data/test1 video_data/audio0.wav out.mp4

就生成了合成视频。

四、实时驱动

python demo_avatar.py

可以通过麦克风,实时驱动嘴型。

import time
import os
import numpy as np
from scipy.io import wavfile
import cv2
import glob
from talkingface.audio_model import AudioModel
from talkingface.render_model import RenderModel

audioModel = AudioModel()
audioModel.loadModel("checkpoint/audio.pkl")

renderModel = RenderModel()
renderModel.loadModel("checkpoint/render.pth")
test_video = "test"
pkl_path = "video_data/{}/keypoint_rotate.pkl".format(test_video)
video_path = "video_data/{}/circle.mp4".format(test_video)
renderModel.reset_charactor(video_path, pkl_path)

wavpath = "video_data/audio0.wav"
rate, wav = wavfile.read(wavpath, mmap=False)
index_ = 0
frame_index__ = 0
import sounddevice as sd
sample_rate = 16000
samples_per_read = int(0.04 * sample_rate)
with sd.InputStream(
        channels=1, dtype="float32", samplerate=sample_rate
) as s:
    while True:
        samples, _ = s.read(samples_per_read)  # a blocking read
        pcm_data = samples.reshape(-1)
        print(pcm_data.shape)
        mouth_frame = audioModel.interface_frame(pcm_data)
        frame = renderModel.interface(mouth_frame)
        cv2.imshow("s", frame)
        cv2.waitKey(10)
        index_ += 1
  1. 模块导入和初始化

    • 导入必要的模块,如timeosnumpyscipy.io.wavfilecv2glob
    • 导入自定义的AudioModelRenderModel,这些可能是用于处理音频和视频的深度学习模型。
  2. 模型加载

    • 加载音频和渲染模型的预训练权重。
  3. 视频和关键点数据处理

    • 为渲染模型设定视频路径和关键点数据路径。
  4. 音频处理

    • 读取音频文件,并使用sounddevice模块实时获取音频输入。
  5. 实时音频到视频渲染

    • 实时处理输入的音频数据,将其转换成相应的口型关键帧。
    • 使用渲染模型将这些口型关键帧转换为视频帧。
    • 通过cv2.imshow实时显示这些视频帧。
### DH_live 和 EchoMimic 介绍 DH_live 是一款用于创建实时数字人的工具,能够通过简单的配置实现高质量的虚拟形象直播功能[^1]。该平台支持多种应用场景,包括但不限于在线教育、娱乐互动以及商业展示等领域。 相比之下,EchoMimic 则专注于提供更加逼真的面部表情捕捉与重现能力,适用于需要高精度人脸建模的应用场合。不过关于 EchoMimic 的具体细节,在现有资料中并未提及更多内容。 ### 使用场景 对于希望快速上手并应用于实际项目的开发者而言,DH_live 提供了一套完整的解决方案,涵盖了从基础环境搭建到最终部署上线所需的全部流程。而针对那些追求极致视觉效果的技术团队来说,EchoMimic 或许能成为更好的选择,尽管目前缺乏详细的官方文档说明其具体的适用范围。 ### 文档获取方式 有关 DH_live最新版本和技术文档可以在 GitHub 上找到对应的项目页面进行查阅。至于 EchoMimic 方面的信息则相对较少,可能需要进一步探索其他渠道来获得更详尽的帮助和支持。 ### 下载途径 为了方便国内用户访问和使用,DH_live 特意提供了国内镜像源服务以便于更快捷地完成必要的软件包下载工作。而对于 EchoMimic 而言,则建议尝试联系开发团队或关注社区动态以寻找合适的获取方法。 ### 安装指南 #### DH_live 安装过程概述: - 创建 Python 环境 `conda create -n dhlive python==3.9` 并激活它; - 更新 pip 工具至最新版; - 根据 requirements.txt 文件安装依赖库 `pip install -r requirement.txt`; ```bash conda create -n dhlive python==3.9 conda activate dhlive pip install --upgrade pip pip install -r requirement.txt ``` #### 关键步骤解析: - **环境准备**:确保已正确设置 Anaconda 或 Miniconda 环境,并按照上述命令依次执行操作。 - **依赖管理**:利用 Conda 来管理和隔离不同项目的 Python 运行时环境,同时借助 Pip 实现第三方模块的有效引入。 由于缺少足够的公开信息描述 EchoMimic 的安装流程,因此无法给出确切指导。但可以推测,如果两者存在相似之处的话,那么类似的准备工作同样适用于后者。 ### 配置要点提示 当涉及到 DH_live 的个性化定制时,通常会涉及以下几个方面的工作: - 修改配置文件中的参数设定,如摄像头设备编号、音频输入输出选项等; - 对预训练好的模型进行微调优化,提高特定任务下的表现水平; - 自定义界面样式设计,增强用户体验感。 ```json { "camera_id": 0, "audio_input_device_index": None, "audio_output_device_index": None } ``` 以上 JSON 示例展示了部分可调整项的具体形式,当然这仅仅是冰山一角而已。 ### 教程推荐资源链接 考虑到当前条件下难以直接给出 EchoMimic 的学习材料汇总,这里主要围绕 DH_live 展开讨论。有兴趣深入了解的朋友可以通过观看官方提供的教学视频或者参与线上交流群组等方式加深理解[^2]。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学术菜鸟小晨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值