生成AI(一)—“智能讲师”口唇同步
背景: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>
其中,
- ckpt是wav2lip_gan.pth文件的相对路径
- video.mp4是虚拟讲师的人脸照片或视频全路径
- 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(一)—“智能讲师”口唇同步相关推荐
- 【重要】2022年有三AI实战课程讲师招募,只等你来!
各位粉丝朋友们,本次是我们有三AI社区的讲师招募通知,非常重要,请对此感兴趣的仔细了解详情. 今年起,我们平台的课程内容将会以项目实战课为主,大家应该也看到我们最近的一些内容了,本次我们招募的,正是项 ...
- ai的智能发展不会超越人类_人工智能:超越炒作
ai的智能发展不会超越人类 by George Krasadakis 通过乔治·克拉萨达基斯(George Krasadakis) 人工智能,超越炒作 (Artificial Intelligence ...
- 计算机视觉 马尔_基于视觉AI的智能车牌识别相机,识别更精准功能更强大
原标题:基于视觉AI的智能车牌识别相机,识别更精准功能更强大 通常来说,车牌识别相机是通过对图像的识别判断从而完成车辆信息采集的,市面上常见的车牌识别相机大部分采用的是OCR识别和视觉AI智能识别. ...
- AI视频智能分析技术与应用(一)
AI视频智能分析技术与应用(一) AI视频智能分析技术与应用(二) AI视频智能分析技术与应用(三) 一.什么是AI视频智能分析? 视频智能分析已渗透到生活生产中的方方面面.从生活中的刷脸支付.停车场 ...
- AI视频智能分析技术与应用(二)
AI视频智能分析技术与应用(一) AI视频智能分析技术与应用(二) AI视频智能分析技术与应用(三) 二.AI视频智能分析有那些技术? 3.动作行为识别技术 动作行为识别是预测目标在当前时刻或一段时间 ...
- 实用级北斗+AI道路智能巡检系统,千寻驰观如何助力精细化公路养护决策
目前我国公路总里程达528万公里,路网建设趋于饱和,路政工作由建设转向养护. 公路养护工作贯穿公路从建成通车后的全生命周期,侧重于对被破坏的部分进行修复,是为保持公路经常处于完好状态,防止其使用质量下 ...
- SchGAN:小学校园布局生成,建筑设计智能助手
- AI小学校园布局生成助手 SchGAN(测试版) 小学校园的规划布局是方案设计前期确定深化方向的重要环节.一个合理的小学校园布局设计,既要考虑校园主要出入口的位置,教学楼.运动场.体育馆等功能布局 ...
- 千寻驰观测评:真正达到实用级别的北斗+AI道路智能巡检
大规模道路养护时代,智能化应用需求呈现快速的增长趋势.作为道路智慧化的重要场景,道路智能巡检正在成为各地积极探索的新工具.根据赛文交通网的调研,当前道路智能巡检技术的应用以AI为主,整体处于早期阶段, ...
- ai物流智能调度 效率对比_人工智能在物流中:人工智能改变物流的5种方式
ai物流智能调度 效率对比 A man who has been sleeping for twenty years and woke up in 2020 would find himself in ...
最新文章
- windows10下pip安装速度慢的解决办法
- oracle三种分区的方式,Oracle 分区表 总结大全(3)
- android 模拟来电广播,在Android模拟器上模拟来电
- 《大规模分布式系统架构与设计实战》
- hibernate级联操作详解
- redhat 9.0 mysql 配置_RedHat 9.0下Apache+PHP+MySQL服务器安装配置
- matlab窗函数带通滤波器,Matlab结合窗函数法设计数字带通FIR滤波器
- C++友元:友元函数、友元类和友元成员函数
- android实现计算器功能吗,安卓实现一个计算器的功能
- ubuntu jdk1.7升级到1.8
- 一些自己使用VS2015的心得
- mysql数据库root密码在哪个文件中_mysql数据库的root密码放在什么位置?
- 5个免费邮箱,10分钟临时邮箱,一定能用,持续更新
- 无法启动此程序 因为计算机中丢失msvcr71.dll,win7系统弹出对话框提示“msvcr71.dll丢失”如何解决...
- numpy 随机生成矩阵
- 变量的定义、类型、注释、拼接字符串、选择循环结构、读取文件
- 量价:2 量价基础扫描
- 网恋背后的骗局:那些被宰杀掉的猪!必看!
- 打印机可以打印不能扫描怎么弄_打印机无法扫描怎么解决 打印机无法扫描相关介绍【解决方法】...
- 易语言微凉模块oracle,穿透框架全智能填表微凉网页填表模块及源码
热门文章
- 大学生自学网python_适合大学生自学的网站?
- RT-ThreadBearPi 开发笔记 -- 小熊派基于RT-Thread使用ESP8266进行网络连接
- Vue电商项目-登录注册仿掘金可爱萌猫
- 怎么获取mysql的链接字符串_如何从数据库获取连接字符串
- 汇编语言学习(二)------指令系统与寻址方式
- jbig2转其它格式(支持png,pbm)
- 一篇玩转DOM,顺便上个百度热搜【收藏版】
- 为什么java打不开jsp_用tomcat部署web项目的时候,tomcat启动成功,但是却打不开项目的login.jsp页面 显示500错误...
- jQuery插件 - elevateZoom放大镜
- python安装lxml_python 安装lxml