LoginSignup
3
3

More than 1 year has passed since last update.

【2021年版】yukarinライブラリ Ubuntu Desktop 18.04 LTS 環境構築編

Last updated at Posted at 2021-07-06

最初に…。
わたしは他のLinuxやPythonは触った事がありますが、Ubuntuに関しては全くのド素人です。
数十回の試行錯誤の上に見つけた、ちゃんと動く環境が作れるパターンを、半分自分用メモとして記しておきます。
それから、これまでは誰にでもと言いつつも、実質技術者にしか難しかった訳ですが、もっと素人の方、あまりIT関係詳しくないVtuberの方にも読んでもらえるように意識して書きました。
一応、偶然行き着いたのでは無く、自分の環境では再現性がある事は確認済みです。

本家様
ディープラーニングの力で結月ゆかりの声になってみた
動画 : http://www.nicovideo.jp/watch/sm32724409
コード : https://github.com/Hiroshiba/become-yukarin

先駆者様
「ディープラーニングの力で結月ゆかりの声になる」ためのLinux環境構築
https://qiita.com/atticatticattic/items/575d71dab4ee716e4969

「ディープラーニングの力で結月ゆかりの声になる」環境構築【Ubuntu Server v18.10】
https://qiita.com/sakamotothogo/items/322012f1a462f27188bf

初めての「誰でも好きなキャラの声になれる」ディープラーニング声質変換環境構築【Ubuntu 18.04LTS】
https://qiita.com/BURI55/items/92ba127c7beb95b2b3f0

『Yukarinライブラリ』ためのLinux環境構築(CUDA10.1)【Ubuntu 18.04 LTS】
https://qiita.com/atticatticattic/items/8826a81badeea21a7175

使用ハード

OS : Ubuntu Desktop 18.04.5 LTS
CPU : Intel(R) Core(TM)i5-4670 CPU @ 3.40GHz x 4
GPU : GeForce GTX 1060 6GB/PCIe/SSE2
ストレージ: Intel SSD 80GB

※ CPUは試してみた所、かなり古いもの(貰い物のCore2Duo)でも一段階学習 -> 一段階テスト -> 二段階学習 -> 二段階テストまでできました。(リアルタイム変換は試してない)
※ GPUはGeForce GTXは必須なのです。AMDやCPU内蔵GPUではダメなのです。聞く所によるとGPUメモリ3.7GB以上は必須という事ですが、持ってなければ中古品で十分だと思います。

1.Ubuntuのインストール

現時点での最新のLTSはUbuntu Desktop 20.04.2.0 LTSですが、18.04.5 LTSを使用します。
ダウンロードサイトはこちらから↓
https://releases.ubuntu.com/18.04.5/

ダウンロードしたものをUSBメモリに書き込みます。
書き込みソフトはRufus辺りが有名です↓
https://rufus.ie/ja/

USBメモリからブートして、Ubuntu Desktop 18.04.5 LTS をインストールします。
最初の画面を一番下までスクロールをさせて日本語を選択、あとは各自の環境に合わせて選択してください。
間違えた操作をすると大切な環境を破壊してしまう事もあるので慎重に…。
もし、壊してしまっても責任は持てません。

2.Ubuntu基本設定

初回起動すると『Ubuntu 2x.xx.x LTS のアップグレードが利用可能です』というウィンドウが上がってきます。
アップグレードしないを選択。
更に『Ubuntu 2x.xx.x LTS へのアップグレードを拒絶』と表示。
OKを選択。
同じ頃に『Ubuntu 18.04のリリース後に、ソフトウェアがアップデートされました。今すぐインストールしますか?』というウィンドウが上がってきます。
こちらは今すぐインストールするを選択。
パスワードの入力を求められるので、最初のUbuntu自体のインストール時に設定したパスワードを入力。

インストールの進捗状況は横にあるタスクバーの【A】のアイコンを押すと表示されます。

そこそこ時間がかかるので、左下のアプリケーションを表示する(白●が3x3の9つ並んだアイコン)-> 設定 -> 電源管理を選択しブランクスクリーン5分からしないに変更します。

