【非エンジニアが挑む】VOICEVOX×Geminiで音声AIに挑戦|なぜあえてVPSでやるのか

(非エンジニア)【非エンジニアが挑む】VOICEVOX×Geminiで音声AIに挑戦|なぜあえてVPSでやるのか

前回の記事はこちらから

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のため無料で使えます(商用利用については規約の確認が必要です)。

AI音声生成システム基本概念フロー。①音声・テキスト入力、②Gemini、③VOICEVOX、④音声出力を図解
入力されたテキストや音声をGeminiで理解・生成し、VOICEVOXを通して出力するまでの基本の流れを示しています。

なぜ本番はサーバーレスなのに、あえてVPSで作るのか

ScriptSpeakの仕組みについて

現在自分が運営しているScriptSpeakは、GCPをバックエンドの基盤とし、Cloud Functionsというサーバーレスの仕組みで動かしています。

これにより、いつでも音声生成ができるWebアプリとして成立しています。

Tomoya

それにもかかわらず、今回はVPS・常時稼働という方針にしました。

理由は、GCPはいわば外部のサービスを活用しているにすぎず、利用量が増えるほど従量課金が発生していく仕組みだからです。

一方でVPSは、借り物ではあるものの、自分専用のPCをクラウド環境の中に持っているような状態です。これによって、仮の状態ではあっても、自分のプロダクトを自分のサーバーで動かしている、という形を作り上げられると思っています。

それでもVPSを選んだ理由

細かく見ればVPS自体にもコストはかかっています。それでも、仮の状態ではあっても「自分のプロダクトを自分のサーバーで動かしている」という形を作り上げられることに意味があると考えました。

これまでは外部のサービスを組み合わせてプロダクトを作ってきたので、VPSで常時稼働させるという経験そのものが、自分にとって新しい学びになると感じています。

サーバーレス(GCP)

VPS(常時稼働)

Cloud Functions を中心とした構成

外部のサービスを「借りて活用する」形

  • リクエストがあったときだけ起動する
  • 使った分だけの従量課金。使うほどコストが積み上がる
  • インフラの面倒はプラットフォーム側が見てくれる
  • スケールは自動。運用の手離れが非常に良い
  • 土台そのものは自分の管理下にない

クラウド上に置いた自分専用のマシン

クラウドの中に「自分のPCを持つ」形

  • 止めない限りずっと動き続ける常時稼働
  • 基本は月額固定。使用量で跳ね上がらない
  • OS・ミドルウェア・監視まで自分で面倒を見る
  • スケールは手動。設計と運用の判断が自分に返ってくる
  • 借り物ではあるが、実質「自分のサーバー」として扱える
比較軸サーバーレス
(GCP / Cloud Functions)
VPS
(常時稼働)
位置づけ外部サービスの活用自分専用の実行環境の保有
課金モデル従量課金(使うほど増える)月額固定(読みやすい)
稼働形態呼ばれたときだけ起動24時間動き続ける
運用の手間ほぼ不要(マネージド)自分で構築・保守・監視
コントロール範囲アプリのコードまでOS・プロセス・ネットワークまで
得られる学びサービスの組み合わせ方サーバーを持ち、動かし続ける経験
サーバーレス(Cloud Functions)とVPS(仮想プライベートサーバー)の機能・コスト比較図
サーバーレスとVPS(仮想プライベートサーバー)の仕組み、コスト、運用面の差異を整理して比較した図です

キャラクター選び、そして利用規約という壁

VOICEVOXのキャラクター選びについても悩みました。

VOICEVOXといえば「ずんだもん」が有名で、YouTubeなどを見ている人なら聞いたことがあるはずです。

VOICEVOX公式サイトのキャラクター一覧画面。四国めたん、ずんだもん、春日部つむぎなどを表示
無料で利用できるテキスト読み上げソフト「VOICEVOX」の公式サイトにおけるキャラクター紹介画面です。
Tomoya

ただ、今回はあえて新しいキャラクターに挑戦してみようと思いました。

STEP
公式紹介を聴き込んで、候補を5名にリストアップ

