ChatGPTを利用して、VRMにしゃべってもらうWindowsアプリを作りました。
VRoidStudioを利用して作った3Dキャラクターが、自分の質問に答えてくれています。
VRMの3Dキャラクターを入れ替えることで、自分の作った3Dキャラクターで体験できるようになっています。良かったら試してみてください。リポジトリはこちらです。
前提
- Windows10(音声入力がWindowsでかつ10が前提で、Windows11では動きません)
- Unity 2021.2.4f1
- VRM
注意
- voicevox_engineは含まれていません(使い方を参照しくてください)
- 動画の背景は有料Assetなので含まれていません
使い方
- OpenAIのAPIKeyを作成して、SampleSceneにいるTesterのInspectorのApi Keyに設定します
- voicevox_engineをdockerで起動します(※1)
- Unityを実行して、ConsoleにStart speech recognition, waiting for your voice...と出てきていることを確認します
- 話しかけてください!ドレが回答してくれるはずです。
※1
dockerでなくても大丈夫で、こちらで代替できる、はずです。GUIを起動するだけ内部的にvoicevox_engineが起動されるため、それを利用できる、はずです。(どなたか試した方がいたら教えていただけると幸いです。)
注意
- ときどき音声認識がうまく反応しないときがあります。その場合、再実行してみてください。
VRMの入れ替え方
- vrmをドラッグアンドロップでインポートします。
- 1でインポートしたvrmをHierachyに配置します。
- doreのPositionをコピーして、カメラ位置まで移動させます。
- おそらく後ろを向いているのでY軸で180度回転させます。(doreのrotation参照)
- doreを削除します。
動画の補足
- Unityを実行すると、音声入力待ちの状態になります。(上記動画では"塩の作り方を教えてください"といった後です)
- 音声入力が完了すると、テキストで画面下に表示されます。(上記動画の"塩の作り方を教えてください"の箇所です)
- 2に続いて、ChatGPTへテキストを基にリクエストを出してレスポンスを待ちます。(回答内容によって10秒ほどかかることがあります)
- ChatGPTからレスポンスが返ってくると、その内容をVOICEVOXに連携して音声合成を待ちます。(
- 音声合成が完了すると、VRMのBlendshapeとOVRLipSyncを利用してVRMのアバターがしゃべりだしてくれます。(上記動画はこの5からです)
使っているOSS
| Library | License |
|---|---|
| unity-voicevox-bridge | MIT license |
| voicevox_engine | Unknown, LGPL-3.0 licenses found |
| VRMLipSyncContextMorphTarget | Unknown, |
| UniVRM | MIT license |
| UniTask | MIT license |