これで、インストール待ちの間に画面が消えて焦ることが無くなります。
この状態でソフトウェアの更新が終わるまで待ちます。
終わったらすぐに再起動を選択して、再起動します。

再起動が完了したらCtrl+Alt+Tを押します(アプリケーションを表示する -> 端末を選んでもよい)。
これで端末(そういうアプリ名)が起動します。
要するに他ではコマンドプロンプトとか、ターミナルと言われているものです。
後々、頻繁に使うのでタスクバーの端末のアイコンを右クリックして『お気に入りに追加』しておくと良いです。
以下、黒背景の所は端末に入力するコマンドです。

端末を起動したら、まず

sudo apt -y update

を実行。
次に

sudo apt -y upgrade

を実行します。
頭にsudoを付けて実行する場合、パスワードを求められる事があります。
これは管理者権限でプログラムを実行するという事を表します。
以下、パスワードを求められた時についての記述は省略します。
ちなみに-yはコマンド実行中にy/nの選択が出てきた場合、自動的にyを選択するという意味です。

必要なパッケージをインストール

  • ドライバのビルドに必要
sudo apt -y install build-essential
  • git clone等するのに必要
sudo apt -y install git
  • PyAudioに必要
sudo apt -y install portaudio19-dev
  • SSHサーバーのインストール(必要な場合)
sudo apt -y install openssh-server
  • その他、念の為
sudo apt -y install ffmpeg
sudo apt -y install sox

3.nVIDIAドライバのインストール

予め、nVIDIAのサイトからドライバをダウンロードしておきます。
ドライバなどダウンロードしたものは、homeディレクトリ直下のダウンロードに保存されてるものとして記事を進めます。
ドライバは以下から入手しました。
今回はバージョン: 418.113を使用します。
https://www.nvidia.com/ja-jp/drivers/unix/linux-amd64-display-archive/

次に最初からインストールされている互換ドライバ(nouveau)を無効化します。

nouveau無効化1

『blacklist-nouveau.conf』を編集します。

sudo nano /etc/modprobe.d/blacklist-nouveau.conf

下記の2行を追加。

blacklist nouveau
options nouveau modeset=0

nanoエディタの使い方は、
Ctrl+O -> Enter で保存。
Ctrl+X で終了します。
エディタについては色々派閥があるようで、ここは自分の好きなエディタで全然構いません。

nouveau無効化2

『nouveau_blacklist.conf』を編集します。

sudo nano /etc/modprobe.d/nouveau_blacklist.conf

下記の1行を追加。

blacklist nouveau

どちらか、片方でよいと思いますが、どっちが正解かわからないので両方編集します。
編集が終わったら再起動をします。
再起動後、解像度が640x480に変わります。

アクセス権変更

chmod +x ./ダウンロード/NVIDIA-Linux-x86_64-418.113.run

ドライバのインストールを開始します

sudo ./ダウンロード/NVIDIA-Linux-x86_64-418.113.run

Continue installatを選択
1レイヤー 1.png

OKを押下
1レイヤー 2.png

Install and oを選択
1レイヤー 3.png

Yesを選択
1レイヤー 4.png

OKを押下

端末が、入力可能な状態に戻ればドライバのインストール完了です。
再起動をします。
再起動後、解像度が元に戻ります。

アプリケーションを表示する -> 設定 -> 詳細 -> このシステムについてのグラフィックが変わっている事を確認します。
3Screenshot from 2021-07-05 17-37-45.png

nvidia-smi

も実行して、ドライバが正しくインストールされているか確認します。

4.CUDAのインストール

nVIDIAのサイトからCUDAをダウンロードします。
https://developer.nvidia.com/cuda-toolkit-archive

今回はCUDA Toolkit 10.1 update2を使う事前提に記事を進めます。
CUDA Toolkit 10.1 update2のリンクを開きます。
更に LINUX -> x86_64 -> Ubuntu -> 18.04 -> runfile(local) と開いていきます。

