うえぞう@うな技研代表 Profile picture
Mar 3, 2023 30 tweets 8 min read Read on X
今夜はChatGPT+3Dモデル+音声認識+音声合成(VOICEVOX / VOICEROID)のバーチャルエージェント開発RTAをやろうと思います #ChatGPT #AIバーチャルエージェント開発RTA ツイートを辿れば誰でも作れるように、ね。
いつもの始まりの場所です。 #ChatGPT #AIバーチャルエージェント開発RTA Image
まずはパッケージのインポートから。今回も3Dモデル対話エージェントのフレームワークとしてChatdollKitを使います #ChatGPT #AIバーチャルエージェント開発RTA github.com/uezo/ChatdollK… Image
OVRLipSyncはiOSアプリとして使えないので、uLipSyncです。このほかにUniVRMをインポートしていきます。のちにVRMファイルをランタイムにインポートすることを考えて、UniVRM0.89を利用します。1.x系統なんかうまくいかなかった #ChatGPT #AIバーチャルエージェント開発RTA
アニメーションのアセットとしてこれを使います。私は有償版ですがとりあえず無償版でもよいでしょう。気に入ったら購入しましょう assetstore.unity.com/packages/3d/an…
VRMのモデル読み込みとシーンへの配置が完了しました。ここからが本番です。バーチャルエージェントにするべくChatdollKitのセットアップをしていきます Image
そうそう、音声認識にAzure / Google / WatsonのいずれかのAPIKeyが必要になります。今回はGoogleを使います。ChatGPTも使うので本当はWhisper使いたいところですね。今度対応します Image
ウェイクワード(会話開始の合図)、会話終了ワード、AIエージェント側のプロンプトを適当に決めて入力します。このケースでは、「こんにちは」と話しかけると会話が始まるようにします。そろそろ動くよ Image
はい、おうむ返しが動きました〜🎉
(微妙にAPIKeyの一部が写っちゃってるのですが見なかったことにしてくださいこのキーはあとで無効化します)
声がGoogleさんだとやる気も上がらないので、このタイミングでVOICEROIDさんに変更します。本当にすばらしいソフトです!作者さまに感謝!!! voicevox.hiroshiba.jp
こちらの記事のように、特別なサーバー構築をすることなくネットワーク経由で利用できます。私の場合、LANに既にVOICEVOXサーバーがありますのでこちらの手順は省略しますね qiita.com/yamanohappa/it…
作業はVoicevoxTTSLoaderをアタッチしてGoogleTTSLoaderを非アクティブにするだけなのですが、声を誰にするか悩んで10分もかかっちゃいました。四国めたんさんにお願いしました。
さて、対話ができるようになったのでいよいよChatGTPに繋いでいきましょう!!ここからが本番です💪
ここまでテスト用におうむ返しのスキル(EchoSkill)をアタッチしていたのですが、それを削除して、ExampleにOpenAIのdavinci用のAIChatSkillがあるのでそれをアタッチします。temperatureがなぜかint型だったのでfloatにして、それぞれ適当な値とAPIKeyを入れます Image
ということでね、davinci用のスクリプトをgpt-3.5-turbo用に修正します。せっかくなのでプロンプトエンジニアリングできるようにインメモリでコンテキストも持たせましょう
もうちょっと。API Referenceはここね platform.openai.com/docs/api-refer…
なんか400かえってきちゃう😖
はーいこんなかんじでね、会話の条件とか履歴をprivate変数で持たせて、条件+直近n件+今回の入力をリクエストとしてChatGPTを呼び出します ImageImage
会話の条件はこんなかんじでインスペクターに設定したよ。送信する履歴の件数はとりあえず10件 Image
それでは話しかけてみよう!!!!
ChatGPT+3Dモデル+音声認識+音声読み上げ(VOICEVOX)のバーチャルエージェント、できたよー🙌表情とかアニメーションはつけてない荒削りな状態までならちょうど2時間。みんなもチャレンジしてみてね! #ChatGPT #AIバーチャルエージェント開発RTA
AIエージェント側の発話待ち時間はほとんどが音声合成のもの。ChatGPTはめちゃ速い。
音声合成は「。」で区切って並列で読み込めばもっと速くなるはず。やり方の問題ですね。
uLipSyncはこないだWebGL作ったのでうっかりWebGL用のものを使ってしまったけど、全然その必要はないので本家を入れましょう。

