AI数字人:语音驱动面部模型及超分辨率重建Wav2Lip-HD

这篇具有很好参考价值的文章主要介绍了AI数字人:语音驱动面部模型及超分辨率重建Wav2Lip-HD。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 Wav2Lip-HD项目介绍       

数字人打造中语音驱动人脸和超分辨率重建两种必备的模型,它们被用于实现数字人的语音和图像方面的功能。通过Wav2Lip-HD项目可以快速使用这两种模型,完成高清数字人形象的打造。

项目代码地址:github地址

1.1 语音驱动面部模型wav2lip

语音驱动人脸技术主要是通过语音信号处理和机器学习等技术,实现数字人的语音识别和语音合成,从而实现数字人的语音交互功能。同时,结合人脸识别等技术,还可以实现数字人的表情和口型等与语音交互相关的功能。

AI数字人:语音驱动面部模型及超分辨率重建Wav2Lip-HD,AI数字人技术,人工智能,超分辨率重建,图像处理,深度学习

Wav2Lip模型是一个两阶段模型。

  • 第一阶段是:训练一个能够判别声音与嘴型是否同步的判别器;
  • 第二阶段是:采用编码-解码模型结构(一个生成器 ,两个判别器);

1.2 图像超分辨率模型Real-ESRGAN

超分辨率重建技术则主要用于数字人的图像处理,通过将低分辨率的图像进行处理,从而生成高分辨率的图像,从而实现数字人的图像交互功能。超分辨率重建技术可以应用于数字人的头发、皮肤、服装等细节部分的处理,使数字人更加真实和逼真。

AI数字人:语音驱动面部模型及超分辨率重建Wav2Lip-HD,AI数字人技术,人工智能,超分辨率重建,图像处理,深度学习

 Real-ESRGAN是腾讯ARC实验室发表超分辨率算法,目标是开发出实用的图像/视频修复算法。ESRGAN 的基础上使用纯合成的数据来进行训练,以使其能被应用于实际的图片修复的场景。

  • 提出一种高阶退化过程(high-order degradation process)来模拟实际退化,并利用 sinc 滤波器给训练图片添加 Ringing artifacts(振铃伪影,周围震荡波的感觉)和 Overshoot artifacts(过冲伪影,如白边)构造训练集
  • 用 U-net 而不是 VGG 作为 GAN 的 Discriminator,提高鉴别器能力并稳定训练动态
  • Real-ESRGAN 性能更优,效果更好
     

2 运行环境构建

2.1 annoconda安装

annoconda安装和使用详见:annoconda环境构建

2.2 运行环境准备

conda create -n wav2lip-hd python=3.9
conda activate wav2lip-hd

conda install ffmpeg

git clone https://github.com/saifhassan/Wav2Lip-HD.git
cd Wav2Lip-HD
rm -fr Real-ESRGAN
git clone https://github.com/xinntao/Real-ESRGAN.git

修改requirements.txt,修改下面两行:

vi requirements.txt
librosa==0.9.1
numba==0.56.4

安装依赖

pip install -r requirements.txt
pip install basicsr==1.4.2

2.3 模型文件下载

下载第一个预训练模型包:预训练模型1

下载完成后,将以下几个文件移动到 checkpoints文件夹下:

esrgan_yunying.pth,face_segmentation.pth,net_g_67500.pth,pretrained.state,s3fd.pth,wav2lip_gan.pth

移动后的通过命令查看显示如下:

 ll checkpoints/
总用量 1425200
-rw-r--r-- 1 root root  67040989 6月  19 17:14 esrgan_yunying.pth
-rw-r--r-- 1 root root  53289463 6月  19 17:14 face_segmentation.pth
-rw-r--r-- 1 root root  66919172 6月  19 17:14 net_g_67500.pth
-rw-r--r-- 1 root root 310688649 6月  19 17:15 pretrained.state
-rw-r--r-- 1 root root  89843225 6月  19 17:15 s3fd.pth
-rw-r--r-- 1 root root 435801865 6月  19 17:16 wav2lip_gan.pth

下载第二个预训练模型包:预训练模型2

下载完成后,将RealESRGAN_x4plus.pth文件移动到 Real-ESRGAN/weights/文件夹下,移动后命令行查看如下:

 ll Real-ESRGAN/weights/
总用量 65476
-rw-r--r-- 1 root root       54 6月  19 20:22 README.md
-rw-r--r-- 1 root root 67040989 6月  19 17:15 RealESRGAN_x4plus.pth

将detection_Resnet50_Final.pth,GFPGANv1.3.pth,parsing_parsenet.pth移动到

