前回に引き続きVOICEVOX コアライブラリ関連の記事です。
前回の記事はこちらです。
VOICEVOXは、音声合成が可能なコアライブラリを搭載したフリーの音声合成ソフトウェアです。 商用利用可能なキャラクターも存在していて、かつ品質もかなりいい優れたソフトウェアです。
このVOICEVOXの音声合成を行っているコアライブラリをDockerに固めて利用できるようにしました。
このDockerイメージを元にDockerイメージをカスタマイズすることで、ソフトウェアを開発したり、実行したりすることができるようになっています。
また、このDockerイメージはGPU対応です。 そのため、CUDAが利用可能なグラフィックボードを搭載するコンピュータで、高速に音声合成することができます。
コアライブラリのPythonサンプルプログラムを実行するためのDockerイメージもあります。
概要
DockerイメージのためのDockerfileは以下のGitHubリポジトリにあります。
Dockerfileは現時点で3つあります。
base-gpu.Dockerfile
基本となるDockerイメージのDockerfileです。 CUDA 11.1のベースイメージに、LibTorchとVOICEVOX コアライブラリがインストールされています。 それぞれにパスはすでに通っているため、開発環境や実行環境のベースイメージとして利用できます。
ビルド方法
docker build -t voicevox_core:base-gpu -f base-gpu.Dockerfile ./
python-base-gpu.Dockerfile
base-gpu.Dockerfile
をベースに、Python 3をインストールしたDockerfileです。
VOICEVOX コアライブラリのPythonモジュールがインストールされています。
これにより、Python 3のプログラムでVOICEVOX コアライブラリを利用することができます。
/workspace/voicevox_core/example/python
にPython 3向けのサンプルプログラムが同梱されています。
ビルド方法
# voicevox_core:base-gpuがビルドされている必要があります docker build -t voicevox_core:python-base-gpu -f python-base-gpu.Dockerfile ./ &&
example-python-gpu.Dockerfile
python-base-gpu.Dockerfile
をベースに、Pythonのサンプルプログラムを実行するようにしたDockerfileです。
VOICEVOX コアライブラリのリポジトリにあるPython 3向けのサンプルプログラムを実行できるようになっています。
ビルド方法
# voicevox_core:python-base-gpuがビルドされている必要があります docker build -t voicevox_core:example-python-gpu -f example-python-gpu.Dockerfile ./
実行方法
前提として、example-python-gpu.Dockerfile
をビルドしておいてください。
最初に、音声にしたい文章と話者を指定します。
0番が四国めたん、1番がずんだもんです。
SENTENCE='ドッカーでもこれは本当に実行できているんですか' SPEAKER_ID=1
次に、Dockerコンテナを立ち上げてサンプルプログラムであるrun.py
を実行します。
CPUで実行する場合は以下のコマンドを実行します。
docker run --rm -t \ -v `pwd`/out:/workspace/voicevox_core/example/python/out \ voicevox_core:example-python-gpu \ sh -c \ "python3 run.py --text $SENTENCE --speaker_id $SPEAKER_ID && \ cp \"$SENTENCE-$SPEAKER_ID.wav\" /workspace/voicevox_core/example/python/out"
GPUで実行する場合は以下のコマンドを実行します。
docker run --rm -t --gpus all \ -v `pwd`/out:/workspace/voicevox_core/example/python/out \ voicevox_core:example-python-gpu \ sh -c \ "python3 run.py --use_gpu --text $SENTENCE --speaker_id $SPEAKER_ID && \ cp \"$SENTENCE-$SPEAKER_ID.wav\" /workspace/voicevox_core/example/python/out"
成功すると、現在いるディレクトリの下にout
というディレクトリが現れ、中にドッカーでもこれは本当に実行できているんですか-1.wav
が生成されます。
ライセンス
このDockerfileはMITライセンスで提供されますが、DockerイメージにはVOICEVOX コアライブラリの利用規約が適用されます。 Docker HubなどでDockerイメージを公開したり、クラウド上でDokcerイメージを利用したりする場合は、VOICEVOX コアライブラリの利用規約を守ってください。
VOICEVOX コアライブラリの利用規約には、伝搬性のある条件が含まれています。
よく確認してください。
VOICEVOX コアライブラリの利用規約は各イメージの/usr/local/voicevox_core/README.txt
に記載があります。