前回の記事はこちらから

Tomoya前回のチェスBot×VPS編がひと段落し、次のテーマを何にするか、正直かなり悩みました。
AIと一緒にテーマを考えていく中で注目したのが
リアルタイム音声AIがトレンドになりつつある、という流れでした。
やはり「VPSを使って何ができるのか」というテーマは軸として持ち続けたいという気持ちがありました。これまでと似た方向性の別パターンも候補にはありましたが、それよりも自分自身を成長させたい、レベルを一段引き上げたテーマに挑みたいと思いました。
Tomoya自分が今できることを組み合わせて、1つのプロダクトを作りたい。
そして、VPSならではの要素も加え、「VPSで行う意味がある」と言えるものを求めて考えていきました。
なぜVOICEVOX×Geminiという組み合わせにしたか
リアルタイム音声AIが話題になっている中で、自分自身が作った音声生成Webアプリ「ScriptSpeak」を活用したいと思いました。
今のGeminiやChatGPTは、リアルタイムの音声でほとんどラグなく自然な会話ができるようになっていて、これは純粋にとても魅力的だと感じています。さらに、一昔前の「Siri」ではできなかった、文脈や意味を理解した上での応答ができる点も大きな違いです(Siriは便利な反面、Apple内での操作に強い制限があった記憶があります)。
そこに着目し、似たようなものではあっても、自分の手で作ってみることに意味があると思いました。
Tomoya「百聞は一見に如かず」という言葉がある通り、誰かが作ったものをただ使うことはできます。
しかし、それを真似て自分なりの仕組みを作ってみることで、どういう構造で動いているのか、メジャーなサービスと何が違うのかを、自分の理解として得られます。そんな気持ちもあって、このテーマを選ぶことにしました。
Google SpeechやWhisperのようなモデルを使うのではなく、応答を考える「頭」の部分にAI(Gemini)というLLMを活用し、そこからVOICEVOXというOSS(オープンソース)のツールを使って音声化して返す、という形にしています。
コストについては、AI API(Gemini)の利用量だけを見積もり、低コストで作れるように考えました。
VOICEVOXはOSSのため無料で使えます(商用利用については規約の確認が必要です)。

なぜ本番はサーバーレスなのに、あえてVPSで作るのか
現在自分が運営しているScriptSpeakは、GCPをバックエンドの基盤とし、Cloud Functionsというサーバーレスの仕組みで動かしています。
これにより、いつでも音声生成ができるWebアプリとして成立しています。
Tomoyaそれにもかかわらず、今回はVPS・常時稼働という方針にしました。
理由は、GCPはいわば外部のサービスを活用しているにすぎず、利用量が増えるほど従量課金が発生していく仕組みだからです。
一方でVPSは、借り物ではあるものの、自分専用のPCをクラウド環境の中に持っているような状態です。これによって、仮の状態ではあっても、自分のプロダクトを自分のサーバーで動かしている、という形を作り上げられると思っています。
細かく見ればVPS自体にもコストはかかっています。それでも、仮の状態ではあっても「自分のプロダクトを自分のサーバーで動かしている」という形を作り上げられることに意味があると考えました。
これまでは外部のサービスを組み合わせてプロダクトを作ってきたので、VPSで常時稼働させるという経験そのものが、自分にとって新しい学びになると感じています。
サーバーレス(GCP)
VPS(常時稼働)
Cloud Functions を中心とした構成
外部のサービスを「借りて活用する」形
- リクエストがあったときだけ起動する
- 使った分だけの従量課金。使うほどコストが積み上がる
- インフラの面倒はプラットフォーム側が見てくれる
- スケールは自動。運用の手離れが非常に良い
- 土台そのものは自分の管理下にない
クラウド上に置いた自分専用のマシン
クラウドの中に「自分のPCを持つ」形
- 止めない限りずっと動き続ける常時稼働
- 基本は月額固定。使用量で跳ね上がらない
- OS・ミドルウェア・監視まで自分で面倒を見る
- スケールは手動。設計と運用の判断が自分に返ってくる
- 借り物ではあるが、実質「自分のサーバー」として扱える
| 比較軸 | サーバーレス (GCP / Cloud Functions) | VPS (常時稼働) |
|---|---|---|
| 位置づけ | 外部サービスの活用 | 自分専用の実行環境の保有 |
| 課金モデル | 従量課金(使うほど増える) | 月額固定(読みやすい) |
| 稼働形態 | 呼ばれたときだけ起動 | 24時間動き続ける |
| 運用の手間 | ほぼ不要(マネージド) | 自分で構築・保守・監視 |
| コントロール範囲 | アプリのコードまで | OS・プロセス・ネットワークまで |
| 得られる学び | サービスの組み合わせ方 | サーバーを持ち、動かし続ける経験 |

