注:原项目名叫Speech-Driven Animation,所以我这里就简称为SDA

开局一张图,后面自动编

  相信前段时间爆火的DeepNude(AI扒衣)让很多人惊掉了大牙,AI还能干这个?!如果你还不知道什么是DeepNude现在可以百度一下了,关注公众号“零基础爱学习”回复“DeepNude”也可以获取更多信息。

  现在长江后浪推前浪,一浪更比一浪强啊,来自伦敦帝国学院的iBUG小组近日开源了一个AI项目SDA(Speech-Driven Animation),只需要一张图片,唱歌说话视频自动生成!比如:

  施瓦辛格:

  

  开始说话:

  

  除了自动根据语音对口型,SDA还可以指定情绪,比如:

  开心:

  

  难过:

  

  如果只是介绍下SDA就太没意思了,所以各位喜爱学习的程序员们有福了,本文其实是一篇完整的SDA安装和使用指南!(耗时一周整理完成!)。虽然本文已非常详细,不过开始之前还是有一点小小的要求:

  1、必须要会用linux,熟悉Ubuntu最好

  2、必须要会编程,熟悉python更好

Ubuntu与基础环境

  使用SDA最大的坑就是操作系统一定要用Ubuntu!我一开始用centos来着,各种报错!换了Ubuntu各种顺利!比如项目需要用python3.6,而centos默认是2.7,安装的话一般会装3.8,结果就是不得行!必须是python3.6!项目也没啥文档,全靠自己摸索的!基础环境就两个重点:

  1、操作系统:Ubuntu(重要!)

    我下载的版本是这个“ubuntu-18.04.2-live-server-amd64.iso”

  2、python3.6(Ubuntu默认自带python3.6)

git与git lfs安装

  SDA项目发布在git,其中AI训练生成的数据包大概有2G左右,所以需要使用git lfs(大文件专用)来下载项目源码

  1、安装git

  sudo apt install git

  2、安装git lfs

  sudo apt install git-lfs

  sudo git init

  sudo git lfs install

依赖包安装

  SDA项目使用了大量的python扩展包,比如torch、scikit、opencv等等,这里我们先安装一些依赖包

  1、pip,先安装pip,后面一些依赖包需要使用pip

  sudo apt install python3-pip

  2、setuptools,安装python扩展包必备工具

  sudo apt install python3-setuptools

  3、一些建议先安装的包(文末附下载方式) 

  这几个包是安装SDA时会自动下载安装的,如果你发现下载比较慢的话(torch有600多M)可以试试先从百度云下载(文末附下载链接)自行安装。

  1)opencv

    sudo pip3 install opencv_python-4.1.0.25-cp36-cp36m-manylinux1_x86_64.whl

  2)torch

    sudo pip3 install torch-1.1.0-cp36-cp36m-manylinux1_x86_64.whl

  3)scikit

    sudo pip3 install scikit_image-0.15.0-cp36-cp36m-manylinux1_x86_64.whl

  4)scipy

    sudo pip3 install scipy-1.3.0-cp36-cp36m-manylinux1_x86_64.whl

  4、ffmpeg,SDA涉及视频操作,所以ffmpeg是必须安装的,这里我们直接从git获取安装包

    sudo git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg

  到下载的ffmpeg包中依次执行./configure、make、make install

安装SDA(speech-driven-animation)

  SDA安装包可以通过git lfs直接获取(2G左右),也可以从云盘下载(文末附下载链接)。这里演示的是从git lfs下载。

  1、获取SDA安装包

  sudo git lfs clone https://github.com/DinoMan/speech-driven-animation.git

  2、git会下载一个目录speech-driven-animation,进入该目录执行如下指令

  sudo python3 setup.py build

  sudo python3 setup.py install

  (会自动下载一些依赖包)

  SDA就算是安装好了,看似简简单单数个命令,却是辛苦一周试出来的啊!

