LoginSignup
10
10

More than 3 years have passed since last update.

『Yukarinライブラリ』ためのLinux環境構築(CUDA10.1)【Ubuntu 18.04 LTS】

Last updated at Posted at 2019-06-02
注:Ubuntu19.04サポート切れのため"『Yukarinライブラリ』ためのLinux環境構築(RTX対応)【Ubuntu 19.04】" を Ubuntu 18.04 LTS 環境用にリライトしました。*
Ubuntu 20 LTS へのインストールをする場合は、コマンドを変更・手順変更が必要です。
Windows の WSLのUbuntuでは動きません!!

1. 概要

Ubuntu 18.04 LTS にて、「ディープラーニングの力で結月ゆかりの声になってみた」のコードを実行するための環境構築の方法を紹介します。
RTX2000シリーズGPU対応のため、CUDA 10.1 をインストールします

GPUがない or Linux PCがない 人向け
Google Colaboratory でも学習できました!
GPUがなくても、Google Colaboratory で結月ゆかりの声になりたい

「ディープラーニングの力で結月ゆかりの声になってみた」について
ヒホ氏が作成した、音質変換ソフトです。
- 動画 : http://www.nicovideo.jp/watch/sm32724409
- コード : https://github.com/Hiroshiba/become-yukarin

過去バージョンのインストール方法記事
・ Ubuntu v18.10 : @sakamotothogo
「ディープラーニングの力で結月ゆかりの声になる」環境構築【Ubuntu Server v18.10】

・Ubuntu v17.10 : @atticatticattic
「ディープラーニングの力で結月ゆかりの声になる」ためのLinux環境構築【Ubuntu 17.10】

インストール後の使い方
インストール後の音声変換のやり方は下記を参照願います。
「ディープラーニングの力で結月ゆかりの声になる」ための基礎知識とコマンド操作

参考記事
Ubuntu 18.04へのCUDAインストール方法
「ディープラーニングの力で結月ゆかりの声になる」環境構築【Ubuntu Server v18.10】

本記事を参考に環境構築していただいた記事
初めての「誰でも好きなキャラの声になれる」ディープラーニング声質変換環境構築【Ubuntu 18.04LTS】
環境構築で躓きやすかったところや、自分の記事では補足しきれなかった内容などを書いていただいております!

補足 : ストレージサイズ
本気でやりこむと、かなり容量を食うので、1TBほどあった方が安心です。

2. 基本環境ソフト・環境設定

2.1 基礎ソフト

ssh、エディタ、ビルド環境をまとめてインストール

sudo apt install openssh-server emacs vim build-essential git

音声処理系

sudo apt install ffmpeg sox

2.2 設定

timezone を変更

ローカライズされていない Ubuntu Server の場合、時刻が UTC(協定世界時間)になっているので日本時間に変更。

sudo timedatectl set-timezone Asia/Tokyo

IP 固定設定(SSHなどでIP固定したい場合参考にしてください)

IP固定(必須ではありません)

自分は ssh や sftp で Linuxマシンにアクセスすることが多いので、IPを固定しました。
もし、必要であれば下記記事を、参考に設定してください。
- https://kusomemo.tokyo/tech/ubuntu1904-ipaddress-settei/
- https://qiita.com/shibata_wk/items/a4ae8999c2b6a801113c

自分の設定(設定例)
注: 空白部分にはインデント(タブ)は使わずに全てスペースで埋めてください。

  • 固定IP : 192.168.0.202
  • ローカルネットワーク : 192.168.0.0/24 ("/24" : ネットマスク 255.255.255.0)
  • ゲートウェイ(ルータ) : 192.168.0.1
  • DNS サーバ : 8.8.8.8
/etc/netplan/50-cloud-init.yaml
# This file is generated from information provided by
# the datasource.  Changes to it will not persist across an instance.
# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
    ethernets:
        enp10s0:
            dhcp4: false
            addresses: 
              - 192.168.0.202/24
            gateway4: 192.168.0.1
            nameservers:
                addresses:
                  - 8.8.8.8
    version: 2

2.3 python(pyenv)の インストール

Python はバージョン管理ソフトのpyenvを使用してインストールしました。

become-yukarin リポジトリでの実行には python 3.6.3が推奨されていますが、ubuntu で apt-get install pythonを実行すると python 2.X系がインストールされてしまうので、pyenvを使います。

pyenv をインストール

インストールコマンド

git clone git://github.com/yyuu/pyenv.git ~/.pyenv

