ChatGPT・Unity・Cloud RunでAIとおしゃべりする
はじめに
ChatGPTを使ってAIとおしゃべりするアプリを作ったので
どのような構成で作成したかを記載します。
あくまで構成をだけで、作り方は記載していません。
・きっかけ
色んな方が作ってるのを見て作りました。何番煎じでしょうね(他人事)
(Xのツイートですが、こちらユーザについては何故かNot Foundになってます。可愛いのでぜひ見て欲しい)
完成物
キャラクターは春日部つむぎちゃんです。(春日部つむぎ公式サイト)
表示するためデバイスはLooking Glassを使用しています。
音声認識のトリガーに手のモーションキャプチャーを使用しているため、
変なのが映ってます。(後述に記載)
構成図
アプリ画面はUnity、バックエンドをCloud Runで作成しました。
Unityから直接ChatGPTにアクセスしない理由は、今後ChatGPT以外も活用することを想定しているためです。
※Unity -> Chat GPTで作ることもできます
あとUnityやC#を使ったことないため、Pythonなど他言語を使えるGoogle Cloud上で運用したかったためです。
以下の処理となっています。
1.Unityでユーザ音声を取得、音声認識でテキスト化
2.テキストデータをCloud RunにPOST
3.Cloud RunからテキストデータをChatGPT APIにPOST
4.ChatGPT APIのレスポンスをCloud RunからUnityに返信
5.レスポンスのテキストをVoiceVoxで音声変換
6.音声をUnityから出力
使用したサービスについて
Unity
ソースコードはChatGPTに丸投げして作りました。
C#使ったことなく、なんか動いてるからヨシ!って感じになってます。
Leap Motion
Looking Glassのついでに買ったから
当初は他のウィンドウがメインで動作していても、
モーションキャプチャーならキーボードと違ってアプリが反応して音声認識が作動するのでは?っと思い実装しました。
モーションキャプチャーは反応していましたが、音声認識・APIのPOSTは実行されませんでした。
機会を見てボタン式に変更する予定。
折角なので、手を振ったら振り返したりする機能とか追加するかも。
Voicevox
GUIバージョンのVoiceVoxは起動するとlocalhostのサーバを立ち上げます。
指定のURLにPOSTして音声データを取得しています。
[参考]
キャラクターモデル
こちらをお借りしています。
PMXからVRMに変換しています。
Cloud Run
UnityとChatGPT APIの中継です。
Cloud Run上でREST APIを作りました。
フレームワークはPythonのFast APIを使用しています。
ChatGPT APIへのアクセスやプロンプトを格納したり、レスポンスデータの正規化をしています。
今後はvertex AIと連携したりLang Chainを組み込む予定。
おわり
これで終わりではなく色々と機能を組み込んでいく予定です。
一先ずは適当に思いついたことやっていこうと思います。
いずれは個人のパートナーとなるAIとか作れればいいなぁ~など考えてます。
以上です。
読んでいただきありがとうございました。
Discussion