依赖包安装2

  前面安装的几个依赖包只是SDA安装需要的,想要使用SDA来干活儿还得继续安装!

  1、libXrender

  sudo apt install libxrender1

  2、libSM

  sudo apt install libsm6

  3、torchaudio

  sudo pip3 install git+https://github.com/pytorch/audio@d92de5b  //下载并安装老版本的torchaudio

  (这里又是个坑,SDA需要torch和torchaudio,但是最新版torchaudio与torch有兼容性问题,所以需要使用老版本的torchaudio!)

  4、sox

  sudo apt install sox libsox-dev libsox-fmt-all

  (这里也是个坑,只有Ubuntu能正常安装sox,centos不得行!)

  5、torchvision

  sudo pip3 install torchvision

编写测试代码

  找到前面下载的speech-driven-animation目录,进入之,可以看到一个“example”目录,进入之,能看到audio.wav、image.bmp两个文件,是项目组提供测试的图片和音频文件,我们就在这里写一段测试代码:

  vi test.py  //然后输入下列代码: 

  import sda
  va = sda.VideoAnimator()
  vid, aud = va("image.bmp", "audio.wav")
  va.save_video(vid, aud, "/home/XXX(这里根据实际情况填写)/speech-driven-animation/example/test.mp4") //这里要写完整的路径,不要问为什么,反正不这么写就报错

  保存后使用下列指令测试:

  sudo python3 test.py

  运行成功了吗?是不是又卡主了...应该会提示:

  Downloading the face detection CNN. Please wait...

  Downloading the Face Alignment Network(FAN). Please wait...

  因为face_alignment这个扩展包的训练数据还没下载呢...你需要将:

  s3fd_convert.pth、2DFAN-4.pth.tar这两个文件放到“/home/XXX(这里根据实际情况填写)/.face_alignment/data/”目录下(可搜索.face_alignment找到此目录),文末附下载方式。

  好啦,现在再次执行测试:

  sudo python3 test.py

  没有报错的话,可以看看目录下是不是生成了一个test.mp4,赶紧下载到电脑上看看吧!

各种包下载方式

  因为很多包从git、pypi下载很慢,所以我这里提供了几个比较大的包、关键文件的百度云下载。关注公众号“零基础爱学习”,回复“SDA”获取下面的资料

  1、speech-driven-animation.tar.gz   SDA源码包,已包含了训练文件(2G)

  2、scipy-1.3.0-cp36-cp36m-manylinux1_x86_64.whl   SDA依赖包

  3、scikit_image-0.15.0-cp36-cp36m-manylinux1_x86_64.whl  SDA依赖包

  4、torch-1.1.0-cp36-cp36m-manylinux1_x86_64.whl  SDA依赖包

  5、opencv_python-4.1.0.25-cp36-cp36m-manylinux1_x86_64.whl  SDA依赖包

  6、s3fd_convert.pth、2DFAN-4.pth.tar  face_alignment训练文件

  7、audio-d92de5b97fc6204db4b1e3ed20c03ac06f5d53f0.zip  老版本的torchaudio