ryenvの環境設定

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n  eval "$(pyenv init -)"\nfi' >> ~/.bashrc

source ~/.bashrc

確認
which コマンドで pyenv のパスが/home/[user_name]/.pyenv/bin/pyenv になっていることを確認してください。

ユーザ名 : attic の場合

which pyenv
> /home/attic/.pyenv/bin/pyenv

pyenv を使って python をビルド

Python ビルド用ソフト一式をインストール

sudo apt install -y gcc make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev

ビルド & 使用する Pythonバージョンを指定

become-yukarin 推奨バージョンである version 3.6.3 をインストールします。

pyenv install 3.6.3
pyenv global 3.6.3

下記のように確認できれば成功です。

python --version
> Python 3.6.3

3 ディープラーニング実行環境の設定

3.1 CUDA Toolkit 10.1 のインストール

インストール用の作業ディレクトリを作り、移動します。

mkdir nvida_driver
cd nvida_driver

インストールファイルのURL取得 & ダウンロード

Nvidia の CUDA Toolkit 10.1 のページからインストールコマンドを確認して、記載してあるインストールコマンド実行します。

Linux -> x86_64 -> Ubuntu -> version 18.10 -> installer Type -> dev(network) を選択するとコマンドを確認できます

スクリーンショット 2020-11-22 14.57.49.png

補足
URLは記事作成時点でのものです。変更されている可能性があるので、念のため上記手順でURLを取得してください。

インストールコマンド

ウェブサイトに表示されているインストールコマンドを実行。

wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1810/x86_64/cuda-repo-ubuntu1810_10.1.168-1_amd64.deb

sudo dpkg -i cuda-repo-ubuntu1810_10.1.168-1_amd64.deb
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1810/x86_64/7fa2af80.pub
sudo apt-get update
sudo apt-get install cuda
sudo reboot

最後に、インストールしたドライバーを反映するためにリブートします。

その後、~/.bashrc の末尾に下記設定を書き加えます。

echo 'export PATH="/usr/local/cuda/bin:$PATH"' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH="/usr/local/cuda/lib64:$LD_LIBRARY_PATH"' >> ~/.bashrc 

source ~/.bashrc

nvida-smiで動作確認

CUDA Version は 11.1 となっていますが、問題ないそうです。

attic@deeplearning:~$ nvidia-smi 
Sun Nov 22 15:40:39 2020       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 450.80.02    Driver Version: 450.80.02    CUDA Version: 11.0     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  GeForce GTX 1070    Off  | 00000000:01:00.0 Off |                  N/A |
|  0%   46C    P0    33W / 200W |      0MiB /  8116MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+


3.2 cuDNN 7.6.X のインストール

CUDA 10.1 に対して、 cuDNN 7.6.X をインストールします。
become-yukarin リポジトリの推奨バージョンがわかりませんが、cuDNN 7.6.5 で動作確認できています。

インストール用の .deb ファイルは下記のURLから、ファイル名から該当するファイルを見つけます。
命名規則は [cuDNN Ver]+[cuda version]のようです。

https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64

ファイルURLを調べたら、wget を使ってダウンロードして
このURLも必ず確認してください

echo "deb https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64 /" | sudo tee /etc/apt/sources.list.d/nvidia-ml.list
sudo apt update

wget https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/libcudnn7_7.6.5.32-1+cuda10.1_amd64.deb
sudo apt install ./libcudnn7_7.6.5.32-1+cuda10.1_amd64.deb 

wget https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/libcudnn7-dev_7.6.5.32-1+cuda10.1_amd64.deb
sudo apt install ./libcudnn7-dev_7.6.5.32-1+cuda10.1_amd64.deb

4 become-yukarin 設定

pipfreeze のファイルから、使用するライブラリ一式をインストールします。
最新のライブラリを使用するとAPIがなくなったりしているので、動作確認できているライブラリを使用するためです。

git hub にアップした pipfreeze をダウンロードして pip install を実行。
numba, cython の2つは先にインストールしないとエラーが出るので、先に実行する。

wget https://raw.githubusercontent.com/YoshikazuOota/yukarinlib_pipfreez/main/ubuntu18.pip.freeze

pip install --upgrade pip
pip install numba==0.44.0
pip install cython==0.29.21
pip install -r ubuntu18.pip.freeze

pythonを対話モードで実行して下記のコマンドを実行してください。
python だけを実行すると対話モードになりますので、下記をコピペしてください。
下記コマンド & 実行結果が表示されれば、大抵OKです。

