背景:2023年是生成式AI元年,本文讲解如何利用开源项目实现语音转视频。

目的:开源项目Wav2Lip介绍、编译、应用

效果图(右下角):

适合的领域:内容创作、教育、企业培训

特点:不要求本人出镜、原声。

一、开源项目Wav2Lip介绍

地址:Wav2Lip Github仓库地址

原理:

1.1 模型训练

训练数据源: LRS2 dataset

论文:Paper

特点:模型输入分为声音和图像,直接输出为唇部帧图。

1.2 代码实现

1,输入虚拟讲师的图片(或动态的视频)、语音,进行图像级别的opencv人脸识别、口唇识别。

2,输入讲者的音频原声,通过音频原声推理模型,生成动态口型。

3,通过视觉质量检查,模糊化背景重贴回原图,制作基于原图的视频动效。

4,利用ffmpeg集成音视频输出

二、项目编译

2.1 依赖安装

1,从官网下载FFmpeg

​ windows下载ffmpeg的EXE文件

2,配置环境变量

​ 系统环境变量添加ffmpeg 的指向,执行ffmpeg查看是否能够识别到环境配置

c:users>ffmpeg
ffmpeg version N-104695-g86a2123a6e-20211129 Copyright (c) 2000-2021 the FFmpeg developersbuilt with gcc 10-win32 (GCC) 20210610

3,安装VSCode 最新版

4,安装Python 3.8

2.2 准备项目

1,下载项目源码,并解压。

2,下载预生成的推理模型文件Link,拷贝到:checkpoints\wav2lip_gan.pth

3,下载预生成的人脸检测推理模型文件pre-trained model ,拷贝到:face_detection\detection\sfd\s3fd.pth

4,在源码根目录创建dist文件夹,保证有如下结构

目录 子文件夹 文件
dist checkpoints wav2lip_gan.pth
face_detection\detection\sfd s3fd.pth
results
temp

2.3 编译项目

在VSCode中运行以下指令:

pip install -r requirements.txt

如果本机环境缺少响应的库,请补充安装即可。

依赖环境安装完成后,运行如下命令:

python inference.py --checkpoint_path <ckpt> --face <video.mp4> --audio <an-audio-source>

其中,

  1. ckpt是wav2lip_gan.pth文件的相对路径
  2. video.mp4是虚拟讲师的人脸照片或视频全路径
  3. an-audio-source 是讲者的音频文件全路径。

三、生成EXE

必须:以管理员身份运行控制台

1,安装pipenv

cd [项目源码根目录]
pip install pipenv

2, 执行打包编译

#进入虚拟环境(上一步可省略,因为没有虚拟环境的话会自动建立一个)
pipenv shell
#安装模块
#pip install "opencv-python-headless<4.3"
pip install requests librosa==0.7.0 numpy==1.20.0 opencv-contrib-python>=4.2.0.34 opencv-python==4.1.2.30 torch==1.8.0 torchvision==0.9.0 tqdm==4.45.0 numba==0.48 face_detection
#打包的模块也要安装
pip install pyinstaller
#开始打包,依赖包因为是动态的__import__的,因此需要手动添加依赖模块hidden-import
pyinstaller -F --hidden-import face_detection.detection --hidden-import face_detection.detection.sfd inference.py

3,测试

cd dist
inference --checkpoint_path checkpoints\wav2lip_gan.pth --face D:\test\face.jpg --audio D:\test\audio.mp3

总结

通过源码编译,掌握利用生成AI,实现语音与口唇同步的方式播报视频,为其它功能集成。

可以考虑将生成的EXE文件,集成到其它应用中。

  • 性能方面:

​ 短音频要经过10S的时间,在CPU下;因写文档的条件限制,没有在GPU下进行测试。

  • 效果方面:

    1,卡通图像,口唇同步逼真。

    2,形象佳的模特图像,口唇同步逼真。

    3,笔者自创语言——胡说,口型同步逼真,没有试验猴子,估计效果也不错。

    4,专业销售带有肢体语言的短视频,口唇同步逼真。

TODO:

​ 项目源码从Python转C#,想了解转码思路,请参看之前的C# AI项目。

