使用数字人SadTalker创建免费AI主播

news2024/11/17 23:25:44

很有趣的GitHub项目SadTalker,它能够将一张图片跟一段音频合成一段视频,看起来毫无违和感,如果不仔细看,甚至很难辨别真假,预计未来某一天,一大波网红即将失业。

虽然这个项目目前的主要研究方向还是基于cuda的脸部训练,生成动态的视频,但如果能够接入语音服务,利用ChatGPT实时生成对话prompt,配合这个项目实时渲染动态视频,那么一个灵动的对话机器人就产生了。想想这两个月ai正在以可怕的速度进化,未来生命以数字形式留存,机械飞升不再是科幻小说才有的场景。

使用教程
SadTalker上手门槛低,对新手相当友好,按照我的步骤一步步进行将确保你能够正常玩转这个项目。

使用sadtalker的方式有两种:

第一种方式可以在stable diffusion上安装sadtalker插件,传送门:stable diffusion上安装数字人sadtalker插件-CSDN博客

第二种方式是跑源码,这是本文下面要展开讲的。

一、环境准备
1、安装 Anaconda
Anaconda 本身是一个python发行版本,它可以便捷获取包且对包能够进行管理,同时对环境可以统一管理。Anaconda包含了conda、Python在内的超过180个科学包及其依赖项。


Anaconda 与 Python 的区别在于,Anaconda 是一个发行版,提供了一组科学计算和数据分析的常用工具,而 Python是一种编程语言。Anaconda 是基于 Python 的,但它包含了许多 Python 库和工具,可以帮助开发者快速开始科学计算、数据分析和机器学习项目。


与 Python 的另一个区别是,Anaconda 还包含了一个叫做 conda 的包管理器,可以帮助开发者管理和部署 Python 库和工具。conda 可以帮助开发者在不同的环境中安装和使用 Python 库,并且可以方便地创建、复制和删除 Python 环境。

进入官网 anaconda,点击下载,然后按照提示安装即可,安装完成后,点电脑的开始按钮可以看到 Anaconda Prompt 的命令提示符程序,代表安装成功。

2、安装NVIDIA cuda-toolkit
项目基于 PyTorch,如果你的电脑使用了英伟达的显卡,那么建议你安装cuda-toolkit,以便充分发挥显卡进行机器训练的优势。非常不建议直接用CPU,速度会非常慢。

进入官网 cuda-toolkit,根据显卡的cuda版本号,选择对应版本的toolkit下载,然后按照提示进行安装即可,安装目录可自定义。

显卡cuda版本号可通过 nvidia-smi 命令查看。

然后选择对应版本的cuda-toolkit。

3、安装 visual studio c++ 模块
如果你是首次使用 PyTorch 的新手用户,那么建议你提前安装好visual studio c++ 模块,因为PyTorch依赖于dlib库。


dlib是一个跨平台的用C++编写的代码库,这个库的机器提供了很多学习算法和工具。由于dlib库需要c++编译器,所以建议提前安装 visual studio c++ 模块,否则会报错的。

进入官网 visualstudio,选择社区版下载,仅勾选使用C++的桌面开发 ,然后安装即可。

二、下载项目及训练模型
1、下载源码
进入项目主页 SadTalker,通过Git将源码clone下来,或者直接点DownloadZip手动下载。

2 、下载gfpgan模型
gfpgan是腾讯开源的人脸复原模型,用于解决如何从低分辨率低质量的真实图像中获得较好的先验知识,复原人脸图像的问题。它利用封装在预训练脸部GAN中的丰富多样的先验信息进行人脸盲修复。这种生成性面部先验(GFP)通过空间特征变换层被纳入到人脸恢复过程中

点击 GFPGANv1.4 即可下载,将下载好的模型放到项目中E:\ProgramData\openAI\SadTalker\gfpgan\weights\下,源码是不包含\gfpgan\weights\这个目录的,可以手动创建下。

3 、下载其它必要模型
进入 Releases 页面,选择最新版本的Assets,所有除源码以外的文件都进行下载。


下载完成后,放到 E:\ProgramData\openAI\SadTalker\checkpoints目录下,此外需要将hub.zip和BFM_Fitting.zip分别解压下,其他不用解压。源码不包含\checkpoints这个目录,需要手动创建下。

三、用 Anaconda 将项目跑起来
1、打开 Anaconda Prompt,设置pip源,并切换到项目目录


2、创建虚拟环境并安装依赖
首次运行需要通过conda create 命令创建运行环境,然后激活环境,然后下载依赖包。