常见报错

  针对一些常见的报错现象,最后总结一下给大家

  1、ModuleNotFoundError: No module named 'setuptools'

  需要安装setuptools  sudo apt install python3-setuptools

  2、torchaudio/torch_sox.cpp:3:10: fatal error: sox.h: No such file or directory

  没有安装sox  sudo apt install sox libsox-dev libsox-fmt-all(需要是Ubuntu操作系统)

  3、RuntimeError: Failed to parse the argument list of a type annotation: name 'Optional' is not defined

  你可能是最新版torchaudio的受害者(新版torchaudio与torch间有bug),所以你需要的是老版本:sudo pip3 install git+https://github.com/pytorch/audio@d92de5b

  4、libSM.so.6: cannot open shared object file: No such file or directory

  缺包  sudo apt install libsm6

  5、ImportError: libXrender.so.1: cannot open shared object file: No such file or directory

  缺包  sudo apt install libxrender1

  6、_pickle.UnpicklingError: invalid load key, 'v'.

  如果你遇到这报错,最大的可能性是你直接在git上下载源码了吧,不得行的,项目使用了git lfs,所以需要使用lfs下载源码(将项目中的大文件一起下载了)

  先装git和git lfs:sudo apt install git、sudo apt install git-lfs、git init、sudo git lfs install

  再获取项目源码:git lfs clone https://github.com/DinoMan/speech-driven-animation.git

  7、Error: Failed to call git rev-parse --git-dir --show-toplevel: "fatal: not a git repository (or any of the parent directories): .git\n"

  git lfs install之前要先执行git init

  8、speech-driven-animation测试时没有视频文件输出

  va.save_video(vid, aud, "/home/XXX(这里根据实际情况填写)/speech-driven-animation/example/test.mp4") 这里需要填写完整的路径

  9、ModuleNotFoundError: No module named 'torchvision'

  缺少torchvision包  sudo pip3 install torchvision

  10、ModuleNotFoundError: No module named 'torchaudio'

  缺少torchaudio包  sudo pip3 install git+https://github.com/pytorch/audio@d92de5b

  11、ImportError: libsox.so.2: cannot open shared object file: No such file or directory

  没有安装sox,而且你可能正在使用非Ubuntu系统  sudo apt install sox libsox-dev libsox-fmt-all(需要是Ubuntu操作系统)

  12、ImportError: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found

  gcc版本低,而且你可能正在使用非Ubuntu系统。使用Ubuntu就没有这个问题。当然你也可以下载最新的gcc来安装...

  13、ImportError: /usr/local/lib/python3.6/site-packages/_torch_sox.cpython-36m-x86_64-linux-gnu.so: undefined symbol: _ZN2at19UndefinedTensorImpl10_singletonE

  还是sox的问题,而且你可能正在使用非Ubuntu系统,换用Ubuntu就没这个问题了

【零基础】speech driven animation中文安装使用指南的更多相关文章

  1. nodejs零基础详细教程1:安装+基础概念

    第一章 建议学习时间2小时  课程共10章 学习方式:详细阅读,并手动实现相关代码 学习目标:此教程将教会大家 安装Node.搭建服务器.express.mysql.mongodb.编写后台业务逻辑. ...

  2. node.js零基础详细教程(1):安装+基础概念

    第一章 建议学习时间2小时  课程共10章 学习方式:详细阅读,并手动实现相关代码 学习目标:此教程将教会大家 安装Node.搭建服务器.express.mysql.mongodb.编写后台业务逻辑. ...

  3. JavaWeb零基础入门-02 开发环境安装

    大家好!我又来了,上一篇我们讲了一些基础概念:Html.Web服务器.数据库.Http和JavaWeb三大组件,它们是什么,有什么作用,都有了初步的了解.接下来我们进入学习JavaWeb的第一步,开发 ...

  4. 【零基础】搞定zabbix安装

    一.前言 最近想做服务器压力测试,测试软件找到了,突然发现还没有很好的办法监控服务器运行情况,之前用过zabbix,所以想到说要不就用zabbix来监控服务器运情况,不过这次就要好好研究下zabbix ...

  5. [web建站] 优课急送《零基础快速学习建站》视频+课件【价值399元】

    [课程介绍]你想快速建一个网站出来吗?你想从什么都不懂到一两天出一个漂漂亮亮的站吗?你想完成领导交给你的任务找人建站吗?你想自己建站来创业吗?你想学会建站之后,利用给别人建站来赚钱吗?你想建一个跟某个 ...

  6. Android零基础入门第4节:正确安装和配置JDK, 高富帅养成第一招

    原文:Android零基础入门第4节:正确安装和配置JDK, 高富帅养成第一招 在前几期中总结分享了Android的前世今生.Android 系统架构和应用组件那些事.带你一起来聊一聊Android开 ...

  7. 【零基础】搞定LAMP(linux、apache、mysql、php)环境安装图文教程(基于centos7)

    一.前言 LAMP即:Linux.Apache.Mysql.Php,也就是在linux系统下运行php网站代码,使用的数据库是mysql.web服务软件是apache.之所以存在LAMP这种说法,倒不 ...

  8. Yaf零基础学习总结2-Yaf框架的安装

    接着上一篇文章<Yaf零基础学习总结1-Yaf框架简介>我们对Yaf框架有那么一个大概的了解了,但是对于程序员来说,那些文字都是表面的,他们最想的就是开始敲代码了.当然这也是学习Yaf框架 ...

  9. [原]零基础学习视频解码之安装ffmpeg

    写在文章前面:ffmpeg是一个开源的编解码框架,拥有很强大的功能.但是对于如果使用其来做开发呈现着严重两极分化,大神们讨论着高深的问题,大多数像我这样的小白连门都进不去.最近无意间领会了如何入门,现 ...

