9
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ESPnet2をUbuntuマシンにインストールする方法

Last updated at Posted at 2021-04-14

UbuntuマシンにESPnet2(ESPnet)をインストールした際の備忘録です。一度インストールしてしまえば新しい環境でも簡単にインストールできますが最初だと結構躓くこともあると思います。Qiitaは初投稿なので読みにくい点などあるでしょうがご了承ください。
ちなみに当方がインストールを行った際の環境は

  • Ubuntu18.04
  • GeForce RTX3090
  • CUDA 11.1
  • cuDNN 8.0
  • PyTorch 1.8.1
  • ESPnet 0.9.9

です。Ubuntu20.04、RTX2080Ti、PyTorch1.7.1などでもこの通りの方法で成功するのを確認しています。ESPnet0.9.8でも確認していますが0.9.9で学習の高速化が実装されているので新しい方が良いです。

ESPnet2とは?

ESPnet2はEnd-to-Endの音声処理ツールキットです。音声認識や音声合成など様々なタスクを簡単に、高性能で行うことができます。無印のESPnetと違い、Kaldiなしで実行可能です。
ESPnet2については開発者の方が詳しく書いてくださっています。

ESPnet2で始めるEnd-to-Endテキスト音声合成

ESPnet2のインストール

ESPnet2はESPnetの中に含まれており、ESPnetをインストールすることでESPnet2を使うことができます。
インストール方法について、公式のドキュメントもあります。

Installation

しかし、これだけに従ってインストールするのは不慣れな場合難しいと思います。ここでは公式ドキュメントを元にもうちょっとわかりやすく(?)書いていきます。

必要なツール、ライブラリのインストール

公式ドキュメントに書いてあるように、必要なツールをインストールしていきます。

$ sudo apt-get install cmake
$ sudo apt-get install sox
$ sudo apt-get install libsndfile1-dev
$ sudo apt-get install ffmpeg
$ sudo apt-get install flac

また、日本語を扱う場合nkfも入れるとよいでしょう。

$ sudo apt-get install nkf

CUDAが入っていない場合CUDAをインストールします。入っていたとしてもバージョンを合わせないとインストールできません。その場合インストールしなおしてください。
nvidia-smiで表示されるCUDAのバージョンは単にドライバに適したCUDAのバージョンです。これは実際に入っているCUDAのバージョンと異なることもありますし、CUDAが入っていなくても表示されます。nvcc -Vで出てくるのが正しいCUDAのバージョンです。
ESPnet2をAnaconda環境で使う場合ここにあるPyTorchのどれかをインストールするようになっています。
PyTorch、CUDA、cuDNNのバージョンを必ず合わせましょう。下位互換性のため、CUDA11.0対応のPyTorchはCUDA11.1でも入れることができます(この場合インストールの際、指定するバージョンは11.0にします。)。

CUDAはNVIDIAの公式サイトからダウンロードできます。

CUDA Toolkit | NVIDIA

環境を選んでいくとインストールするためのコマンドが出てきます。私はrunfileが好きです。

必ず、忘れずPATHも通しましょう。nvcc -Vコマンドを実行できない状態だと、せっかくGPUがあってもCPU only版のPyTorchがインストールされてしまいます。

次に、cuDNNを入れましょう。cuDNNは

cuDNN Archive | NVIDIA Developer

からダウンロードできます。CUDA、PyTorchのバージョンにあったものを入れましょう。PyTorch1.8.1の場合8.0.xか7.6.xです。Runtime LibraryとDeveloper Libraryをインストールしてください。

python3コマンドではPythonが実行されるのにpythonコマンドでは実行できない場合Python2がインストールされていません。ESPnetは一部でPython2も使用しているようなのでPython2もインストールしましょう。

$ sudo apt install python2

これで準備は完了しました。GPUを複数使う場合はNCCLなども適宜インストールしてください。

ESPnetのインストール

いよいよESPnetをインストールします。まずは使いたいディレクトリの中でGitHubからクローンします。クローン出来たらespnet/toolsに移動してください。

$ git clone https://github.com/espnet/espnet
$ cd espnet/tools

無印のESPnetの場合ここでKaldiをインストールしますがESPnet2では必要ありません。Pythonの環境を作っていきます。もともと入っているPythonやAnacondaを使う方法もありますがESPnetの中のAnacondaを使う方法が一番簡単です。もし他のPythonを使う場合ターミナルなど、いくつかデフォルトで入っているPython3で動き、それでしか動かないものがあるので気を付けてください。

$ ./setup_anaconda.sh anaconda espnet 3.8

この一行でOKです。さて、いよいよインストールします。

$ make TH_VERSION=1.8.1 CUDA_VERSION=11.1

ここは自分の使うバージョンにしましょう。このオプションを元にここからPyTorchを選んでいます。ちなみにGPUがRTX30シリーズなど新しい場合PyTorchのバージョンは1.7.1以上にする必要があります。特に理由がなければ新しい方が良いと個人的には思います。

”ft2build.h”がないというエラーが出てインストールに失敗する場合があります。その場合は

$ sudo apt-get install libfreetype6 libfreetype6-dev

しましょう。これでmakeからやり直せばエラーが出なくなるはずです。
PyTorchのインストールは長いです。気長に待ちましょう。

ESPnet2の動作確認

ちゃんとインストールできているかどうか簡単なレシピを実行して確認しましょう。espnet/egs2の中にESPnet2のレシピが入っています。an4やJSUTなんかが簡単だと思います。実行したいレシピのディレクトリの中にasr1(音声認識)やtts1(音声合成)などタスクごとのディレクトリがあります。好きなタスクのディレクトリの中で

$ ./run.sh

を実行します。うまく動きましたか? お疲れ様です。うまく動いた場合、ここで完了です。あとは好きなレシピを実行したり、レシピを自作したり、使っていきましょう。

ESPnet2の日本語版チュートリアルは

ESPnet2で始めるEnd-to−End音声処理

です。

ft2build.hのエラーに関しては、こちらのサイトを参考に致しました。

Ubuntu 12.04にpipでmatplotlibを入れようとしたら詰まった件 - ふゆみけ

補足(日本語TTSの場合)

pyopenjtalkが必要です。

$ pip install pyopenjtalk

でインストールしましょう。pipです。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?