- AIキャラクター実況をStyle-Bert-VITS2とVMagicMirrorで始めよう
- VMagicMirrorに命を吹き込む Pythonと Style-Bert-VITS2で リアルタイム感情表現
- DockerでStyle-Bert-VITS2 APIを簡単構築し音声合成を体験しよう【ワンパン構築】
Dockerを使って、AI音声合成のプロジェクト「Style-Bert-VITS2」のAPIを簡単に構築し、実際に動かしてみましょう。この記事では、初心者の方でも理解できるように、コードブロックを交えて解説します。PythonとDockerの基礎知識があると、よりスムーズに進められますが、わからない部分があっても大丈夫。この記事を通じて、一緒に学んでいきましょう。
こちらの記事もおすすめ
リポジトリのクローン
下記からリポジトリを取得
Dockerでの環境構築
まずは、Dockerを用いてStyle-Bert-VITS2のAPIサーバーを構築する方法から見ていきます。以下のDockerfile
とdocker-compose.yml
を用意し、必要な設定を行います。
Dockerfileの解説:
# Pythonのベースイメージを使用
FROM python:3.11-slim
# 作業ディレクトリを設定
WORKDIR /app
# Git LFSのインストール
RUN apt-get update && \
apt-get install -y git-lfs && \
git lfs install
# リポジトリをクローン
RUN git clone https://huggingface.co/spaces/MakiAi/Style-Bert-VITS2-JVNV
# クローンしたリポジトリのディレクトリに移動
WORKDIR /app/Style-Bert-VITS2-JVNV
# Pythonの依存関係をインストール
RUN pip install -r requirements.txt
このDockerfile
では、Pythonの軽量なベースイメージを使用し、Git LFSをインストールしてから、必要なリポジトリをクローンします。その後、依存関係をインストールしています。
docker-compose.ymlの解説:
version: '3.8'
services:
app:
build: .
volumes:
- .:/work
ports:
- "8000:8000"
- "5000:5000"
command: python /app/Style-Bert-VITS2-JVNW/server_fastapi.py
docker-compose.yml
では、先ほどのDockerfileをビルドし、ボリュームとポートの設定を行います。ここで設定したポートを通じて、APIにアクセスすることができます。
サンプルコードでAPIを試す
環境構築が完了したら、次はAPIを実際に試してみましょう。以下のサンプルコードdemo_api.py
を使って、APIから音声を生成するプロセスを確認します。
demo_api.pyの解説:
import requests
import os
# APIのベースURL
url = "http://127.0.0.1:5000/voice"
# クエリパラメータ
params = {
"text": "こんにちは、今日の気分はどうですか?",
"encoding": "utf-8", # 必要に応じて指定
"model_id": 0,
"speaker_id": 0,
"sdp_ratio": 0.2,
"noise": 0.6,
"noisew": 0.8,
"length": 1,
"language": "JP",
"auto_split": True,
"split_interval": 0.5,
"assist_text": "", # この例では空ですが、必要に応じて指定
"assist_text_weight": 1,
"style": "Neutral",
"style_weight": 5
}
# 出力フォルダのパス
output_folder = "output"
# フォルダが存在しない場合は作成
if not os.path.exists(output_folder):
os.makedirs(output_folder)
# 音声ファイルの保存パス
output_path = os.path.join(output_folder, "output.wav")
# リクエストの送信とレスポンスの確認
response = requests.get(url, params=params) # `url` と `params` は前の手順と同じ
if response.status_code == 200:
# レスポンスから音声データを取得し、ファイルに保存
with open(output_path, "wb") as f:
f.write(response.content)
print(f"音声ファイルを '{output_path}' に保存しました。")
else:
print("エラーが発生しました。ステータスコード:", response.status_code)
このコードでは、設定したパラメータに基づいてAPIにリクエストを送り、レスポンスとして得られた音声データをファイルに保存します。エラーハンドリングも行い、問題があった場合にはステータスコードを確認できるようにしています。
まとめ
この記事では、Dockerを用いてStyle-Bert-VITS2のAPIサーバーを構築し、実際に音声合成を試すまでのプロセスをステップバイステップで解説しました。初心者の方でも追いやすいように、具体的なコードブロックを使用して説明しています。このプロジェクトを通じて、Dockerの基本的な使い方や、APIサーバーの立ち上げ方、さらには音声合成技術についての理解を深めることができます。興味を持った方は、ぜひチャレンジしてみてください。
コメント