Real-ESRGAN/gfpgan/weights/文件夹下,移动完成后,命令行查看如下:

ll Real-ESRGAN/gfpgan/weights/
总用量 530728
-rw-r--r-- 1 root root 109497761 6月  19 17:14 detection_Resnet50_Final.pth
-rw-r--r-- 1 root root 348632874 6月  20 17:09 GFPGANv1.3.pth
-rw-r--r-- 1 root root  85331193 6月  19 17:14 parsing_parsenet.pth

2.4 修改模型地址(避免从公网下载):

vi Real-ESRGAN/inference_realesrgan.py 
if args.face_enhance:  # Use GFPGAN for face enhancement
        from gfpgan import GFPGANer
        face_enhancer = GFPGANer(
            model_path='https://github.com/TencentARC/GFPGAN/releases/download/v1.3.0/GFPGANv1.3.pth',
            upscale=args.outscale,
            arch='clean',
            channel_multiplier=2,
            bg_upsampler=upsampler)

修改为:

if args.face_enhance:  # Use GFPGAN for face enhancement
        from gfpgan import GFPGANer
        face_enhancer = GFPGANer(
            model_path='./gfpgan/weights/GFPGANv1.3.pth',
            upscale=args.outscale,
            arch='clean',
            channel_multiplier=2,
            bg_upsampler=upsampler)

 2.5 修改一行报错的代码:

vi Real-ESRGAN/realesrgan/__init__.py

 注释掉最后一行,注释后如下:

# flake8: noqa
from .archs import *
from .data import *
from .models import *
from .utils import *
#from .version import *

3 启动项目生成

3.1 上传文件

将demo.mp4放入input_videos 目录下

将demo.wav放入input_audios 目录下

3.2 更改run_final.sh文件

主要修改以下两行:

filename=demo
input_audio=input_audios/demo.wav

去除脚本最后一行ffmpeg前面的注释,并更改input_audios为input_audio

修改后的文件内容如下:

export filename=demo
export input_video=input_videos
export input_audio=input_audios/demo.wav
export frames_wav2lip=frames_wav2lip
export frames_hd=frames_hd
export output_videos_wav2lip=output_videos_wav2lip
export output_videos_hd=output_videos_hd
export back_dir=..

python3 inference.py --checkpoint_path "checkpoints/wav2lip_gan.pth" --segmentation_path "checkpoints/face_segmentation.pth" --sr_path "checkpoints/esrgan_yunying.pth" --face ${input_video}/${filename}.mp4 --audio ${input_audio} --save_frames --gt_path "data/gt" --pred_path "data/lq" --no_sr --no_segmentation --outfile ${output_videos_wav2lip}/${filename}.mp4
python video2frames.py --input_video ${output_videos_wav2lip}/${filename}.mp4 --frames_path ${frames_wav2lip}/${filename}
cd Real-ESRGAN
python inference_realesrgan.py -n RealESRGAN_x4plus -i ${back_dir}/${frames_wav2lip}/${filename} --output ${back_dir}/${frames_hd}/${filename} --outscale 3.5 --face_enhance
ffmpeg -r 20 -i ${back_dir}/${frames_hd}/${filename}/frame_%05d_out.jpg -i ${back_dir}/${input_audio} -vcodec libx264 -crf 25 -preset veryslow -acodec aac ${back_dir}/${output_videos_hd}/${filename}.mkv

注意1:ffmpeg命令中参数-acodec根据输入音频文件类型设置不同选项,

  • aac对应wav文件
  • copy对应mp3文件

参数错误会导致合成的视频中没有声音

注意2:参数-r为指定采样率,可以通过ffmpeg -i demo.mp4查看

3.3 启动生成模型

bash run_final.sh

3.4 生成结果

  • output_videos_wav2lip:wav2lip 模型生成的视频.
  • frames_wav2lip:wav2lip 模型生成的视频帧
  • frames_hd:Real-ESRGAN模型生成超分辨率视频帧.
  • output_videos_hd:生成的最终结果视频

3.5 结果展示

AI数字人:语音驱动面部模型及超分辨率重建Wav2Lip-HD,AI数字人技术,人工智能,超分辨率重建,图像处理,深度学习文章来源地址https://www.toymoban.com/news/detail-590748.html

