はじめに
windows環境で音声合成の学習を回したい人向けの記事です。
windowsで別の作業をやりながら学習が回せます。
1. WSL2をインストールする
こちらのページの手順に従って進めていきます。
1.1 管理者権限でPowerShellを起動
デスクトップ画面左下にある検索バーに「powershell」と入力して、
「管理者として実行する」をクリックします。
するとタスクバーに管理者マークのタブが出てくるのでこれをクリック
「はい」をクリックして、PowerShellを管理者権限で開きます。
するとこのような画面が出てきます。
1.2 インストールコマンドを実行
PowerShellに
wsl --install
と入力してエンターキーを押します。
実行が完了するとこのような画面になります。
機能を有効化するには、pcを再起動する必要があるので、再起動します。
1.3 WSLのバージョン確認
PCを再起動したら、左下の検索バーで「powershell」と入力し、そのままエンターキーを押して、通常モードでPowerShellを起動します。
PowerShellが起動したらwsl -l -v
と打ち込んでエンターキーを押します。
VERSIONの下の数字が2であればOKです。
バージョンが2ではなかった場合
バージョンが2ではなかった場合は、wsl --set-default-version 2
と入力してエンターキーを押します。
そして再度wsl -l -v
と入力してエンターキーを押して、バージョンが2と表示されればOKです。
1.4 windowsのバージョン確認
※2022/03/20追記
windowsのバージョンが21H2以上でないとcudaがうまく動かないので、以下のように
winver
と入力してエンターを押して、windowsのバージョンを確認してください。
バージョンが21H1以下だった場合、アップデートして再起動してください。
1.5 Ubuntuのセットアップ
1.3 WSLのバージョン確認と同様に、通常モードでPowerShellを起動します。
PowerShellが起動したら、Ubuntu
と打ち込んでエンターキーを押します。
すると、Installing, this may take a few minutes...
と表示されるので、インストールが完了するまでしばらく待ちます。
エラーが出てUbuntuが起動できないとき
このようなエラーが出てUbuntuが起動できない場合、BIOSの設定を変える必要があります。 CPUの仮想化が無効になっているのを、有効にしなければなりません。WslRegisterDistribution faild with error: 0x80370102
Error: 0x80370102 ?????????????????????????????????????
以下は、WSLのインストール手順の過程で出たエラーの対処の記録です。
BIOSは人によって違うと思いますので、そこは各自調べていただけると幸いです。
参考サイトを張っておきます。
http://intint000.blog96.fc2.com/blog-entry-2072.html
_1 PCを再起動してBIOSを起動する
起動するときに「del」キーを押しっぱなしにして、BIOS画面を表示させます。
起動するとこのような画面になります。(使ってるマザーボードによって異なります)
_2 Advancedの項目に切り替える
_3 OCの項目を選択
_4 CPUの機能を選択
_5 SVM Modeを有効にする
_6 BIOSを閉じて起動する
これでPowerShellでUbuntuと入力すると起動するはずです。
インストールが完了すると、ユーザーネームの入力が求められます。
好きな名前を設定してください。
名前を設定すると、次にパスワードの設定を求められます。
パスワードを打ち込んでも何も表示されず、困惑してしまうかもしれませんが、
これは仕様です。何も表示されていなくてもちゃんと入力は受け取っています。
確認のため、もう一度パスワードの入力を求められます。
間違えないようにもう一度同じパスワードを打ち込みましょう。
パスワードを再入力して、
このような表示が出たらセットアップ完了です。
2. CUDA WSL-Ubuntu版をインストールする
※これはNvidia製のGPU環境用の項目です。ESPNetはCPUでの学習もできますが、時間がかかるのでGPUを導入することを推奨します。
参考サイト:https://takake-blog.com/wsl-nvidia-cuda/
2.1 windowsにNvidia driverがインストール済みか確認
※2022/03/20追記
PowerShellを開いて、
nvidia-smi
と入力してエンター。
以下の画像のように表示されればOKです。
画像のように表示されない場合は、こちらからドライバをダウンロード、インストールしてください。
2.2 インストールコマンドの実行
PowerShellのまま作業をしてもいいのですが、謎の背景などで見ずらいので、一旦PowerShellを閉じます。
そして、左下の検索バーでubuntu
と入力してエンターキーを押します。
起動するとこのような画面になります。
この後の手間を省略するために、一旦sudo echo test
と入力してエンター。
すると、パスワードの入力を求められるので、4. Ubuntuのセットアップの項で設定したパスワードを入力してエンター。
するとこのようにtest
と表示されるはずです。
CUDAのインストールコマンドを以下に示します。(参考:https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&Distribution=WSL-Ubuntu&target_version=2.0&target_type=deb_local)
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/11.6.1/local_installers/cuda-repo-wsl-ubuntu-11-6-local_11.6.1-1_amd64.deb
sudo dpkg -i cuda-repo-wsl-ubuntu-11-6-local_11.6.1-1_amd64.deb
sudo apt-key add /var/cuda-repo-wsl-ubuntu-11-6-local/7fa2af80.pub
sudo apt-get update
sudo apt-get -y install cuda
echo "wsl ubuntu cuda toolkit is installed"
このコマンドをUbuntuのウィンドウにコピペしてください。
※ペーストはctrl+V
ではなく右クリックです。
インストールが終わったら、以下のコマンドで確認します。
apt show cuda
と入力してエンター。
3. Nvidia CUDA Compilerをインストールする
※これはNvidia製のGPU環境用の項目です。ESPNetはCPUでの学習もできますが、時間がかかるのでGPUを導入することを推奨します。
以下のコマンドを実行します。
sudo apt install nvidia-cuda-toolkit -y
インストールが完了したら、nvcc -V
と入力してエンターで確認。
このように表示されればOKです。
4. ESPNetの環境構築
公式ドキュメント:https://espnet.github.io/espnet/installation.html
まず、ESPNetの環境構築をするうえで必要なパッケージをインストールします。
sudo apt install make g++ unzip -y
と入力してエンター。(コピペ推奨)
パスワードの入力を求めれらたら適宜入力してエンター。
インストールされているかの確認
上のコマンドは、make
, g++
, unzip
の3つのパッケージをインストールするコマンドです。
なので
apt show [パッケージ名]
のようにそれぞれで指定して確認できます。
「E: No packages found」などと表示されなければ、正常にインストールされています。
sudo apt-get install cmake sox libsndfile1-dev ffmpeg flac -y
と入力してエンター。(コピペ推奨)
パスワードの入力を求めれらたら適宜入力してエンター。
インストールが終わったら、以下のコマンドをコピペしてESPNetの環境構築を行います。
※ペーストはctrl+V
ではなく右クリックです。
git clone https://github.com/espnet/espnet
cd espnet/tools
./setup_anaconda.sh miniconda espnet 3.8
make TH_VERSION=1.10.1 CUDA_VERSION=11.3
cd miniconda/bin
./conda init
cd ../../../
esp_root=`pwd`
echo "export ESPNET_ROOT=$esp_root" >> ~/.bashrc
mkdir data_root
echo "export TTS_DATA_ROOT=${esp_root}/data_root" >> ~/.bashrc
source ~/.bashrc
conda activate espnet
pip install matplotlib pyopenjtalk==0.2.0 gdown espnet_model_zoo
cd egs2
echo "espnet is installed."
処理が終わったら、ls
と入力してエンター。
このように表示されればOKです。
cudaがちゃんと動くか確認
上の画像の状態で(condaのespnet環境下で)python
と打ち込んでエンター。
pythonが起動したら
import torch
と入力してエンター。
print(torch.cuda.is_available())
と入力してエンター。
結果がTrue
と表示されていれば問題ありません。
結果がFalseだった場合
pytorchが正常に機能していない可能性が高いです。
公式サイトを参考にLTS版のpytorchをインストールし直します。
cudaの確認の続きからの操作:
・exit()
と入力してエンター。
・以下をコピペしてエンター。
pip3 install torch==1.8.2+cu111 torchvision==0.9.2+cu111 torchaudio===0.8.2 -f https://download.pytorch.org/whl/lts/1.8/torch_lts.html
これで再度cudaの動作確認をしてTrue
であれば問題ないです。
おわりに
※2022/03/29追記
GTX1080Ti , CUDA11.1 , pytorch 1.8.2 LTS
上記の環境でRuntimeError:CUDAエラー:CUBLAS_STATUS_EXECUTION_FAILED 'cublasGemmEx(handle、opa、opb、m、n、k、& falpha、a、CUDA_R_16F、lda、b、CUDA_R_16F、ldb、& fbeta、c、CUDA_R_16F、ldc、CUDA_ )'
というエラーが出て学習が回らないという報告がありました。
調べたところ、修正されていない問題のようです。→https://github.com/pytorch/pytorch/issues/56747
CUDA10.2で動作したという報告がありましたので、お手数ですが上記の環境(グラボがGTX1080Ti)の方は適宜バージョンの変更をお願いいたします。
これでESPNetの環境構築は終了です。お疲れさまでした。
次回記事で学習を回すまでを解説します。
次回記事はこちら:https://qiita.com/seichi25/items/bde466744f9b3190b0d3