先日、タイトルの件についてRTAをしました。
その結果、だいたい2時間くらいで以下のようなChatGPT+3Dモデル対話エージェントが完成しました。
RTAではユーザーの話しかけに対する反応速度が遅くなっていたり(長文の読み上げ音声の生成&ダウンロードに時間がかかっている)、そもそも2時間って結構大変だなーみたいなのがあるので、基本的に"Out-of-the-Box"で動くサンプルを公開しました。
この記事ではChatGPTとおしゃべりするまでの手順と、その次に進みたい(自らもっとカスタマイズしたい)方向けのTipsを説明したいと思います。
音声認識・音声合成・ChatGPTのAPIKeyの取得
まずはAPI Keyの類を準備します。音声認識・音声合成としてGoogle / Azure / Watsonのいずれかを準備してください。
サービスにより設定手順が若干異なりますが、この記事では、APIKeyだけ設定すればOKかつスピードの速いGoogleを利用しますので、APIKeyを控えておきます。
次にOpenAIのAPIも利用できるようにして、APIKeyを控えておきましょう。
プロジェクトの準備
Unityを起動して3Dプロジェクトを作成したら、以下のライブラリをこの順番でインポートします。なおこの記事ではUnity2021.3 LTSを使用しています。
- UniTask 2.3.3
- OVRLipSync v29
- ChatdollKit 0.5.3
- ChatdollKit Demo 0.5.3
- Anime Girl Idle Animations Free
読み込みが完了したら、ChatdollKit/Demo
フォルダの中のDemoChat
シーンを開きます。ここまでうまくいったら、出来上がりとしてはこんな画面になっていると思います。
ChatGTPデモアプリの設定
はじめに音声認識・音声合成の設定をしていきます。ヒエラルキー上でChatdollKit
を選択して、インスペクターのChatdoll Kit
にてSpeech Service
を選択してください。
するとAPIKeyや言語設定など必要項目が表示されますので、あわせて入力します。Googleの場合はAPIKeyのみ入力すればOKです。
また、Chat GPT Skill
を探して、ここにOpenAIのAPIKeyを入力します。
動作確認
なんと、もう設定完了です。それでは再生ボタンを押して「こんにちは」と話しかけてみましょう。「どうしたの?」と聞き返されてメッセージボックスに「Listening...」と表示されたら、そこからは好きなように会話してください。
おつかれさまでした。おそらくここまで15分くらいでできたんじゃないかと思います。
とはいえ、これでめでたしめでたしになる方は少ないと思いますので、ここから先何がしたいか?を私なりに想像していかに「次のステップ」につながるTipsを書いていきたいと思います。
プロンプトエンジニアリングを楽しむ
インスペクターでChatGPTSkillのUserRole
、AssistantRole
、Condition
をいじることで、さまざまなプロンプトエンジニアリングができると思います。
この入力に応じて、system
メッセージとしては以下の内容が送信されます。
[Roles]
user: {UserRoleの設定値}
assistant: {AssistantRoleの設定値}
[Condition]
{Conditionの設定値}
これらの値を変更することで、デフォルトの雑談エージェントではなくさまざまなタスクをこなせるようになったりとか、キャラクター設定や口調を変化させることができます。いろいろ試してみましょう!
かわいい・かっこいい声に変更する
クラウドサービスの音声合成ではいまいち対話していて楽しくありません。VOICEVOXやVOICEROIDのサーバーを立てて、それに繋ぎましょう。
- VOICEVOX 無料で利用できる音声読み上げソフト。キャラクターも充実!!
サーバーのたて方についてはネットで検索するかChatGPTに聞いていただくとして、ChatdollKitでのVOICEVOX利用方法は以下の通りです。
VOICEROIDも同じようにアタッチしてサーバーアドレスを入力すればOKです。
3Dモデルを変更する
ヒエラルキーからChatdollKitDemo(3Dモデルの女の子)を削除して、ご自身で用意されたVRMファイルを読み込んだらヒエラルキーに配置します。
その3DモデルのオブジェクトをインスペクターのModel Controller
のAvatar Model
にセットしてから、メニューのSetup ModelController
とSetup Animator
を実行すればOKです。アイドルアニメーションを変更するには、3DモデルのAnimatorコンポーネントに設定されたコントローラーのDefault
ステートのものを修正してください。
VRoidなどで生成したVRMではない場合、実行時にエラーが発生する場合があります。その場合、以下の項目を見直して正しく設定してください。
-
Model Controller
のFace
に、表情のシェイプキーが設定されたSkinnedMeshRendererを設定(基本的に顔のはず) -
Model Controller
のBlink
に、モデルのまばたきを制御するためのシェイプキーを入力 -
OVRLipSync Context Morph Target
に、表情のシェイプキーが設定されたSkinnedMeshRendererを設定(基本的に顔のはず) - 上記の
Viseme to Blend Targets
に各音素のシェイプキーを設定。この辺はネットをみてください
以上、ChatGPT+3Dモデルの音声対話エージェントのセットアップ方法と、その声と見た目、そして話し方や性格を等変更するためのTipsでした。
ずっとChatdollKitを使う必要もないと思いますので、慣れてきたらご自身でプラットフォームから作ってみるのも良いでしょう。
それでは、Enjoy AI Virtual Agent!