生成AI(一)—“智能讲师”口唇同步相关推荐

  1. 【重要】2022年有三AI实战课程讲师招募,只等你来!

    各位粉丝朋友们,本次是我们有三AI社区的讲师招募通知,非常重要,请对此感兴趣的仔细了解详情. 今年起,我们平台的课程内容将会以项目实战课为主,大家应该也看到我们最近的一些内容了,本次我们招募的,正是项 ...

  2. ai的智能发展不会超越人类_人工智能:超越炒作

    ai的智能发展不会超越人类 by George Krasadakis 通过乔治·克拉萨达基斯(George Krasadakis) 人工智能,超越炒作 (Artificial Intelligence ...

  3. 计算机视觉 马尔_基于视觉AI的智能车牌识别相机,识别更精准功能更强大

    原标题:基于视觉AI的智能车牌识别相机,识别更精准功能更强大 通常来说,车牌识别相机是通过对图像的识别判断从而完成车辆信息采集的,市面上常见的车牌识别相机大部分采用的是OCR识别和视觉AI智能识别. ...

  4. AI视频智能分析技术与应用(一)

    AI视频智能分析技术与应用(一) AI视频智能分析技术与应用(二) AI视频智能分析技术与应用(三) 一.什么是AI视频智能分析? 视频智能分析已渗透到生活生产中的方方面面.从生活中的刷脸支付.停车场 ...

  5. AI视频智能分析技术与应用(二)

    AI视频智能分析技术与应用(一) AI视频智能分析技术与应用(二) AI视频智能分析技术与应用(三) 二.AI视频智能分析有那些技术? 3.动作行为识别技术 动作行为识别是预测目标在当前时刻或一段时间 ...

  6. 实用级北斗+AI道路智能巡检系统,千寻驰观如何助力精细化公路养护决策

    目前我国公路总里程达528万公里,路网建设趋于饱和,路政工作由建设转向养护. 公路养护工作贯穿公路从建成通车后的全生命周期,侧重于对被破坏的部分进行修复,是为保持公路经常处于完好状态,防止其使用质量下 ...

  7. SchGAN:小学校园布局生成,建筑设计智能助手

    - AI小学校园布局生成助手 SchGAN(测试版) 小学校园的规划布局是方案设计前期确定深化方向的重要环节.一个合理的小学校园布局设计,既要考虑校园主要出入口的位置,教学楼.运动场.体育馆等功能布局 ...

  8. 千寻驰观测评:真正达到实用级别的北斗+AI道路智能巡检

    大规模道路养护时代,智能化应用需求呈现快速的增长趋势.作为道路智慧化的重要场景,道路智能巡检正在成为各地积极探索的新工具.根据赛文交通网的调研,当前道路智能巡检技术的应用以AI为主,整体处于早期阶段, ...

  9. ai物流智能调度 效率对比_人工智能在物流中:人工智能改变物流的5种方式

    ai物流智能调度 效率对比 A man who has been sleeping for twenty years and woke up in 2020 would find himself in ...

最新文章

  1. windows10下pip安装速度慢的解决办法
  2. oracle三种分区的方式,Oracle 分区表 总结大全(3)
  3. android 模拟来电广播,在Android模拟器上模拟来电
  4. 《大规模分布式系统架构与设计实战》
  5. hibernate级联操作详解
  6. redhat 9.0 mysql 配置_RedHat 9.0下Apache+PHP+MySQL服务器安装配置
  7. matlab窗函数带通滤波器,Matlab结合窗函数法设计数字带通FIR滤波器
  8. C++友元:友元函数、友元类和友元成员函数
  9. android实现计算器功能吗,安卓实现一个计算器的功能
  10. ubuntu jdk1.7升级到1.8
  11. 一些自己使用VS2015的心得
  12. mysql数据库root密码在哪个文件中_mysql数据库的root密码放在什么位置?
  13. 5个免费邮箱,10分钟临时邮箱,一定能用,持续更新
  14. 无法启动此程序 因为计算机中丢失msvcr71.dll,win7系统弹出对话框提示“msvcr71.dll丢失”如何解决...
  15. numpy 随机生成矩阵
  16. 变量的定义、类型、注释、拼接字符串、选择循环结构、读取文件
  17. 量价:2 量价基础扫描
  18. 网恋背后的骗局:那些被宰杀掉的猪!必看!
  19. 打印机可以打印不能扫描怎么弄_打印机无法扫描怎么解决 打印机无法扫描相关介绍【解决方法】...
  20. 易语言微凉模块oracle,穿透框架全智能填表微凉网页填表模块及源码

热门文章

  1. 大学生自学网python_适合大学生自学的网站?
  2. RT-ThreadBearPi 开发笔记 -- 小熊派基于RT-Thread使用ESP8266进行网络连接
  3. Vue电商项目-登录注册仿掘金可爱萌猫
  4. 怎么获取mysql的链接字符串_如何从数据库获取连接字符串
  5. 汇编语言学习(二)------指令系统与寻址方式
  6. jbig2转其它格式(支持png,pbm)
  7. 一篇玩转DOM,顺便上个百度热搜【收藏版】
  8. 为什么java打不开jsp_用tomcat部署web项目的时候,tomcat启动成功,但是却打不开项目的login.jsp页面 显示500错误...
  9. jQuery插件 - elevateZoom放大镜
  10. python安装lxml_python 安装lxml