🫘
【VOICEVOX,Docker】VOICEVOX ENGINEを建てる
サルドラ氏のAITuber本を参考にAIずんだもんを作った時のメモ。
DockerとVOICEVOX ENGINEをバックグラウンドで常時稼働させ、VOICEVOXのアプリケーションをいちいち起動しなくてもリクエストを投げられるようにします。
環境:Ubuntu22.04
- Docker Engineのインストール
# 競合するパッケージのアンインストール
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
# Dockerのリポジトリを設定
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl -y
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Dockerリポジトリの追加
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# アップデート
sudo apt-get update
# Docker最新版のインストール
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
# 動作確認(必要であれば)
#sudo docker run hello-world
# バージョン確認
sudo docker -v
sudo apt list | grep docker-compose-plugin
2. 各種設定変更
# sudoなしで実行できるようにする
# グループを作成
sudo groupadd docker
# ユーザーをグループに追加
sudo usermod -aG docker $USER
# グループへの変更を有効化
newgrp docker
# 動作確認
#docker run hello-world
##自動起動設定
sudo systemctl enable docker.service
sudo systemctl enable containerd.service
3. NVIDIA-Docker-toolkitのインストール(任意)
※GPU利用の場合のみ。GPUリソースを取られるため今回は実施しなかった。
#curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
# && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
# sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
# sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
#
#sudo apt-get update
#sudo apt-get install nvidia-container-toolkit -y
#
#sudo nvidia-ctk runtime configure --runtime=docker
#sudo systemctl restart docker
4. VOICEVOX ENGINEの起動
# コンテナ起動(CPU版)
docker pull voicevox/voicevox_engine:cpu-ubuntu20.04-latest
docker run -d --restart unless-stopped -p '127.0.0.1:50021:50021' voicevox/voicevox_engine:cpu-ubuntu20.04-latest
# コンテナ起動(GPU版 ※GPUリソースを取られるため今回は実施しなかった)
#docker pull voicevox/voicevox_engine:nvidia-ubuntu20.04-latest
#docker run -d --restart unless-stopped --gpus all -p '127.0.0.1:50021:50021' voicevox/voicevox_engine:nvidia-ubuntu20.04-latest
# 稼働確認
docker ps
必要な作業はここまで。127.0.0.1:50021にリクエストを投げれば音声合成データが返ってきます。
またサーバ本体を再起動してもVOICEVOXコンテナが即時起動し、バックグラウンドで常駐します。
5. おまけ:Docker関連コマンド
### ビルド・起動関連 ###
#Dockerイメージのビルド
docker-compose build
#docker-compose.ymlを使ったDockerコンテナの起動
docker-compose up -d
### 調査関連 ###
#コンテナの稼働状況確認
docker ps -a
#ログ確認
docker logs コンテナ名
#コンテナにログイン
docker exec -it db /bin/bash
#イメージ一覧
docker images
#Dockerが使ってる容量の確認
docker system df
### 削除・初期化関連 ###
#コンテナ削除
docker rm -f コンテナ名等
#イメージ削除
docker rmi -f イメージ名等
#コンテナを停止し、キャッシュを削除する
docker system prune
#Dockerが使ってるボリュームの全てを削除する
docker system prune -a --volumes
Discussion