「声の聴き心地がすっと入ってきそうか」を基準に、男女それぞれからピックアップしました。全員を導入することも考えましたが、あえてここは絞ろうとも考えていました。

STEP
商用利用の規約をひとつずつ確認していく

ここが最大の壁でした。「声が好きかどうか」より前に、商用利用が明確に許可されているかを確認する必要があります。結果、候補は一気に削られていきました。

①:5候補 

②:3規約で脱落 

③:2採用決定

STEP
結果、男女1名ずつというちょうど良い着地に

男性ボイス

雀松朱司

柔らかく聴きやすい語り口

女性ボイス

春歌ナナ

明るく通りが良い声質

Tomoya

正直なところ、東北ズン子の声はかなり気に入っていたので、少し惜しい気持ちもありました。

なお、商用規約に引っかかったといっても、多くの場合は「個別の問い合わせが必要」というだけで、必ずしも一律禁止というわけではありません。

Tomoya

VoiceVoxに興味を持った方は以下のリンクから公式サイトへ遷移できます。


本番サービスの「コピー」を使うという判断

土台となるシステムの構築については、今回はScriptSpeakのソースコードを自分自身が持っているので、それをコピーして改良していく形にしました。

ただし、運用中の本番サービスに絶対に害が及ばないよう、取り扱いには十分注意しながら進めています。

Tomoya

名前の変更、環境変数の削除、不要な機能の削除、そしてGitHubへの接続先の向きには、特に気を使いました。

正直、不安はありました。コピーした内部の環境変数はきちんと削除し、本番のものと混同しないようにする。そして、GitHubにプッシュする前には必ず一呼吸置く、というのを自分の中のルールにしていました。何も考えずにプッシュしてしまうと、最悪の場合、接続先が本番のリポジトリのままで、そちらが書き換わってしまう可能性もあったからです。

それでも、既存のシステムを土台に使ったことで、大幅な時間短縮になりました。必要な部分を残しつつ、使わない部分をシンプルに削っていく、という進め方ができたのは、良い判断だったと思っています。

ScriptSpeakの画面。「声優もブースもなしで、毎週の音声を量産する。」のテキストと設定フォームを表示
音声作成サービス「ScriptSpeak」の画面で、テキスト入力や声のタイプ設定により手軽に音声生成が可能です。
Tomoya

これが元になっているサービスです!

※自分が運営しているサービスです


この時点ではまだ気づいていなかったこと

企画の段階では、「単発のやり取りだけで、本当にVPSらしさを表現できるのか」という点に、まだ深く踏み込めていませんでした。この点には後になって自分自身で気づき、そこからDiscord Bot化に向かっていくことになるのですが、企画のこの時点では、そこまで見えていませんでした。

このときはまだ、コピーしてきたシステムを、どうすれば自分の思い描くテーマに一貫性を持った形にできるか、そこで精一杯でした。

今振り返ると、今回のテーマは「やり方」そのものよりも、「方向性」に悩むことの方が大きかったテーマだったと感じています。


次回予告

Tomoya

次回は、いよいよこのコピーから、必要な部分を残しつつ不要な部分を省いていく作業を、Cursorを使って進めていきます。

次回:Firebase脱却編。Firebase機能をVPSへ自前実装で置き換える構想を示すバナー

これからCursorメインに使って改良していくので、Cursorに興味を持った方は以下のリンクから契約するのを推奨しています。

以下のリンクから月額プランを契約すると、初月は半額で利用できます。コストが心配な方でも、最初の1か月は最低10ドルから試せるので、気軽に始めやすいと思います(解約も簡単にできます)。

他のVPSは「さくらインターネットから!」

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

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

(非エンジニア)【非エンジニアが挑む】VOICEVOX×Geminiで音声AIに挑戦|なぜあえてVPSでやるのか

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

始めまして。このブログを運営するTomoyaです。
未経験個人開発者。AI×個人開発(Vibe Cording)で学習して参入してくれる人が増えて広がっていくと良いなと思って始めました。

実際に作成→デプロイ(公開)→運営を行ってそれについての問題や疑問を記録していきます。
また行っていく上で内容(セキュリティ・制限など)にもこだわっていきたいなと思っています。

コメント

コメントする


目次