以下命令执行过程中,可能会提示报错,根据报错提示下载相关的依赖即可。


如果是提示缺少dlib,那就非常考虑耐心了。由于dlib的安装需要相当长的时间,建议通过 pip install dlib -vvv 查看详细的安装进度,并且你要确保电脑不会因休眠而断网。

conda create -n sadtalker python=3.8

conda activate sadtalker

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

conda install ffmpeg

pip install -r requirements.txt
 
3、执行 conda info,复制GFPGANv1.4.pth到虚拟环境
根据 active env location 提示,找到虚拟环境的位置。

把源代码压缩包里面的:gfpgan\weights\GFPGANv1.4.pth 剪切到虚拟环境的 Lib\site-packages\gfpgan\weights 目录下

4、运行命令,生成视频
python inference.py --driven_audio E:\temp\sadtalker\input\1.wav --source_image E:\temp\sadtalker\input\1.jpg --result_dir E:\temp\sadtalker\output --still --enhancer gfpgan --full_img_enhancer gfpgan
1
其中 driven_audio 参数值要替换为 你的语音文件, source_image 参数值要替换为 你的图片, result_dir 参数值要替换为 你的资源输出目录。

这里是最后一步,可能会报错,如果出现 attempting to deserialize object on a cuda device but torch.cuda.is_available() is false.这样的报错。说明你没有正确安装GPU的cuda工具包,请返回安装NVIDIA cuda-toolkit 这一步进行安装,如有必要请升级显卡驱动。如果你确实没有英伟达的显卡,那么可根据报错提示,找到对应位置的源码,修改默认的device为cpu即可。

运行完成后,我们将看见一个栩栩如生的短视频。

后记
SadTalker项目迭代更新很快,目前已经对视频增加了水印,当然如果你有点程序基础,应该能研究出来怎么把那个水印给去掉。

另外由于迭代快,文字最后的命令可能会报错,如果你发现问题,欢迎到我评论区留言,我会尽快更新。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1526080.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HarmonyOS NEXT应用开发—图片压缩方案

介绍 图片压缩在应用开发中是一个非常常见的需求,特别是在处理用户上传图片时,需要上传指定大小以内的图片。目前图片压缩支持jpeg、webp、png格式。本例中以jpeg图片为例介绍如何通过packing和scale实现图片压缩到目标大小以内。 效果图预览 使用说明…

Vulnhub靶机:Kioptrix_Level1.3

一、介绍 运行环境:Virtualbox 攻击机:kali(192.168.56.101) 靶机:Kioptrix_Level1.3(192.168.56.109) 目标:获取靶机root权限和flag 靶机下载地址:https://www.vul…

大规模采集主流电商平台商品详情页获取商品详情,SKU,价格操作流程

taobao API 接入 参数说明 通用参数说明 参数不要乱传,否则不管成功失败都会扣费url说明 n/平台/API类型/ 平台:淘宝,京东等, API类型:[item_search,item_get,item_search_shop等]version:API版本key:调用key,测试key:test_api_ke…

【周赛】第385场周赛

🔥博客主页: A_SHOWY🎥系列专栏:力扣刷题总结录 数据结构 云计算 数字图像处理 力扣每日一题_ 【1】100212.统计前后缀下标对 100212. 统计前后缀下标对 Ihttps://leetcode.cn/problems/count-prefix-and-suffix-pairs-i/ 熟…

【解读】Gartner 2023 DevOps平台魔法四象限

2023年6月5日Gartner发布了DevOps平台魔法四象限洞察报告(Magic Quadrant for DevOps Platforms DevOps),Gartner指出,DevOps平台正在成为DevOps工具链的一种更简单的替代品,为组织提供一套整合的集成能力。软件工程领…

力扣Lc17--- 345.反转字符串中的元音字母(java版)-2024年3月18日

1.题目 2.知识点 注1: indexOf() 是 Java 中 String 类的方法之一,它用于查找指定字符或字符串在字符串中第一次出现的位置。如果找到了该字符或字符串,则返回它在字符串中的索引位置(从0开始),如果没有找…

【Linux下qt软件安装打包附带问题: dpkg: error processing package xxxx +解决方式+自我尝试+记录】

【Linux下qt软件安装打包附带问题: dpkg: error processing package xxxx 解决方式自我尝试记录】 1、前言2、实验环境3、问题说明4、我的努力与查到解决的方式(1)补充两个文件,让软件正常执行(2)尝试修复d…