随机推荐

  1. SIP中From ,Contact, Via 和 Record-Route/Route

    转载:http://eadgar.blogbus.com/logs/374635.html 注意:以下内容适用于SIP消息中,在具体的应用环境中,例如IMS,每个消息头都有其他独特的意义,但不会和以下 ...

  2. Windows 软件使用

    1.CMD 1. 查看端口对应进程 netstat -ano|findstr "443" 2.通过PID 查找对应进程 tasklist|findstr “<PID号> ...

  3. maven 私服 nexus 安装

    1.去官方下载他的免费版,人民称为oss版(这一步自行百度去官网解决),官网:https://www.sonatype.com/ 2.下载好后,解压是两个文件夹: 3.配置环境变量:  4.安装生成w ...

  4. http GET 和 POST 请求的优缺点和误区

    (1)post更安全(不会作为url的一部分,不会被缓存.保存在服务器日志.以及浏览器浏览记录中) (2)post发送的数据更大(get有url长度限制) (3)post能发送更多的数据类型(get只 ...

  5. 基于Hadoop生态SparkStreaming的大数据实时流处理平台的搭建

    随着公司业务发展,对大数据的获取和实时处理的要求就会越来越高,日志处理.用户行为分析.场景业务分析等等,传统的写日志方式根本满足不了业务的实时处理需求,所以本人准备开始着手改造原系统中的数据处理方式, ...

  6. 【php设计模式】建造者模式

    <?php /** *建造者模式特点: * 1.客户端不必知道产品内部组成的细节,将产品本身与产品的创建过程解耦,使得相同的创建过程可以创建不同的产品对象. * 2.每一个具体建造者都相对独立, ...

  7. Jerry眼中的SAP客户数据模型

    本文Jerry将介绍八款SAP产品中的客户模型.希望您在阅读完本文之后,能对SAP客户模型设计的思路有一个最最粗浅的了解. 由于Jerry水平和精力所限,本文不会详细阐述这些产品里的客户模型设计细节, ...

  8. SAP成都研究院李三郎:SCP Application Router简介

    今天的文章来自李贝宁(Ben),SAP成都研究院的资深程序猿和架构师. 作为成都研究院里同时精通Java, JavaScript和ABAP这三门编程语言的数位同事之一,Ben曾经先后担任了成都CRM ...

  9. jQuery EasyUI简介

    jQuery EasyUI 是一个基于 jQuery 的框架,集成了各种用户界面插件. jQuery EasyUI是一组基于jQuery的UI插件集合体,而jQuery EasyUI的目标就是帮助we ...

  10. vue 之img的src是动态渲染时(即 :src=' ' )不显示 踩坑

    问题: <img :src="item.image ? `../../assets/image/${item.image}` : ''" alt="image&qu ...