【零基礎】speech driven animation中文安裝使用指南

注:原項目名叫Speech-Driven Animation,因此我這裏就簡稱爲SDApython

 

開局一張圖,後面自動編linux

  相信前段時間爆火的DeepNude(AI扒衣)讓不少人驚掉了大牙,AI還能幹這個?!若是你還不知道什麼是DeepNude如今能夠百度一下了,關注公衆號「零基礎愛學習」回覆「DeepNude」也能夠獲取更多信息。c++

  如今長江後浪推前浪,一浪更比一浪強啊,來自倫敦帝國學院的iBUG小組近日開源了一個AI項目SDA(Speech-Driven Animation),只須要一張圖片,唱歌說話視頻自動生成!好比:git

  施瓦辛格:程序員

  

  開始說話:github

  

  除了自動根據語音對口型,SDA還能夠指定情緒,好比:編程

  開心:ubuntu

  

  難過:centos

  

  若是隻是介紹下SDA就太沒意思了,因此各位喜好學習的程序員們有福了,本文實際上是一篇完整的SDA安裝和使用指南!(耗時一週整理完成!)。雖然本文已很是詳細,不過開始以前仍是有一點小小的要求:ide

  一、必需要會用linux,熟悉Ubuntu最好

  二、必需要會編程,熟悉python更好

Ubuntu與基礎環境

  使用SDA最大的坑就是操做系統必定要用Ubuntu!我一開始用centos來着,各類報錯!換了Ubuntu各類順利!好比項目須要用python3.6,而centos默認是2.7,安裝的話通常會裝3.8,結果就是不得行!必須是python3.6!項目也沒啥文檔,全靠本身摸索的!基礎環境就兩個重點:

  一、操做系統:Ubuntu(重要!)

    我下載的版本是這個「ubuntu-18.04.2-live-server-amd64.iso」

  二、python3.6(Ubuntu默認自帶python3.6)

git與git lfs安裝

  SDA項目發佈在git,其中AI訓練生成的數據包大概有2G左右,因此須要使用git lfs(大文件專用)來下載項目源碼

  一、安裝git

  sudo apt install git

  二、安裝git lfs

  sudo apt install git-lfs

  sudo git init

  sudo git lfs install

依賴包安裝

  SDA項目使用了大量的python擴展包,好比torch、scikit、opencv等等,這裏咱們先安裝一些依賴包

  一、pip,先安裝pip,後面一些依賴包須要使用pip

  sudo apt install python3-pip

  二、setuptools,安裝python擴展包必備工具

  sudo apt install python3-setuptools

  三、一些建議先安裝的包(文末附下載方式) 

  這幾個包是安裝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

  四、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下載。

  一、獲取SDA安裝包

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

  二、git會下載一個目錄speech-driven-animation,進入該目錄執行以下指令

  sudo python3 setup.py build

  sudo python3 setup.py install

  (會自動下載一些依賴包)

  SDA就算是安裝好了,看似簡簡單單數個命令,倒是辛苦一週試出來的啊!

依賴包安裝2

  前面安裝的幾個依賴包只是SDA安裝須要的,想要使用SDA來幹活兒還得繼續安裝!

  一、libXrender

  sudo apt install libxrender1

  二、libSM

  sudo apt install libsm6

  三、torchaudio

  sudo pip3 install git+https://github.com/pytorch/audio@d92de5b  //下載並安裝老版本的torchaudio

  (這裏又是個坑,SDA須要torch和torchaudio,可是最新版torchaudio與torch有兼容性問題,因此須要使用老版本的torchaudio!)

  四、sox

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

  (這裏也是個坑,只有Ubuntu能正常安裝sox,centos不得行!)

  五、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」獲取下面的資料

  一、speech-driven-animation.tar.gz   SDA源碼包,已包含了訓練文件(2G)

  二、scipy-1.3.0-cp36-cp36m-manylinux1_x86_64.whl   SDA依賴包

  三、scikit_image-0.15.0-cp36-cp36m-manylinux1_x86_64.whl  SDA依賴包

  四、torch-1.1.0-cp36-cp36m-manylinux1_x86_64.whl  SDA依賴包

  五、opencv_python-4.1.0.25-cp36-cp36m-manylinux1_x86_64.whl  SDA依賴包

  六、s3fd_convert.pth、2DFAN-4.pth.tar  face_alignment訓練文件

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

 

常見報錯

  針對一些常見的報錯現象,最後總結一下給你們

  一、ModuleNotFoundError: No module named 'setuptools'

  須要安裝setuptools  sudo apt install python3-setuptools

  二、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操做系統)

  三、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

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

  缺包  sudo apt install libsm6

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

  缺包  sudo apt install libxrender1

  六、_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

  七、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

  八、speech-driven-animation測試時沒有視頻文件輸出

  va.save_video(vid, aud, "/home/XXX(這裏根據實際狀況填寫)/speech-driven-animation/example/test.mp4") 這裏須要填寫完整的路徑

  九、ModuleNotFoundError: No module named 'torchvision'

  缺乏torchvision包  sudo pip3 install torchvision

  十、ModuleNotFoundError: No module named 'torchaudio'

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

  十一、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操做系統)

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

  gcc版本低,並且你可能正在使用非Ubuntu系統。使用Ubuntu就沒有這個問題。固然你也能夠下載最新的gcc來安裝...

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

  仍是sox的問題,並且你可能正在使用非Ubuntu系統,換用Ubuntu就沒這個問題了

相關文章
相關標籤/搜索