腾讯音乐TME-MuseTalk模型代码详解

MuseTalk的最新唇形同步模型落地实践经验总结(不看后悔) MuseTalk 是由腾讯音乐娱乐的 Lyra 实验室开发的一款强大的开源项目,旨在为虚拟人物提供逼真的口型动画。 该项目不仅支持中文、英文和日文等多语言输入,还适用于多种应用场景,无论是短视频制作、长剧集还是教育与培训材料,都能确保高质量的唇形同步效果。 阅读详情


git地址:https://github.com/TMElyralab/MuseTalk

一、模型理解

在这里插入图片描述

1.1 训练方式

类似于stable diffusion的流程,原始人脸与mask唇部图片先经过训练好的Encoder转化为隐向量concat一起,经过Unet预测每一步生成的噪声,语音信息【./models/whisper/tiny.pt生成】作为一个条件机制加入到训练过程中。

1.2 Loss

L 1 L_1 L1​预测的隐向量和真实图片的隐向量的距离
L 2 L_2 L2​原图和生成图之间的差异

二、测试代码流程

2.1 main函数

总流程:

  • 输入视频/图片、音频
  • 对于音频,调用Audio2Feature类进行音频编码、分块(第i帧图片对应音频块[i-2,i+2])
  • 如果输入的是视频,分帧、提取提取人脸关键点、提取人脸边界框(手动mask人脸下半部分)
  • 模型生成每一帧图片
  • 裁剪图片与背景合成每一帧
  • FFmpeg 生成视频
def main(args):
    global pe
    if args.use_float16 is True:
        pe = pe.half()
        vae.vae = vae.vae.half()
        unet.model = unet.model.half()
    
    inference_config = OmegaConf.load(args.inference_config)
    print(inference_config)
#{'task_0': {'video_path': './data/video/yongen.mp4', 'audio_path': './data/audio/yongen.wav'}, 'task_1': {'video_path': './data/video/sun.mp4', 'audio_path': './data/audio/sun.wav', 'bbox_shift': -7}}

    for task_id in inference_config:
        video_path = inference_config[task_id]["video_path"]
        audio_path = inference_config[task_id]["audio_path"]
        bbox_shift = inference_config[task_id].get("bbox_shift", args.bbox_shift)

        input_basename = os.path.basename(video_path).split('.')[0]
        audio_basename  = os.path.basename(audio_path).split('.')[0]
        output_basename = f"{
     
     input_basename}_{
     
     audio_basename}"
        result_img_save_path = os.path.join(args.result_dir, output_basename) # related to video & audio inputs
        crop_coord_save_path = os.path.join(result_img_save_path, input_basename+".pkl") # only related to video input
        os.makedirs(result_img_save_path,exist_ok =True)
        
        if args.output_vid_name is None:
        #./results/yongen_yongen.mp4'
            output_vid_name = os.path.join(args.result_dir, output_basename+".mp4")
        else:
            output_vid_name = os.path.join(args.result_dir, args.output_vid_name)
        ############################################## extract frames from source video ##############################################
        #如果输入是一个视频,切帧
        if get_file_type(video_path)=="video":
            save_dir_full = os.path.join(args.result_dir, input_basename)
            os.makedirs(save_dir_full,exist_ok = True)
            #提取视频的每一帧,总帧数:帧率*时长s
            cmd = f"ffmpeg -v fatal -i {
     
     video_path} -start_number 0 {
     
     save_dir_full}/%08d.png"
            os.system(cmd)
            input_img_list = sorted(glob.glob(os.path.join(save_dir_full, '*.[jpJP][pnPN]*[gG]')))
            fps = get_video_fps(video_path)
        elif get_file_type(video_path)=="image":
            input_img_list = [video_path, ]
            fps = args.fps
        elif os.path.isdir(video_path):  # input img folder
            input_img_list = glob.glob(os.path.join(video_path, '*.[jpJP][pnPN]*[gG]'))
            input_img_list = sorted(input_img_list, key=lambda x: int(os.path.splitext(os.path.basename(x))[0]))
            fps = args.fps
        else:
            raise ValueError(f"{
     
     video_path} should be a video file, an image file or a directory of images")

        #print(input_img_list)
        ############################################## extract audio feature ##############################################
        #调用Audio2Feature类进行音频编码
        whisper_feature = audio_processor.audio2feat(audio_path)
        #对音频分块
        whisper_chunks = audio_processor.feature2chunks(feature_array=whisper_feature,fps=fps)
        ############################################## preprocess input image  ##############################################
        if os.path
数字人技术:相关论文汇总 Distangled face representation learning 单位/会议/时间 方法 摘要 MM 2022 MegaPortraits: One-shot Megapixel Neural Head Avatars, paper Talking Face Generation 单位/会议/时间 方法 摘要 – Awesome-Talking-Face: https://github.com/JosephPai/Awesome-Talking-Face 阅读详情

