🧪

ChatGPTでVOICEROID2の作業を効率化するWebアプリを作ってみた~その2 実装編~

に公開

🧪 ChatGPTでVOICEROID2の作業を効率化するWebアプリを作ってみた~その2 実装編~

前回の記事では、ChatGPTを活用して「VOICEROID2をWebアプリから制御する」構想とChatGPTを活用して環境構築をしてく過程を紹介しました。
今回はいよいよ、実際にアプリを構築して動かすまでの過程をまとめます。

開発中はChatGPTと会話しながら進めたリアルな記録を元にしているので、同じように構築してみたい方にも参考になるはずです。

🚀 今回の実装手順まとめ(全体の流れ)

  1. PythonでFlaskサーバーを構築
     → VueからPOSTリクエストを受け取るAPIを作成し、seikasay2を実行する処理を実装

  2. Vueで音声入力フォームを作成
     → ユーザーがテキストや各種パラメータを入力し、サーバーに送信できるように設計

  3. ローカルでの動作テスト
     → FlaskサーバーとVueアプリを同時に起動し、音声生成までの一連の流れを確認

  4. Gitでプロジェクトを管理
     → GitHubにリポジトリを作成し、コードと環境情報をバージョン管理

📊 今回作成するのWebアプリの簡単な構成図

前回の記事はこちら
https://zenn.dev/pwrengineer/articles/4ee18ef1828662

🔧 ステップ① FlaskでPythonサーバーを構築

まずはバックエンドであるPythonサーバーを構築。
ポイントは、Vueから送られてくる音声生成指示を受け取り、SeikaSay2コマンドを実行するAPIを作ることです。

以下がChatGPTから得られたFlaskサーバーの実装方法です。

Flaskサーバの実装(ChatGPTの回答)

実装できたら、次は動作確認です。
Flaskサーバを起動して、確認してみましょう。

Flaskサーバの動作確認(ChatGPTの回答)

Flaskサーバが正常に立ち上がるとコマンドプロンプト上で以下のような結果が返ってきます。

🎨 ステップ② Vueでフロントエンドのフォームを作成

次に、ユーザーが操作する入力フォームをVueで作成します。

  • テキスト入力欄
  • cid / speed / pitch / emotion / emotion_value の各パラメータ
  • 送信ボタン

Vueファイル(App.vue)は以下のように構成しました:

Vueフォームの実装(ChatGPTの回答)

そして、こちらが実際に起動させた様子です。

基本はChatGPTの回答をそのまま貼り付けているだけなのですが、すごいですね。


🛡️ ステップ③ 実際に動かしてみる

ここまでの実装ができたら、実際に音声生成を試してみましょう。
まずは、AssistantSeikaで合成音声ソフトを制御できるように起動しておきます。
詳細は、こちらの説明に詳しい内容があります。

https://wiki.hgotoh.jp/documents/tools/assistantseika/assistantseika-000

1. Flaskサーバーを起動

まずは、Flaskサーバーを起動します。

python server.py

2. Vueアプリを起動

次に、Vueアプリを起動します。

npm run dev

3. ブラウザ上で音声生成を実行

ブラウザで http://localhost:5173/ にアクセスし、パラメータを設定して音声生成を実行します。

以下のようにサーバーからの応答が表示されれば成功です

音声生成が成功すると、指定したフォルダに音声ファイルが保存されます。

ちなみにFlaskサーバ側ではログ監視することができます。


📁 ステップ④ Gitにここまでの成果を保存

ここまでの成果をGitに保存しておきましょう。
今回は、GitHubを利用してここまで作成したプロジェクトをリモートに保存します。

# 成功しました。
# Gitにリポジトリを作って管理したいです。
# おすすめのやり方を教えて下さい。
## GitHubのアカウントはあります。
## GitHubデスクトップもすでにあります。
GitHubへの登録について(ChatGPTの回答)

また、今回の実装で利用したPythonの各種ライブラリ(Flaskなど)の情報は保持していつでも環境を再現できるようにしておきたいですよね。
そのために、requirements.txtを作成しておきましょう。

# Gitにコミットする前に今の環境を定義する以下のファイルを作っておこうと思います。
# ガイドしていただけますか?
- pip freeze > requirements.txt
requirements.txtの作成(ChatGPTの回答)

✅ 現時点での実装成果

  • ChatGPTのサポートで、Vue + Flaskで連携する音声生成アプリを構築
  • ユーザー入力 → Python処理 → seikasay2 実行 → 音声ファイル生成 まで一連の動作が完成

ChatGPTの力無しに0からこちらの実装をしていくとなったら、かなり紆余曲折があったと思いますが、ChatGPTを活用することで、かなりスムーズに実装を進めることができました。


🔁 次回予告

次回は、ここまで出来上がった基本的なアプリケーションをより実用的なツールとして改良していく工程を紹介する予定です。

引き続きお楽しみにしてください!

Discussion