チラシの裏からうっすら見える外枠の外のメモ書き

新聞に挟まってる硬い紙のチラシの裏からうっすら見える外枠の外に走り書きされたようなものです。思いついたときにふらふらと。

WSL 2からVOICEVOX コアライブラリを使ってみた

VOICEVOXをご存知ですか。

VOICEVOXは、音声合成が可能なコアライブラリを搭載したフリーの音声合成ソフトウェアです。 商用利用可能なキャラクターも存在していて、かつ品質もかなりいい優れたソフトウェアです。

voicevox.hiroshiba.jp

そんな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のLinuxx86_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

コアライブラリをインストールする

ここで主役の登場です。 コアライブラリを以下のリンクからダウンロードします。

github.com

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以上必要になったりと苦労もあります。 ですが、無料で商用利用が可能など注目すべきところも多いので、今後どのようになっていくのか期待したいですね。