【2026年版】音声合成AI(VOICEVOXなど)のAPIサーバーをVPSに立てて外部から利用する方法
筆者の結論(先に言います)
CPUプランのVPSで十分です。GPU VPSは不要。
VOICEVOX EngineはCPUモードでも普通に動きます。4コア/4GBのVPSで1〜3秒/文くらいのペース。バッチ処理で事前に音声ファイルを作っておく使い方なら、多少遅くても全然問題ありません。
正直に言うと、「音声合成AIにGPU VPS」を強くすすめてくる記事は、GPU VPSのアフィリエイト報酬が高いからそうなっているケースが多いです。VOICEVOXの用途でわざわざ月数万円のGPUプランを選ぶ必要はほぼないので、そこは踏み込んで書いておきます。
月額1,000〜2,000円台のCPUプランで始めて、速度が本当に足りなくなってからプランアップを考えれば十分です。
VOICEVOX・COEIROINK・StyleBert-VITS2などの高品質な日本語音声合成AIは、通常ローカルPCで動かすことが前提です。でも正直、PCを立ち上げっぱなしにしておくのって精神的にずっと気になりませんか。何かあったらリモートデスクトップで入らなきゃいけないし、全然「手放し」にならない。
VPSにAPIサーバーとして常駐させれば、スマホ・スクリプト・CI/CDパイプラインから自由に音声生成をリクエストできます。YouTubeゆっくり実況の自動化、Podcastの自動録音、Discord読み上げBotなど、用途は多岐にわたります。
ローカル実行 vs VPS常駐の違い
自分が最初にVPSに移そうと思ったのは「寝てる間にバッチ処理を終わらせたい」という理由でした。ローカルPCだとスリープ問題が必ず出てくる。
| 比較軸 | ローカルPC | VPS常駐 |
|---|---|---|
| 可用性 | PCが起動中のみ | 24時間365日 |
| 複数端末からのアクセス | 不可 | 可能(HTTPS経由) |
| バッチ生成 | 手作業 | cronで自動化 |
| リソース競合 | 他アプリと競合 | 専用リソース |
PCを立ち上げっぱなしにする運用は、電気代もかかるし何より「何かあったら確認しに行かなきゃ」という状態が続くのがしんどい。VPSなら少なくともその精神的なコストはゼロになります。
推奨VPSスペック
VOICEVOX(CPUのみ)
| プラン | CPU | RAM | 備考 |
|---|---|---|---|
| 最小構成 | 2コア | 2GB | 生成速度は遅め(5〜10秒/文) |
| 推奨構成 | 4コア | 4GB | 実用的な速度(1〜3秒/文) |
はっきり書いておきます。VOICEVOXにGPUは必要ありません。
CPUのみのVPSで十分動きます。GPU搭載VPSを使えば確かに速くなりますが、音声合成の場合「リアルタイムで会話に応答する」みたいな用途でない限り、1〜3秒/文で何も困らない。事前バッチ生成なら5〜10秒でも全然許容範囲です。
コスト感で言うと:
- CPUプラン(4コア/4GB): 月1,000〜2,000円台 → 1日あたり33〜66円
- GPU VPS: 月2万〜5万円台 → 1日あたり670〜1,660円
この差額でGPUの速度が必要かどうか、冷静に考えてみてください。バッチ処理なら答えはほぼ「No」です。
ステップ1: DockerでVOICEVOX Engineを起動
# Docker・Docker Composeのインストール
sudo apt update && sudo apt install -y docker.io docker-compose
sudo usermod -aG docker $USER
# VOICEVOX Engine(CPUモード)をコンテナで起動
docker run -d \
--name voicevox-engine \
--restart unless-stopped \
-p 127.0.0.1:50021:50021 \
voicevox/voicevox_engine:cpu-ubuntu20.04-latest
# 起動確認(バージョン情報が返ってくればOK)
curl http://localhost:50021/version
--restart unless-stopped を付けておくと、VPSを再起動したときに自動で立ち上がります。これを忘れると「あれ、急に動かなくなった」ってなるので最初から入れておくのが吉。
外部に直接50021番ポートを開けず、localhostにバインドしてnginxでリバースプロキシするのが安全です。ポートをそのまま外部公開するのは絶対にやめてください。誰でもAPIを叩けてしまいます。
ステップ2: REST APIで音声生成
VOICEVOXのAPIは2段階です。まずテキストをクエリに変換し、次に音声ファイルを生成します。
# ステップA: テキスト → 音声クエリ(speaker=1はずんだもん)
curl -s -X POST \
"http://localhost:50021/audio_query?text=こんにちは、ずんだもんなのだ&speaker=1" \
-H "Content-Type: application/json" \
> query.json
# ステップB: クエリ → WAVファイル生成
curl -s -X POST \
"http://localhost:50021/synthesis?speaker=1" \
-H "Content-Type: application/json" \
-d @query.json \
--output output.wav
2段階なのは最初ちょっと面倒に感じますが、クエリ段階でピッチやスピードを細かく調整できるという設計上の理由があります。慣れると「この部分だけゆっくり読ませる」みたいな調整もできて便利。
# Pythonからバッチ生成する例
import requests, json, time
VOICEVOX_URL = "http://localhost:50021"
SPEAKER_ID = 1 # 1=ずんだもん、2=四国めたん など
def synthesize(text: str, output_path: str):
query = requests.post(
f"{VOICEVOX_URL}/audio_query",
params={"text": text, "speaker": SPEAKER_ID}
).json()
wav = requests.post(
f"{VOICEVOX_URL}/synthesis",
params={"speaker": SPEAKER_ID},
json=query
)
with open(output_path, "wb") as f:
f.write(wav.content)
lines = ["本日のニュースをお伝えします。", "最初のトピックは…"]
for i, line in enumerate(lines):
synthesize(line, f"audio_{i:03d}.wav")
time.sleep(0.5) # APIへの負荷を分散
time.sleep(0.5) の部分、CPUプランで大量に叩くと負荷が上がりすぎることがあるのでインターバルは入れておくのをおすすめします。自分は最初これを省いて2コアプランで詰まりました。
ステップ3: nginxでHTTPS公開
sudo apt install -y nginx certbot python3-certbot-nginx
sudo certbot --nginx -d tts.your-domain.example.com
# /etc/nginx/sites-available/voicevox
server {
listen 443 ssl;
server_name tts.your-domain.example.com;
# 簡易認証(Basic Auth)で保護
auth_basic "VOICEVOX API";
auth_basic_user_file /etc/nginx/.htpasswd;
location / {
proxy_pass http://127.0.0.1:50021;
proxy_read_timeout 120s;
}
}
# Basic Auth用パスワードファイル作成
sudo apt install -y apache2-utils
sudo htpasswd -c /etc/nginx/.htpasswd youruser
Basic Authは完璧な認証ではないですが、「APIが外部から丸見えになっている状態」を避けるための最低限の対策としては有効です。個人用途ならこれで十分。複数人で使うなら認証まわりをもう少しちゃんとやることを考えたほうがいい。
ステップ4: cronで定期バッチ生成
# crontabに登録(毎朝6:30に当日ニュース原稿を読み上げ)
30 6 * * * /usr/bin/python3 /opt/voicevox-batch/daily_news.py >> /var/log/voicevox-batch.log 2>&1
これが「VPSに立てた意味」が一番出る部分です。自分のPCが起動してなくても、毎朝6:30にサーバー側で勝手に処理が走る。完全に手放しになります。ローカルPC運用では絶対に実現できないやつ。
活用ユースケース
自分が実際に試したか、試した人を見て「それはやってみたい」と思ったもの一覧です。
| ユースケース | 概要 |
|---|---|
| YouTube実況 | ゲーム・解説動画の台本をバッチ変換しMP3で保存 |
| Podcast自動録音 | RSSフィードの本文をVOICEVOXで読み上げてPodcast化 |
| Discord Bot | メッセージを音声で読み上げるVCボット |
| 通知音声 | アラート・エラー通知をSlack経由で音声ファイルとして受け取る |
Discord Botは構築がちょっと手間かかりますが、一度動かすと「これ便利すぎる」ってなります。興味があるならとりあえずやってみればいい。これが最終構成じゃないんだから、動かしてみてから調整すればいい。
まとめ:あなたの使い方で選ぶ
結局のところ、自分がどう使うかで必要なスペックも選ぶVPSも変わります。以下に整理しました。
| あなたの使い方 | 推奨プラン | 月額目安 | 一言 |
|---|---|---|---|
| バッチ処理メイン(YouTube・Podcast等) | CPUプラン 4コア/4GB | 1,000〜2,000円台 | これで十分。GPU不要 |
| リアルタイム応答が必要(Botの即時返答等) | CPUプラン 8コア/8GB | 2,000〜4,000円台 | まずCPU高スペックで試す |
| StyleBert-VITS2など高品質モデルを使いたい | 8GB RAM以上 | 2,000円台〜 | RAMが足りないと落ちるので注意 |
| とりあえず試したいだけ | 最小構成 2コア/2GB | 1,000円前後 | 速度は遅いが動作確認には十分 |
| GPU VPSを検討している | まずCPUプランで試す | — | リアルタイム要件が明確になってから考える |
自分の結論としては、、ほとんどの個人用途はCPUプランで完結します。GPU VPSが本当に必要になるのは「複数ユーザーが同時にリクエストしてきて詰まる」みたいな状況になってから。その段階になったらそのときに考えれば十分です。
最初から月数万のGPUプランを選ぶ必要はない。月1,000〜2,000円台のCPUプランで始めて、VOICEVOXのAPIサーバーが自分のワークフローに本当に合うかどうかを確かめてください。
これが最終回答じゃないんだから、まずは動かしてみてください。