import chainer
import cupy as cp
a = cp.array([1,2,3])
b = cp.array([2,3,5])
a + b
> array([3, 5, 8])
quit()

旧記事のライブラリインストール手順

4.1 pip でライブラリインストール

git clone https://github.com/Hiroshiba/become-yukarin.git
cd become-yukarin

pip install --upgrade pip
pip install -r requirements.txt
pip uninstall cupy
pip install cupy-cuda101

pip install -r requiremets.txt を実行すると cupy がインストールされるが、CUDA 10.1をインストールしたの cupy-cuda101に入れ替える。

補足: 一応、上記コマンドでインストールできるが、cupyのインストールは時間がかかるので、requiremets.txt から削除しても良い。

4.2 requiremets.txt 以外のライブラリをインストール

pip install tqdm

補足: 最新リポジトリでは tqdm は requiremets.txt に含まれました。

4.3 バージョン依存ライブラリの再インストール

pip install numpy==1.16.2
pip install chainerui==0.3
pip install tensorboard-chainer==0.4.0

補足: 最新リポジトリではpip install chainerui==0.3 は必要なくなりました(chaineruiのバージョンによって動かない場合があるようなので、はやりバージョン指定をしておいてください)

4.3 cupy の動作確認

pythonを対話モードで実行して下記のコマンドを実行してください。
python だけで Enter すると対話モードになりますので、下記をコピペしてください

import chainer
import cupy as cp
a = cp.array([1,2,3])
b = cp.array([2,3,5])
a + b
> array([3, 5, 8])
quit()

4.4 WORLD4py のインストール

2019/6/5 に 待望の pip 対応されました。下記コマンドでインストールできます。

pip install world4py

WORLD4py だけはpipからインストールできないのでソースからインストールする。
※下記コマンドでも、インストール可能です。

git clone https://github.com/yamachu/WORLD4py
cd WORLD4py
python setup.py install

4.5 ついでに、PYTHONPATH を設定

忘れやすいので、合わせてPYTHONPATHを設定しましょう!
ディレクトリ移動した場合は~/.profileを開いてパスを変更するのを忘れずに(私もよくここで引っかかります...)!


cd [become-yukarin のディレクトリ]
echo "export PYTHONPATH=\"`pwd`\"" >> ~/.bashrc

source ~/.profile

4.6 (参考)pythonで使用しているライブラリ一覧

もし、become-yukarin がうまく動かない場合は、ライブラリのバージョンを下記に合わせることで動くかもしれません。

$ pip list
Package           Version
----------------- -------
alembic           1.0.10 
APScheduler       3.6.0  
audioread         2.1.8  
chainer           6.0.0  
chainerui         0.3.0  
Click             7.0    
cupy-cuda101      6.0.0  
cycler            0.10.0 
Cython            0.29.9 
decorator         4.4.0  
fastdtw           0.3.2  
fastrlock         0.4    
filelock          3.0.12 
Flask             1.0.3  
gevent            1.4.0  
greenlet          0.4.15 
itsdangerous      1.1.0  
Jinja2            2.10.1 
joblib            0.13.2 
kiwisolver        1.1.0  
librosa           0.6.3  
llvmlite          0.29.0 
Mako              1.0.10 
MarkupSafe        1.1.1  
matplotlib        3.1.0  
msgpack           0.6.1  
numba             0.44.0 
numpy             1.16.2 
pip               19.1.1 
protobuf          3.7.1  
pyparsing         2.4.0  
pysptk            0.1.17 
python-dateutil   2.8.0  
python-editor     1.0.4  
pytz              2019.1 
pyworld           0.2.8  
resampy           0.2.1  
scikit-learn      0.21.2 
scipy             1.3.0  
setuptools        28.8.0 
six               1.12.0 
SQLAlchemy        1.3.4  
structlog         19.1.0 
tqdm              4.32.1 
typing            3.6.6  
typing-extensions 3.7.2  
tzlocal           1.5.1  
Werkzeug          0.15.4 
world4py          0.1 

最後に

早速、試したい方は下記のコマンド解説編を参考にしてください。

「ディープラーニングの力で結月ゆかりの声になる」ための基礎知識とコマンド操作

インストール時にトラブルがあった場合は、コメントいただければ、わかる範囲でお答えできます。

それでは、楽しい音声変換を!

10
10
8

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
10
10