DockerでStyle-Bert-VITS2 APIを簡単構築し音声合成を体験しよう【ワンパン構築】

チュートリアル

Dockerを使って、AI音声合成のプロジェクト「Style-Bert-VITS2」のAPIを簡単に構築し、実際に動かしてみましょう。この記事では、初心者の方でも理解できるように、コードブロックを交えて解説します。PythonとDockerの基礎知識があると、よりスムーズに進められますが、わからない部分があっても大丈夫。この記事を通じて、一緒に学んでいきましょう。


こちらの記事もおすすめ

【Dockerでワンパン】PokéLLMonを動かしてみる
PokéLLMonは、ポケモンバトルのゲームにおいて、人間並みのパフォーマンスを実現する最初のLLM(Large Language Model)を体現したエージェントです。この記事では、PokéLLMonを実際に動かすための手順を初心者向け...
AIエージェント達の仮想ソフトウェア開発会社【ChatDev】公式Wikiの日本語版 作ってみた
Quick Start元のWIKIInstall ChatDev(ChatDev のインストール ):設置説明書に記載されているクイックスタートセクション を参照してください。Start building software in one c...

リポジトリのクローン

下記からリポジトリを取得

GitHub - Sunwood-ai-labs/Style-Bert-VITS2: Style-Bert-VITS2: Bert-VITS2 with more controllable voice styles.
Style-Bert-VITS2: Bert-VITS2 with more controllable voice styles. - Sunwood-ai-labs/Style-Bert-VITS2

Dockerでの環境構築

まずは、Dockerを用いてStyle-Bert-VITS2のAPIサーバーを構築する方法から見ていきます。以下のDockerfiledocker-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サーバーの立ち上げ方、さらには音声合成技術についての理解を深めることができます。興味を持った方は、ぜひチャレンジしてみてください。

修正したリポジトリ

GitHub - Sunwood-ai-labs/Style-Bert-VITS2: Style-Bert-VITS2: Bert-VITS2 with more controllable voice styles.
Style-Bert-VITS2: Bert-VITS2 with more controllable voice styles. - Sunwood-ai-labs/Style-Bert-VITS2
Style-Bert-VITS2 JVNV - a Hugging Face Space by MakiAi
Discover amazing ML apps made by the community

元リポジトリ

GitHub - litagin02/Style-Bert-VITS2: Style-Bert-VITS2: Bert-VITS2 with more controllable voice styles.
Style-Bert-VITS2: Bert-VITS2 with more controllable voice styles. - GitHub - litagin02/Style-Bert-VITS2: Style-Bert-VITS2: Bert-VITS2 with more controllable voi...

コメント

タイトルとURLをコピーしました