Elasticsearch8.x版本Java客户端Elasticsearch Java API 如何并发修改

前言 并发控制,一般有两种方案,悲观锁和乐观锁,其中悲观锁是默认每次更新操作肯定会冲突,所以每次操作都要先获取锁,操作完毕再释放锁,适用于写比较多的场景。而乐观锁是默认每次更新操作都不会冲突&#…

51单片机学习笔记6 数码管显示

51单片机学习笔记5 数码管显示 一、动态数码管1. 动态数码管工作原理2. 工作过程3. 原理图(1)数码管及74HC245(2)74HC138译码器 4. 74HC245介绍(1)**功能**(2)**引脚**(3…

文件操作和异常处理1-读写文件

Python 之 lambda 函数完整详解 & 巧妙运用: https://blog.csdn.net/PY0312/article/details/88956795

jeecg启动Sentinel 一直是空白页面 解决办法用 外部 Sentinel SpringCloud之Sentinel概述和安装及简单整合

jeecg启动Sentinel 一直是空白页面 解决办法用 外部 Sentinel SpringCloud之Sentinel概述和安装及简单整合 文章目录 jeecg启动Sentinel 一直是空白页面 解决办法用 外部 Sentinel SpringCloud之Sentinel概述和安装及简单整合 Sentinel概述基本介绍 Sentinel安装下载地址: http…

Spring boot2.7整合jetcache方法缓存

前面的文章 我们讲了 spring boot 整合 jetcache 做基本字符串数据缓存 但是 我这里有个这样的逻辑 我的 domain 包下 有一个 book 属性类 里面就 id 和 name 属性 设置了 对应的 set get函数 和一个整体的构造函数 package com.example.javadom.domain;public class book {pr…

一些 AI 工具

AI 搜索:Phind,perplexity AI聊天大模型:chatgpt, kimi(国内可用,支持上传文件) AI 机器人:https://www.coze.com/ AI工具集;https://ai-bot.cn/#term-2 agent GPT&a…

Windows错误码2503

2503错误码通常出现在Windows系统中,指的是安装或卸载程序时遇到的错误。 2503错误码表示在安装或卸载程序时发生了一些错误,可能是由于权限不足或某些文件被占用等原因导致的。 解决这个的方法包括: 1.以管理员运行程序安装。 2.如果程序右…

批量缩放图片,按比例轻松调整,高效处理一键完成

在数字化时代,图片处理已成为我们日常生活和工作中不可或缺的一部分。无论是为了网页制作、社交媒体分享,还是为了打印照片、制作相册,我们都需要对图片进行各种调整和优化。其中,按比例缩放图片是一个常见的需求。 第一步&#…

在连续请求过程中,如何取消上次的请求?

前言 这个问题想必很多朋友都遇到过,我再详细说一下场景! 如 Boss 搜索框所示: 先输入1 再输入2 再输入3 再输入123 请求参数依次为:1 12 123 123123 请求参数通过右侧的 query 参数也可以看到,一共请求了四次。 不…

腾讯云优惠券领取的几种方法,助你降低云服务成本

随着云计算技术的广泛应用,越来越多的企业和个人选择使用云服务来降低运营成本、提高运营效率。腾讯云作为国内领先的云服务提供商,凭借其出色的性能、稳定性和安全性,赢得了广大用户的信赖。为了回馈用户,腾讯云经常推出各种优惠…

matlab simulink 工业汽轮机调节系统的模糊PID控制器设计

1、内容简介 略 72-可以交流、咨询、答疑 工业汽轮机调节系统的模糊PID控制器设计 工业汽轮机;调节系统;模糊PID;自调整论域 2、内容说明 略 摘要:针对汽轮机电、热栽荷存在不确定因素,简单的线性和非线性微分方程不能完全代表 实际调节系统&#…

数据库国产化探究及升级改造过程指导

一、背景 在信创“自主可控”的浪潮下,政企行业首当其冲,基于国产化信创的要求,本部门某业务后端应用也需要针对分析开源组件的风险和开源协议的商业应用限制;能用国产化替代的评估后尽可替代割接,本期针对传统数据库…

2024全新快递平台系统独立版小程序源码|带cps推广营销流量主+前端

2024全新快递平台系统独立版小程序源码|带cps推广营销流量主前端程序源码 程序介绍 快递代发快递代寄寄件小程序可以对接易达云洋一级总代 快递小程序,接入云洋/易达物流接口,支持选择快递公司,三通一达,极兔,德邦等&…