VOICEVOXをご存知ですか。
VOICEVOXは、音声合成が可能なコアライブラリを搭載したフリーの音声合成ソフトウェアです。 商用利用可能なキャラクターも存在していて、かつ品質もかなりいい優れたソフトウェアです。
そんなVOICEVOXですが、内部で利用している音声合成コアライブラリが公開されました。 Windowsだけでなく、Linuxでも利用できるようになっていたので、早速WSL 2のubuntu 20.04で試してみました。 ほとんどはコアライブラリのREADME.mdに記載されたサンプルの実行例と同じです。
必要なものとインストール方法
以下のものが必要です。
Python 3
Python 3.8.10で動かしました。 WSL 2のUbuntu 20.04にデフォルトで入っているPython 3のバージョンが3.8系だったと思います。
Python3 venv
Pythonのライブラリpip
の環境仮想化に利用します。
以下のコマンドでインストールしてください。
sudo apt install python3-venv
CMAKE
コアライブラリのコンパイルに必要なようです。 以下のコマンドでインストールしてください。
sudo apt install cmake
CUDA11.1
現時点でWSL 2ではCUDAを利用できませんが、インストールしておく必要があります。
以下のリンクからCUDA 11.1のLinux
、x86_64
アーキテクチャでWSL-Ubuntu
ディストリビューション、runfile (local)
のインストールタイプを選択してインストールしてください。
developer.nvidia.com
このとき、ドライバのインストールを選ぶことができますが、不要なので除外してOKです。
また、インストーラの実行完了後の画面にも表示されていますが、最後に以下の内容を~/.bashrc
に追記してください。
export PATH=$PATH:/usr/local/cuda-11.1/bin export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.1/lib64
そして以下のコマンドを実行すれば変更が適用されます。
source ~/.bashrc
LibTorch for CUDA 11.1
CUDAが使えませんがCUDA対応のLibTorchを入れておく必要があります。
以下のリンクからLinux向けLibTorch(1.8.2 LTS)のCUDA 11.1版をダウンロードします。
pytorch.org
ダウンロード後、適当な位置に展開します。
展開したパスは後ほど使うので記録しておくか、以下のように~/.bashrc
に追加すると便利です。
# もしlibtorchを/home/userの中に展開した場合 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/user/libtorch/lib/
追記した場合は以下のコマンドも忘れないように実行してください。
source ~/.bashrc
サンプルプロジェクトをcloneする
GitHubにサンプルプロジェクトが公開されているので、これを使ってみます。 以下のコマンドを入力してGitHubからサンプルプロジェクトをcloneします。
cd ~/ # homeディレクトリに移動しておきます git clone https://github.com/Hiroshiba/voicevox_core.git
早速サンプルのあるディレクトリを開いてみましょう。
cd voicevox_core/example/python # 現在の位置は/home/user/voicevox_core/example/pythonとなります
セットアップする
サンプルプロジェクトの実行に必要なライブラリなどをインストールします。
仮想環境の用意
最初に、venvで仮想環境を用意します。
python3 -m venv venv
そして、以下のようにして環境を有効にします。
source ./venv/bin/activate
ライブラリのインストール
次に、ライブラリをインストールします。
必要なものはすべてrequirements.txt
に記載されているので、以下のコマンドを実行すれば勝手にインストールしてくれます。
pip install -r requirements.txt
コアライブラリをインストールする
ここで主役の登場です。 コアライブラリを以下のリンクからダウンロードします。
curlコマンドを使えば簡単にダウンロードすることができます。
# バージョン0.5.1をダウンロードする場合 curl -OL https://github.com/Hiroshiba/voicevox_core/releases/download/0.5.1/core.zip
ダウンロードしたファイルをunzipコマンドで展開します。
unzip core.zip
すると、core
ディレクトリにコアライブラリが展開されるので、これをサンプルプロジェクトのプログラムがある場所にコピーします。
cp core/* ./
最後に、以下のコマンドでコアライブラリを仮想環境にインストールします。
# 現在の位置は/home/user/voicevox_core/example/pythonとします LIBRARY_PATH=$LIBRARY_PATH:/home/user/voicevox_core/example/python python setup.py install
エラーが出なければインストールは成功です。
実行
あとは以下のコマンドでサンプルプログラムを実行してみましょう。
ところで、必要なものとインストール方法の項目で、LibTorchをインストールしたことを覚えていますか?
そのときに~/.bashrc
を編集した人は、以下のコマンドを実行してサンプルプログラムを動かします。
python run.py \ --text "これは本当に実行できているんですか" \ --speaker_id 1
~/.bashrc
を編集していない人は、以下のコマンドを実行してサンプルプログラムを動かします。
# もしlibtorchを/home/userの中に展開した場合 LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/home/user/libtorch/lib/" python run.py \ --text "これは本当に実行できているんですか" \ --speaker_id 1
しばらくすると、同じディレクトリにこれは本当に実行できているんですか-1.wav
というファイルが生成されます。
テキスト通りの文章になっていれば成功です。
終わりに
VOICEVOXのコアライブラリを使うことで、かなり高い品質の音声合成を利用できるようになります。 今のところはGPUを利用しないでもCUDAが必要になったり、推論時のメモリ量が2GB以上必要になったりと苦労もあります。 ですが、無料で商用利用が可能など注目すべきところも多いので、今後どのようになっていくのか期待したいですね。