開いた先にあるwget https://~~~の1行を端末に張り付けて実行。
これでダウンロードが開始されhomeディレクトリに保存されます。
ダウンロードしたファイルをダウンロードディレクトリに移動。

アクセス権変更(念の為)

chmod +x ./ダウンロード/cuda_10.1.243_418.87.00_linux.run

CUDAのインストールを開始します(nVIDIAのサイトの2行目とほぼ同じ意味)

sudo ./ダウンロード/cuda_10.1.243_418.87.00_linux.run

↓下の画面でacceptと入力してEnter
画面が出るまで結構時間がかかります。
レイヤー 1.png

Driverのチェックを外して、Installを押します。
レイヤー 2.png
レイヤー 3.png

この後も、インストールが完了するまで、かなり時間がかかります。
WARNINGが出て、インストールが完了。
WARNINGですが、インストールは完了しているはずです。
レイヤー 4.png

homeディレクトリ直下にある隠しファイル.bashrcを編集します。

sudo nano .bashrc

↓キーを押し続け、一番最後に以下の文章を追記します。

export CUDA_PATH=/usr/local/cuda
export PATH=\$CUDA_PATH/bin:\$PATH
export CFLAGS=-I/usr/local/cuda/include
export LDFLAGS=-L/usr/local/cuda/lib64
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:\$LD_LIBRARY_PATH

編集が完了したら再起動をします。
再起動後、

nvcc -V

を実行してCUDAが正常にインストールされている事を確認します。
レイヤー 5.png

5.cuDNNのインストール

nVIDIAのサイトからcuDNNをダウンロードします。
ダウンロードにはデベロッパー登録が必要です。
https://developer.nvidia.com/cudnn-download-survey

ログインすると、ソフトウェア使用許諾契約の条件に同意するか英語で聞いてくるので、チェックを入れて同意します。
チェックを入れるといくつかリンクが表示されるので、Archived cuDNN Releasesを押します。
先の章でCUDA10.1をインストールしたので、CUDAは10.1、tensorflow-2.3を使用したいので、以下のリンク先の表を根拠にcuDNNの7.6系統を選びます。
https://www.tensorflow.org/install/source

Download cuDNN v7.6.5 (November 5th, 2019), for CUDA 10.1を押します。
リンクを押すと、また大量にリンクが表示されるのでLibrary for Windows, Mac, Linux, Ubuntu and RedHat/Centos(x86_64architecture)以下のcuDNN Runtime Library for Ubuntu18.04 (Deb)cuDNN Developer Library for Ubuntu18.04 (Deb)cuDNN Code Samples and User Guide for Ubuntu18.04 (Deb)の3つのファイルをダウンロードします。

ダウンロードしたファイルを何も無し、-dev付き、-doc付きと順番に実行していきます。

sudo dpkg -i ./ダウンロード/libcudnn7_7.6.5.32-1+cuda10.1_amd64.deb
sudo dpkg -i ./ダウンロード/libcudnn7-dev_7.6.5.32-1+cuda10.1_amd64.deb
sudo dpkg -i ./ダウンロード/libcudnn7-doc_7.6.5.32-1+cuda10.1_amd64.deb

これでインストール完了。

動作チェック

サンプルプログラムをHOMEディレクトリにコピーし、コピーしたディレクトリにカレントディレクトリを移動し、ビルドします。

cp -r /usr/src/cudnn_samples_v7/ $HOME
cd  $HOME/cudnn_samples_v7/mnistCUDNN
make clean && make

サンプルプログラムを実行します。

./mnistCUDNN

最後に『Test Passed!』と表示されれば、成功です。
レイヤー 6.png

6.node.jsのインストール

先ほどの作業でカレントディレクトリが変わってしまっているので、homeディレクトリに戻します。

cd ~

とりあえず、インストール。

sudo apt -y install nodejs npm

バージョンの確認を確認します。

nodejs -v
npm -v

かなり古いバージョンがインストールされていると思います。

