見出し画像

音声合成モデルStyle-Bert-VITS2をサーバレスアーキテクチャでWeb API化する

オープンソースの日本語特化音声合成モデル「Style-Bert-VITS2」をWeb APIとしてデプロイしてみました。

成果物

Web API化することで低スペックPCや、サービスからクラウド上から簡単に呼び出すことができます。

Docker Hub

サーバーにデプロイする前に、ビルドしたものをDockerHubにアップロードします。

# repositoryをclone
git clone --depth=1 https://github.com/hideyuda/Style-Bert-VITS2-API.git

# dir移動
cd Style-Bert-VITS2-API

# venv
python -m venv .venv

# mac, linuxの場合
source .venv/bin/activate
# windowsの場合
.venv/scripts/activate

pip install -r requirements.txt

# 初回設定ファイルを実行
python initialize.py

[python initialize.py]が完了するまで数分かかるため、その間にdeploy.shのUSER変数を書き換えます。

#!/bin/bash
USER="Input your dockerhub username"
APP_NAME="runpod-style-bert-vits2-api"
VERSION=1.0.0

# VERSIONを目視で確認するのでy/Nで確認
echo "Is this version correct? $VERSION"
read -p "y/N: " yn
case "$yn" in [yY]*) ;; *) echo "Interrapt" ; exit ;; esac

# git tag -a $VERSION -m "$VERSION"

# buildコマンド
sudo DOCKER_BUILDKIT=1 docker build --progress=plain . -f Dockerfile.runpod -t $USER/$APP_NAME:$VERSION

# pushコマンド
sudo docker push $USER/$APP_NAME:$VERSION

[python initialize.py]のロードとdeploy.shの変更が完了した後、以下のコマンドでdeploy.shを実行します

# Mac or Linux
sh deploy.sh

# Windows
./deploy.sh

Versionを確認するようにしていますが、問題なければそのままYで実行します。

処理が終わるまでかなり時間がかかります。

Docker Hubのリポジトリに{user_name}/runpod-style-bert-vits2-apiというイメージが存在しているはずです。

Docker Hubとの接続に失敗する場合、[ docker login] などを実行すれば解決するかも知れません。

RunPod

今回はデプロイ先として、GPUサーバーを格安で使うことのできるRunPod.ioを選びました。

Style-Bert-VITS2自体は、CPUでも動かすことができますが、せっかくなのでGPUで試してみます。

使用するには、先に入れる必要があります。
最低$10~ですが、$50入れてしまいました、、、気をつけてください、、、

Setteings -> API KeysからAPI Keyを発行

下にスクロールして、Container Registry AuthからDockerHubアクセス用のCredentialを作成

Credential Name: なんでもOK
Username: DockerHubのUsername
Password:DockerHubのpassword

Templates -> New Templateからデプロイ用のテンプレートを作成

Template Name: なんでもOK
Compute Type: GPUを選択
Container Image: DockerHubの[UserName/RepoName:Version]を指定
Container Registry Credentials: 先ほど作成したCredentialを指定
Container Disk: 使用用途に応じて設定 10GBはオーバースペックっぽい

Serverless -> New Endpointを選択

GPU or CPU: GPU
Endpoint Name: なんでもOK
Worker Configuration: 今回はテストなので一番安い16GB
Select Template: 先ほど作成したTemplateを指定

このままDeployを押すと、以下のように反映されます。
Initializingの箇所がReadyになればOK!


参考

この記事が気に入ったらサポートをしてみませんか?