MuseTalk的最新唇形同步模型落地实践经验总结(不看后悔)

MuseTalk 是由腾讯音乐娱乐的 Lyra 实验室开发的一款强大的开源项目,旨在为虚拟人物提供逼真的口型动画。

该项目不仅支持中文、英文和日文等多语言输入,还适用于多种应用场景,无论是短视频制作、长剧集还是教育与培训材料,都能确保高质量的唇形同步效果。

MuseTalk 的核心是其创新性的 latent space inpainting 方法,它基于 ft-mse-vae 空间进行训练。

该项目利用冻结的 VAE 对图像进行编码,同时使用冻结的 whisper-tiny 模型对音频进行编码,然后通过 UNet 架构中的 cross-attention 机制将音频嵌入与图像嵌入相融合。

与 Stable Diffusion 类似但又不同,MuseTalk 通过单步 latent space inpainting 实现快速且精确的唇部动作调整。

这一技术特别适用于创造自然且逼真的数字人表现,使得数字角色的唇形能够精准地与音频内容匹配,从而大幅提升观众的视听体验。

其中github项目地址:https://github.com/THU-MIG/yolov10

一、环境安装

1、python环境

为了兼容库安装,建议安装python版本在3.10以上。

2、pip包安装

pip install torch==2.0.1+cu118 torchvision==0.15.2+cu118 torchaudio==2.0.2 --index-url https://download.pytorch.org/whl/cu118

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

pip install --no-cache-dir -U openmim

mim install mmengine

mim install "mmcv>=2.0.1"

mim install "mmdet>=3.1.0"

mim install "mmpose>=1.1.0"

3、ffmpeg安装配置

Ubuntu系统的安装命令:

apt install ffmpeg

如果下载ffmpeg源码编译安装,需要配置ffmpeg路径,比如:

export FFMPEG_PATH=/path/to/ffmpeg

这里的/path/to/ffmpeg需要替换为你系统中ffmpeg的实际安装路径。

4、模型权重下载

(a)通过https://huggingface.co/TMElyralab/MuseTalk下载musetalk的模型权重。

(b)通过https://huggingface.co/stabilityai/sd-vae-ft-mse下载sd-vae-ft-mse模型权重。

(c)通过https://openaipublic.azureedge.net/main/whisper/models/65147644a518d12f04e32d6f3b26facc3f8dd46e5390956a9424a650c0ce22b9/tiny.pt下载whisper模型权重。

(d)通过https://huggingface.co/yzd-v/DWPose/tree/main下载dwpose模型权重。

(e)通过https://github.com/zllrunning/face-parsing.PyTorch下载face=parse-bisent模型的权重。

二、功能测试

1、普通推理测试

我们可以通过下面的命令行方式进行测试:

python -m scripts.inference --inference_config configs/inference/test.yaml

上面的test.yaml的配置如下:

task_0:

video_path: "data/video/sun.mp4"

audio_path: "data/audio/sun.wav"

bbox_shift: -7

其中,task_0表示任务0,还可以自己添加多个任务,video_path表示输入视频路径,audio_path表示输入音频路径。

bbox_shift 是一个重要的参数,用于调整面部区域的中心点,特别是用于控制生成视频中嘴巴的开合程度。

正的bbox_shift会使嘴巴向下半部分移动,这会增加嘴巴的张开度,使得生成的视频中角色看起来像是在更清晰地发音。

负的bbox_shift会使嘴巴向上半部分移动,这会减少嘴巴的张开度,使得角色看起来像是在轻微地发音或者闭嘴。

例如,在运行在处理一个测试案例时,运行默认配置后发现可调整的值范围是是 [-9, 9]。

如果需要减少嘴巴的开合程度,可以将bbox_shift设置为-7,作为参数传进去,然后运行以下命令:

python -m scripts.inference --inference_config configs/inference/test.yaml --bbox_shift -7

2、实时推理测试

为了提高模型的推理速度,满足实时性的要求,官方还推出了实时推理的方式。

实时推理命令如下:

python -m scripts.realtime_inference --inference_config configs/inference/realtime.yaml --batch_size 4

上面的test.yaml的配置如下:

avator_1:

preparation: True

bbox_shift: -7

video_path: "data/video/sun.mp4"

audio_clips:

audio_0: "data/audio/sun.wav"

其中,avator_1表示角色1,可以自己添加多个角色,preparation设置为True表示准备新的角色,bbox_shift用于调整面部区域的中心点,video_path表示输入视频路径,audio_0表示第一个输入的音频路径,还可以自己添加多个音频路径。

3、测试结果

通过微调MuseTalk模型后,模型的测试结果如下:

musetalk模型测试结果1

musetalk模型测试结果2

musetalk模型测试结果3

喜欢就点赞转发,后期我还会持续在这里分享最新研发技术动向。

另外,想看更多的MuseTalk相关技术经验,欢迎后台留言讨论。

  • 33
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android唇形合成是一种在Android设备上实现的技术,通过利用计算机视觉和图像处理算法,将人脸图像中的嘴唇部分提取出来,并根据用户输入的文本或语音信息,合成出与输入内容相对应的唇形动画。 该技术在一些应用中具有广泛的应用场景,比如虚拟形象和角色的口型合成、表情包制作、嘴唇跟踪等。通过将用户输入的文本或语音转换为相应的唇形动画,可以使虚拟形象或角色更加逼真地表达出用户的意思和情感。 唇形合成的实现主要分为两个步骤。首先是对输入的音频或文本进行语义分析和文本/语音转化处理,将其转换为对应的语音信号或文本信息。然后,通过实时监测用户的嘴唇运动或根据文本/语音的音高、语速等特征参数,将合成的唇形图像与语音信号或文本信息进行匹配,实现唇形动画的合成。 为了达到更好的合成效果,Android唇形合成通常会结合机器学习和深度学习算法来提高嘴唇跟踪和唇形合成的准确性和逼真度。通过大量的训练数据和算法模型的优化,可以实现更加准确、自然的唇形合成效果。 总的来说,Android唇形合成是一项利用计算机视觉和图像处理算法,将用户输入的文本或语音信息转换为相应唇形动画的技术。通过这项技术,可以实现更加生动、逼真的人脸表情和嘴唇运动,并在一些应用中发挥重要作用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值