スレッドで今回利用したライブラリーとかサービスとかを紹介していきます。
まず、3Dモデルベースの音声対話エージェントのフレームワークとしてChatdollKit
github.com/uezo/ChatdollK…
リップシンク(発話に合わせた口パク)のuLipSync。iOSアプリのビルドにも(頑張れば)WebGLにも対応できるので、アプリ組み込みのOSSでは一択なのではと思ってます
github.com/hecomi/uLipSync
VRMをUnityで利用するときのお馴染み、UniVRM。1.xが出ていますが、VRMファイルを読み込んでインスタンス化する手順がバージョン毎に違ったりして、動かせるのが0.89だったのでこちらを使いました github.com/vrm-c/UniVRM/r…
無料で利用できる音声合成ソフトのVOICEVOX。キャラ拡充も機能向上もすごい!本当に感謝。良いと思ったらpixivで寄付しましょう voicevox.hiroshiba.jp hiho.fanbox.cc
あとこのかわいい3Dモデルの子はカリンちゃん。耳とかしっぽとかちょっといじっててすみません💦 booth.pm/ja/items/34709…
以上、AIバーチャルエージェント開発RTAでした!応援ありがとうございました〜🙌 #ChatGPT #AIバーチャルエージェント開発RTA
ChatGPT連携部分のスクリプト、まだリリースパッケージに含んでないけどGitHubにあげときました。レスポンスが遅く見えちゃうの悔しかったので、改良済み。 #ChatGPT
github.com/uezo/ChatdollK…
総括しときました。デモにVRMも同梱したので同じようなの15分で作れますよ。これで一旦動くもの作って改造したり部品取りしたりしてくださいな qiita.com/uezo/items/7ff…

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with うえぞう@うな技研代表

うえぞう@うな技研代表 Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @uezochan

Mar 26, 2023
ChatGPTのサンプルをそのままARプロジェクトで動かすだけで現実世界におしゃべりできるキャラクター召喚できて笑っちゃった🤣
FPS30手前までしか出てないのはちょっと原因調べないといかんですね
- ARCameraあたりにAudioListenerつける
- iOSの場合はWebGLMicrophoneのクラスの中身全体をUNITY_WEBGLの条件付きコンパイルのやつで囲む(今度パッケージ側で対応します)

くらいかな?みんなもやってみてね!
Read 4 tweets
Mar 26, 2023
おっ WebGLまわりのやつ除外しないとChatdollKitのiOSビルド通らないんかな?
ああ、、ここか。そりゃそうだ
#if UNITY_WEBGLを雑にクラスの中身全部にしたら通りました
Read 4 tweets
Mar 25, 2023
ChatGPT対応の3Dモデル音声対話エージェント開発キット「ChatdollKit」、表情と連動する感情シミュレーターやVRMの実行時ロード等に対応したv0.6リリースしました🎉 github.com/uezo/ChatdollK…
あっ 一応最後に仲直りしてます
✅ChatGPTによる感情シミュレーションと表情の連動
感情データを会話内容とセットでJSON形式で受け取り、感情変化量の閾値を超えると表情を変化させる仕組み。感情に一致する表情はVRMのBlendShapeProxyで定義したものをそのまま利用 ImageImage
Read 4 tweets
Mar 24, 2023
✅ChatGPTスキルのプロンプト設定方法の修正
✅感情エンジンと表情連動のサンプル追加
✅API応答待ちの演出サンプルをChatGPTサンプルに追加
✅VRMのアプリ実行時ロードへの対応
✅パフォーマンスと安定性の大幅な向上
✅Gateboxアプリ雛形同梱
ここで打ち止め。あしたv0.6リリースします。
結構大規模修正になってしまった github.com/uezo/ChatdollK… Image
ChatGPTでおしゃべりできて感情シミュレーションと連動して表情も変わるアプリ(Gatebox含む)、誇張表現なしに30分以内に作れると思います
Read 5 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us!

:(