最初に…。
わたしは他の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
**OK
**を押下
**端末
**が、入力可能な状態に戻ればドライバのインストール完了です。
**再起動**をします。
再起動後、解像度が元に戻ります。
**アプリケーションを表示する -> 設定 -> 詳細 -> このシステムについて
**のグラフィックが変わっている事を確認します。
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
**。
画面が出るまで結構時間がかかります。
**Driver
のチェックを外して、Install
**を押します。
この後も、インストールが完了するまで、かなり時間がかかります。
WARNINGが出て、インストールが完了。
WARNINGですが、インストールは完了しているはずです。
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.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.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
**python
とpython3
のシンボリックリンクを一度削除、python
とpython3
のシンボリックリンクを両方ともPython3.7
に付け替えます。
その後、pip
とpython3.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
**Python
とpip
**のバージョン確認。
python -V
pip -V
**pythonは3.7.x
に、pip
は20
**以上のバージョンになっていると思います。
シンボリックリンクの状態を確認。
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.3
をtensorflow-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の使用は、色々とトラブルを引き起こす可能性が高いのでお勧めしません。