VOICEVOX Dockerイメージを使用して音声合成APIサーバーを構築して遊ぶ手順書
🎤 はじめに
この記事では、Ubuntu上で公式のVOICEVOX Dockerイメージを使用して音声合成APIサーバーを構築し、Gradioで簡単なフロントエンドを作成する手順を解説します。VOICEVOXは高品質な音声合成を実現するオープンソースのソフトウェアで、Dockerイメージを利用することで手軽に環境構築ができます。Gradioは、Webベースのインターフェースを簡単に作成できるツールで、音声合成アプリケーションのデモに最適です。
🚀 公式VOICEVOX Dockerイメージを使ったAPIサーバーの構築
🐳 Dockerのインストール
もしまだDockerが入っていない場合は、以下の手順でインストールしてください。
sudo apt update
sudo apt install -y docker.io
sudo systemctl enable --now docker
Docker Composeは今回使用しませんが、今後複数コンテナを扱う場合に便利なので、必要に応じてインストールしてください。
📦 VOICEVOXのDockerイメージを取得
公式のVOICEVOX Dockerイメージを取得します。
docker pull voicevox/voicevox_engine:latest
🛠️ APIサーバーの起動
以下のコマンドでAPIサーバーを起動します。
docker run -d \
--name voicevox_engine \
-p 50021:50021 \
voicevox/voicevox_engine:latest
デフォルトでポート50021がAPIサーバーとして使われます。
🖥️ Gradioフロントエンドの構築
🐍 PythonとGradioのインストール
Gradioを使うにはPythonが必要です。Python 3.8以降を推奨します。
sudo apt install -y python3 python3-pip
pip3 install gradio requests
💻 Gradioアプリケーションの作成
以下のコード例を app.py
という名前で保存してください。
import gradio as gr
import requests
VOICEVOX_ENGINE_URL = "http://localhost:50021"
def synthesize_speech(text, speaker_id):
# 音声合成クエリを作成
query_resp = requests.post(
f"{VOICEVOX_ENGINE_URL}/audio_query",
params={"text": text, "speaker": speaker_id}
)
if query_resp.status_code != 200:
return "音声合成クエリの作成に失敗しました"
# 音声合成
synthesis_resp = requests.post(
f"{VOICEVOX_ENGINE_URL}/synthesis",
params={"speaker": speaker_id},
json=query_resp.json()
)
if synthesis_resp.status_code != 200:
return "音声合成に失敗しました"
# 音声データを返す
return (synthesis_resp.content, "audio/wav")
with gr.Blocks() as demo:
gr.Markdown("# VOICEVOX 音声合成デモ")
text_input = gr.Textbox(label="テキストを入力してください")
speaker_input = gr.Number(value=1, label="Speaker ID (例: 1)")
output_audio = gr.Audio(label="合成音声", type="numpy")
run_button = gr.Button("音声合成")
run_button.click(
fn=synthesize_speech,
inputs=[text_input, speaker_input],
outputs=output_audio
)
if __name__ == "__main__":
demo.launch(server_name="0.0.0.0", server_port=7860)
・speaker_id
はVOICEVOXの話者IDです。
・複数の話者をサポートしているため、数字で指定します(例: 1, 2, 3)。
・DockerのVOICEVOX APIサーバーはデフォルトでlocalhost:50021
で起動しています。
▶️ Gradioの起動
以下のコマンドでアプリを起動します。
python3 app.py
ブラウザで http://localhost:7860
にアクセスすると、テキスト入力欄と「音声合成」ボタンが表示され、テキストを入力してボタンを押すと音声が合成されます。
📝 おわりに
この記事では、公式VOICEVOX Dockerイメージを利用した音声合成APIサーバーをUbuntu上で構築し、Gradioでフロントエンドを作る手順を紹介しました。VOICEVOXは高品質な音声合成を簡単に試せるので、ぜひさまざまなテキストで遊んでみてください!