到了这里,关于AI数字人:语音驱动面部模型及超分辨率重建Wav2Lip-HD的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Wav2Lip:深度解析、实现与应用AI数字人语音驱动模型

    Wav2Lip模型作为一种将音频波形转换为面部动画的深度学习技术的重要性。本文将深入探讨Wav2Lip模型的搭建原理、搭建流程以及应用场景,以期为读者提供更具技术深度的理解。 一、Wav2Lip的搭建原理 Wav2Lip模型的搭建基于生成对抗网络(GAN)的原理。GAN由两个主要部分组成:

    2024年03月09日
    浏览(67)
  • STM32驱动ST7735彩色屏幕(任意分辨率),驱动不了你来打我

    驱动方式 硬件SPI 适用STM32型号 带SPI的任意型号,驱动不了你来打我(内心OS:HAL真好) 特别提醒 以下内容介绍如何使用HAL方式驱动ST7735,所以默认 你已经了解并且会使用STM32CubeMX软件 (如果没有接触过的话建议先安装尝试一下再继续以下内容,不然有种囫囵吞枣的意思了)

    2023年04月15日
    浏览(63)
  • 高精度5米分辨率DEM数字高程数据

        ​5米分辨率DEM/DSM(无控),以多颗高分辨率卫星数据为原始数据,基于智能立体模型构建与点云密集匹配,利用网络分布式与多核并行计算技术,三维点云融合与地形提取技术,辅以智能化的人机交互编辑等手段,处理和制作5m×5m空间分辨率的数字地表模型(DSM)和数字

    2024年02月06日
    浏览(43)
  • STM32驱动ST7735彩色屏幕(任意分辨率),驱动不了你顺着网线来打我

    驱动方式 硬件SPI 适用STM32型号 带SPI的任意型号,驱动不了你来打我(内心OS:HAL真好) 特别提醒 以下内容介绍如何使用HAL方式驱动ST7735,所以默认 你已经了解并且会使用STM32CubeMX软件 (如果没有接触过的话建议先安装尝试一下再继续以下内容,不然有种囫囵吞枣的意思了)

    2023年04月23日
    浏览(50)
  • 超分辨率地震速度模型

    文献分享 原题目:Multitask Learning for Super-Resolution of Seismic Velocity Model 全波形反演(FWI)是估算地下速度模型的强大工具。与传统反演策略相比,FWI充分利用了地震波的运动学和动力特性,具有更高的精度和分辨率。近年来,低频和中频波数的FWI发展迅速,而高频FWI由于其计算

    2024年02月12日
    浏览(42)
  • 探秘GFPGAN:腾讯AI的超分辨率重建神器

    项目地址:https://gitcode.com/TencentARC/GFPGAN 在图像处理的世界中,提高低质量或模糊图片的清晰度一直是一项挑战。而今天,我们要介绍的就是来自腾讯ARC团队的开源项目——GFPGAN(Gated Frequency Priors Guided Generative Adversarial Networks)。这是一个基于深度学习的高精度超分辨率重建模

    2024年04月10日
    浏览(53)
  • HarmonyOS学习路之开发篇—AI功能开发(图像超分辨率)

    针对图片分辨率不足的问题,传统的解决方案是使用双线性或双三次插值的方法来放大图像;而针对图片压缩噪声的问题,传统的解决方案则是通过各种算法实现平滑、去噪。 本SDK使用智能的方法,基于深度神经网络,依托硬件的神经网络加速器,提供适用于移动终端的1x和

    2024年02月11日
    浏览(47)
  • AI数字人:基于VITS模型的中文语音生成训练

            VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)是一种结合变分推理(variational inference)、标准化流(normalizing flows)和对抗训练的高表现力语音合成模型。         VITS模型是韩国科学院在2021年6月提出的,VITS通过隐变量而非频谱串联起来语

    2024年02月11日
    浏览(38)
  • Unity之UI、模型跟随鼠标移动(自适应屏幕分辨率、锚点、pivot中心点)

    UI跟随鼠标移动, 当我们修改屏幕分辨率、锚点、pivot等参数时会动态自适应并始终让ui的pivot中心点位置跟随鼠标位置。同时脚本中包含3d物体跟随ui位置和3d物体直接跟随鼠标位置移动 在说功能原理之前我们需要先了解屏幕坐标、Canvas自适应、锚点、中心的特性和之间的关系

    2024年02月04日
    浏览(63)
  • 中科星图GVE(AI案例)——如何利用高分辨率0.5m影像进行建筑物提取

    高分辨率0.5m影像提供了详细的地表信息,特别适用于建筑物的提取。以下是一些利用高分辨率影像进行建筑物提取的方法: 预处理:在进行建筑物提取之前,需要对影像进行一些预处理。首先,根据影像质量,可以进行边缘增强、噪声去除等处理。其次,可以进行影像配准

    2024年02月21日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包