キャラクター選び、そして利用規約という壁
VOICEVOXのキャラクター選びについても悩みました。
VOICEVOXといえば「ずんだもん」が有名で、YouTubeなどを見ている人なら聞いたことがあるはずです。

Tomoyaただ、今回はあえて新しいキャラクターに挑戦してみようと思いました。
「声の聴き心地がすっと入ってきそうか」を基準に、男女それぞれからピックアップしました。全員を導入することも考えましたが、あえてここは絞ろうとも考えていました。
- 女性 ぞん子:声質の個性が強く、印象に残る
- 女性 東北ズン子:落ち着いた聴き心地。個人的にかなり好み
- 女性 春歌ナナ:明るく通りが良く、長文でも聴き疲れしない
- 男性 剣崎雌雄:低音で安定感のある語り口
- 男性 雀松朱司:柔らかく、耳にすっと入ってくる
ここが最大の壁でした。「声が好きかどうか」より前に、商用利用が明確に許可されているかを確認する必要があります。結果、候補は一気に削られていきました。
- NG
ぞん子:商用利用の条件で引っかかった - 保留
東北ズン子:利用の可否がはっきり確認できず、断念 - 保留
剣崎雌雄:同様に可否が確認できず、今回は見送り - OK 春歌ナナ:条件を確認のうえ採用へ
- OK 雀松朱司:条件を確認のうえ採用へ
①:5候補 ▶
②:3規約で脱落 ▶
③:2採用決定
男性ボイス
雀松朱司
柔らかく聴きやすい語り口
女性ボイス
春歌ナナ
明るく通りが良い声質
Tomoya正直なところ、東北ズン子の声はかなり気に入っていたので、少し惜しい気持ちもありました。
なお、商用規約に引っかかったといっても、多くの場合は「個別の問い合わせが必要」というだけで、必ずしも一律禁止というわけではありません。
TomoyaVoiceVoxに興味を持った方は以下のリンクから公式サイトへ遷移できます。
本番サービスの「コピー」を使うという判断
土台となるシステムの構築については、今回はScriptSpeakのソースコードを自分自身が持っているので、それをコピーして改良していく形にしました。
ただし、運用中の本番サービスに絶対に害が及ばないよう、取り扱いには十分注意しながら進めています。
Tomoya名前の変更、環境変数の削除、不要な機能の削除、そしてGitHubへの接続先の向きには、特に気を使いました。
正直、不安はありました。コピーした内部の環境変数はきちんと削除し、本番のものと混同しないようにする。そして、GitHubにプッシュする前には必ず一呼吸置く、というのを自分の中のルールにしていました。何も考えずにプッシュしてしまうと、最悪の場合、接続先が本番のリポジトリのままで、そちらが書き換わってしまう可能性もあったからです。
それでも、既存のシステムを土台に使ったことで、大幅な時間短縮になりました。必要な部分を残しつつ、使わない部分をシンプルに削っていく、という進め方ができたのは、良い判断だったと思っています。

Tomoyaこれが元になっているサービスです!
※自分が運営しているサービスです
この時点ではまだ気づいていなかったこと
企画の段階では、「単発のやり取りだけで、本当にVPSらしさを表現できるのか」という点に、まだ深く踏み込めていませんでした。この点には後になって自分自身で気づき、そこからDiscord Bot化に向かっていくことになるのですが、企画のこの時点では、そこまで見えていませんでした。
このときはまだ、コピーしてきたシステムを、どうすれば自分の思い描くテーマに一貫性を持った形にできるか、そこで精一杯でした。
今振り返ると、今回のテーマは「やり方」そのものよりも、「方向性」に悩むことの方が大きかったテーマだったと感じています。
次回予告
Tomoya次回は、いよいよこのコピーから、必要な部分を残しつつ不要な部分を省いていく作業を、Cursorを使って進めていきます。

これからCursorメインに使って改良していくので、Cursorに興味を持った方は以下のリンクから契約するのを推奨しています。
以下のリンクから月額プランを契約すると、初月は半額で利用できます。コストが心配な方でも、最初の1か月は最低10ドルから試せるので、気軽に始めやすいと思います(解約も簡単にできます)。
他のVPSは「さくらインターネットから!」

前回のおすすめ記事はこちらから



VPSを使った24時間稼働システムを作成した記事はこちら



コメント