バージョン管理ツールをグローバルにインストール。

sudo node install -g n

nodejsの最新のLTS版をインストール。

sudo n lts

古いnodejsはもう使わないのでを削除。

sudo apt remove --purge nodejs npm

削除が終わったら再起動をします。

npmをアップデート。

sudo npm install -g npm

再びバージョンを確認。

node -v
npm -v

いつ頃、この作業を行なったかによって表示されるバージョンは変わると思います。
とりあえず、最初のバージョンチェックより後のバージョンチェックの方がバージョンが上がっていれば大丈夫だと思います。
最後に関連パッケージのインストールします。

npm install command-line-args
npm install underscore.string
npm install underscore
npm install fs-extra
npm install ervy
npm install simple-statistics

7.Python3.7のインストール

Ubuntu Desktop 18.04 LTSにデフォルトでインストールされているのはPython3.6なので、Python3.7をインストールします。
あえて、Python3.7をインストールしましたが、Python3.6の方がもしかしたら良いかもしれません。

Python3.7をインストール。

sudo apt -y install python3.7

pythonpython3のシンボリックリンクを一度削除、pythonpython3のシンボリックリンクを両方ともPython3.7に付け替えます。
その後、pippython3.7-devをインストールします。

sudo rm /usr/bin/python /usr/bin/python3
sudo ln -s /usr/bin/python3.7 /usr/bin/python
sudo ln -s /usr/bin/python3.7 /usr/bin/python3
sudo apt -y install python3-pip python3.7-dev

python3のみシンボリックリンク削除、python3のシンボリックリンクをPython3.6に付け替えて元の状態に戻す。(Python3.6がシステムで使用されている為)

sudo rm /usr/bin/python3
sudo ln -s /usr/bin/python3.6 /usr/bin/python3

※注意 Python3.7のインストール開始から、ここまでの間に、もし、端末を閉じてしまった場合、Ubuntu本体や端末が起動しなくなる可能性があります。

pipの最新版を入手、インストール。

wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py

Pythonpipのバージョン確認。

python -V
pip -V

pythonは3.7.xに、pip20以上のバージョンになっていると思います。
シンボリックリンクの状態を確認。

ll /usr/bin/py*

/usr/bin/python -> /usr/bin/python3.7
/usr/bin/python3 -> /usr/bin/python3.6

出てきたリストの中に上記のものがあればOKです。

8.Pythonパッケージのインストール

pip install numba==0.48.0
pip install cupy-cuda101==5.4.0
pip install chainer==5.4.0
pip install librosa==0.6.3
pip install pysptk==0.1.18
pip install pyworld==0.3.0
pip install fastdtw==0.3.4
pip install matplotlib==3.1.3
pip install launchpadlib==1.10.6
pip install tensorflow-gpu==2.3.3
pip install tensorboard-chainer==0.5.3
pip install tqdm==4.61.1
pip install PyYAML==3.12
pip install pynput==1.7.3
pip install world4py==0.1.1
pip install PyAudio==0.2.11
pip install Pillow==8.2.0
pip install numpy==1.20.3

numpy 1.20.3tensorflow-gpu 2.3.3より後に入れるのがポイントです。
tensorflow-gpu 2.3.3のインストール条件にnumpy 1.16.0以上 1.19.0以下というものがあり、numpy 1.18.5が強制的にインストールされてしまいます。
numpy 1.20.3を後から入れる事によりnumpy 1.18.5上書きします。
numpy 1.20.3インストール時にtensorflow-gpu 2.3.3のインストール条件を満たさなくなるというエラーは出ますが、うちの環境では問題なく動いています。

9.終わりに

以上で環境構築編は終わりです。
後はgit cloneでyukarinライブラリを持ってきて、PYTHONPATHに指定すれば動くはずです。
もしかしたら、音声データ作成編、yukarinライブラリ起動編に続くかもしれません。
最後に……、サンプリングレート22050Hzの使用は、色々とトラブルを引き起こす可能性が高いのでお勧めしません。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3