3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ChatGPTで自作の3Dキャラ(VRM)におしゃべりしてもらう体験をする

3
Last updated at Posted at 2023-04-05

ChatGPTを利用して、VRMにしゃべってもらうWindowsアプリを作りました。
VRoidStudioを利用して作った3Dキャラクターが、自分の質問に答えてくれています。

VRMの3Dキャラクターを入れ替えることで、自分の作った3Dキャラクターで体験できるようになっています。良かったら試してみてください。リポジトリはこちらです。

前提

  • Windows10(音声入力がWindowsでかつ10が前提で、Windows11では動きません)
  • Unity 2021.2.4f1
  • VRM

注意

  • voicevox_engineは含まれていません(使い方を参照しくてください)
  • 動画の背景は有料Assetなので含まれていません

使い方

  1. OpenAIのAPIKeyを作成して、SampleSceneにいるTesterのInspectorのApi Keyに設定します
  2. voicevox_engineをdockerで起動します(※1)
  3. Unityを実行して、ConsoleにStart speech recognition, waiting for your voice...と出てきていることを確認します
  4. 話しかけてください!ドレが回答してくれるはずです。

※1
dockerでなくても大丈夫で、こちらで代替できる、はずです。GUIを起動するだけ内部的にvoicevox_engineが起動されるため、それを利用できる、はずです。(どなたか試した方がいたら教えていただけると幸いです。)

注意

  • ときどき音声認識がうまく反応しないときがあります。その場合、再実行してみてください。

VRMの入れ替え方

  1. vrmをドラッグアンドロップでインポートします。
  2. 1でインポートしたvrmをHierachyに配置します。
  3. doreのPositionをコピーして、カメラ位置まで移動させます。
  4. おそらく後ろを向いているのでY軸で180度回転させます。(doreのrotation参照)
  5. doreを削除します。

動画の補足

  1. Unityを実行すると、音声入力待ちの状態になります。(上記動画では"塩の作り方を教えてください"といった後です)
  2. 音声入力が完了すると、テキストで画面下に表示されます。(上記動画の"塩の作り方を教えてください"の箇所です)
  3. 2に続いて、ChatGPTへテキストを基にリクエストを出してレスポンスを待ちます。(回答内容によって10秒ほどかかることがあります)
  4. ChatGPTからレスポンスが返ってくると、その内容をVOICEVOXに連携して音声合成を待ちます。(
  5. 音声合成が完了すると、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

参考にしたサイト

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?