相关推荐

数字人声唇同步:MuseTalk模型在多语言实时面部动画中的应用“

生成网络的架构借鉴了 的 UNet stable-diffusion-v1-4,其中音频嵌入通过交叉注意与图像嵌入融合。使用与稳定扩散非常相似的架构,但 MuseTalk 的独特之处在于它不是扩散模型。Musetalk:是一个在潜在空间中训练的实时高质量音频驱动的口型同步模型ft-mse-vae,其中。总结:Musetalk有着较强的稳定性,可适应大幅度的人物动作进行推理,并且有着稳定的效果。⦁ 根据输入的音频,修改未见过的脸部,脸部区域的大小为256 x 256。⦁ 下载我们训练的权重。

dsdxsd12138的博客 1574

MuseTalk - 一键创建高质量数字人(对口型)一键整合包,大厂腾讯出品

​ MuseTalk 是由腾讯团队开发的先进技术,项目地址:https://github.com/TMElyralab/MuseTalk,它是一个实时的音频驱动唇部同步模型。该模型能够根据输入的音频信号,自动调整数字人物的面部图像,使其唇形与音频内容高度同步。

前沿AI资讯技术和应用 6246

MuseTalk如何生成高质量视频(使用技巧)

GPU:英伟达4070 12G。

本博客,博文仅代表个人操作经验,不能完全解决你的问题,仅供参考,佛系回复。 2132

数字人实战第一天——最新数字人MuseTalk效果展示

最新数字人MuseTalk效果展示,它是一个实时的音频驱动唇部同步模型。该模型能够根据输入的音频信号,自动调整数字人物的面部图像,使其唇形与音频内容高度同步。这样,观众就能看到数字人物口型与声音完美匹配的效果。MuseTalk 特别适用于256 x 256像素的面部区域,且支持中文、英文和日文等多种语言输入。在NVIDIA Tesla V100显卡上,MuseTalk 能够实现超过每秒30帧的实时推理速度。此外,用户还可以通过调整面部区域的中心点,进一步优化生成效果。

qq_34717531的博客 4996

kubernetes rook 安装 cephfs

ceph root kubernete osd uuid partuuid

天津托的博客 1543

从零开始:用ZEMAX设计双高斯照相物镜的完整流程(附55mm焦距实例)

本文详细介绍了使用ZEMAX设计双高斯照相物镜的完整流程,特别针对55mm焦距实例进行了深入解析。从初始结构选择、参数设置到优化策略和像质分析,逐步指导读者掌握这一经典光学设计方法。通过具体实例展示了如何实现卓越的像差校正,适用于35mm相机标准镜头等应用场景。

onion的博客 706

Chapter2、HDR流水线

HDR内容的获取(不同曝光时间的图片合成) 相机响应函数 HDR视频

qq_55621259的博客 2597

OTN传送网实战指南:从光层到电层的完整架构解析(附配置示例)

本文深入解析OTN传送网从光层到电层的完整架构,涵盖关键组件、技术实现及配置示例。通过高速公路与光传送网的类比,详细介绍了光层超宽传输管道构建、电层业务调度核心引擎以及控制平面智能运维实战。附有典型组网方案与故障排查指南,助力网络工程师高效部署与维护OTN传送网。

tomato的博客 683

【深度学习3】ubuntu22.04从零开始搭建深度学习环境

ubuntu22.04从零开始搭建深度学习开发环境

weixin_43387635的博客 1万+

yolov8 转华为昇腾om脚本

yolov8 转华为昇腾om脚本

jacke121的专栏 1601

SAP 费用化采购订单简介

费用性采购的核心特点费用性采购的流程费用性采购的优势适用场景业务场景前台操作1、创建成本中心---KS012、创建采购订单---ME21N3、采购订单审批---ME29N4、采购订单收货---MIGO5、查看成本中心费用---S_ALR_870136116、控制费用化的采购订单自动带出科目和成本中心SAP费用性采购(Expense Procurement)指的是企业在采购过程中,直接将采购的物料或服务成本计入费用科目,而不是记入库存账户的采购行为。

我小时候很黑的博客 2016

【YOLO11改进 - 注意力机制】SCSA通过结合空间注意力和通道注意力,提高各种下游视觉任务的性能。

【YOLO11改进 - 注意力机制】SCSA通过结合空间注意力和通道注意力,提高各种下游视觉任务的性能。

专注于图像领域,主要研究内容包括计算机视觉和深度学习,特别是在图像分类、目标检测和图像生成等方面有深入的研究和实践经验。 474

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

上一篇: 代码解析—part3 训练ADM—CVPR2023—Implicit Identity Leakage: The Stumbling Block to Improving Deepfake
下一篇: 面试真题:语音特征提取方式——为何要这样提取?
DeepLearning01
博客等级 码龄7年 242粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值