よーへん(バーチャル学芸員・バーチャルライブコーダ)

電子工作やプログラミングのHowtoを逆引き形式で掲載しています。作りたいモノを決めて…

よーへん(バーチャル学芸員・バーチャルライブコーダ)

電子工作やプログラミングのHowtoを逆引き形式で掲載しています。作りたいモノを決めて学んでいくスタイル。プログラマではないので、コードの汚さはお許しを。参照していないものに関しては、コピペ改変まったく問いません。

記事一覧

Unity+Whisper+OpenAI+VOICEVOXのセットアップ

Unityを使ってAIキャラクターと対話するプロジェクトを作る際の準備について自分備忘録としてメモしました。 VRM最新バージョン(2024.8.19現在)の仕様が変わったため、uLip…

uLipSyncをTimelineで使う&音声ファイルから口パクアニメーションを自動で作る

uLipSyncをTimelineで使う際にハマったことがあったので、忘れないようにメモしました。 VRM0.xを使う場合、Githubのページからダウンロードしたパッケージをインポートす…

Quest3で疑似フルトラモーキャプする(上半身+手キャプチャ、下半身機械学習での動作)

こんな感じになります。 準備こちらを参考にさせて頂きました。SDKのバージョンが違うので諸所異なっています。 1.2021以降でプロジェクトを作成し、以下をインポートす…

GPT-4oとFunction callingをUnityで動かす

今さらですが、ようやくFunction callingをUnityで使う方法が分かったので、忘れないうちにメモをしておきます。 これはLLMから関数を実行するもので、そこに処理を書いて…

非公式クライアントライブラリClaudiaを使って、Claude3とFunction CallingをUnityで動かす

Claude3をUnityで動かすにあたり、ChatGPTのAPIと同じくUnityWebRequestでAPIを呼び出して対話することもできるのですが、今回はLLMの出力から関数を呼び出すFunction Call…

rinnaのKoeiromap API(v1.0)を使ってUnityでテキスト読み上げをする

AIキャラクターの実装にあたって、Style-Bert-VITS2を使ってテキストの読み上げをしていたのですが、Quest3+PCで動かしたときに(おそらく)VRAMが足りずQuest3の画面に黒い…

Modular avatarで着替えさせたVRCアバターをVRMにする

Modular avatarで着替えさせたVRCアバターをVRM Converter for VRChatを使ってVRMにしたとき、(おそらく)BlendShapeが暴走してメッシュがおかしくなることがあります。顔の…

Whisper+Unityでマイクの音量によって音声の書き起こしを行う

WhisperとUnityを使って音声の書き起こしを行います。ボタンを押してマイクに話すと書き起こしが動作するという安全策を多くは取りますが、いちいちボタンを押すのが煩わし…

GPT-4oをUnityで動かす

OpenAIから新しいモデル「GPT-4o」が出ました。文章生成・音声・画像すべての能力がアップされているそうなので、テキスト生成・画像解析を一通りUnityでやってみることに…

Unityを使ってChatGPTとテキスト対話する

シンプルにUnityのInputFieldに質問したいテキストを入力し、ボタンを押したらChatGPTが返答してくれるというものを作ります。 いちばんのベースになるものですが、忘れて…

Whisper+ChatGPT+Style-Bert-VITS2でUnityを使ってAIと会話する

Whisper+ChatGPT+Style-Bert-VITS2を使って、以下ができるようにするメモです。 1.Whisperで音声認識する 2.1.で音声認識したものをChatGPTに送って返答が返ってくる 3.返…

Unityでランダムにアニメーションを再生する

※他の状態に遷移したときにアニメーションの再生が終わらないと遷移が開始されないというトラブルがあったので、それを解消したバージョンを追記しました。 受容がありそ…

Style-Bert-VITS2の読み上げをUnityで使う(補足あり)

Style-Bert-VITS2のAPIにHTTPリクエストを送信し、生成された読み上げ用サウンドファイルをUnityで再生します。 ・Style-Bert-VITS2のダウンロード ・ローカルセットアッ…

PythonでOpenAIを使って対話する

APIが新しくなり、以前のよくある「openai.Completion.create」が使えなくなっているので、改めてメモしました。 一応OpenAIのクイックスタートガイドに例が載っていますが…

OpenAIの読み上げ機能を使って、音声を書き出すアプリを作りPowerPointで使う

OpenAIが少し前に出した読み上げ機能を使って、テキストを音声ファイル(.mp3)に書き出す方法をメモしました。Unityなどでテキストをすぐに読み上げるようにするには工夫が…

uOSCでInputFieldからIPアドレスを入力する

ローカル通信をUnityアプリで行う場合、uOSCを使うことが多いですが、IPアドレスがインスペクタから入力するようになっています。 ライブラリそのものに手を入れても良いの…

Unity+Whisper+OpenAI+VOICEVOXのセットアップ

Unityを使ってAIキャラクターと対話するプロジェクトを作る際の準備について自分備忘録としてメモしました。
VRM最新バージョン(2024.8.19現在)の仕様が変わったため、uLipSyncなどのライブラリを入れる順番に気を付ける必要が出てきました。
具体的なコードについては参考部分をリンクしました。

準備1.PackageManagerから「Burst」をインポートする

2.VRM0.x

もっとみる

uLipSyncをTimelineで使う&音声ファイルから口パクアニメーションを自動で作る

uLipSyncをTimelineで使う際にハマったことがあったので、忘れないようにメモしました。
VRM0.xを使う場合、Githubのページからダウンロードしたパッケージをインポートすると、「uLipSync BlendShape VRM」がエラーになっていて使えない場合があります。その回避方法も含めてメモしています。
(これはuLipSyncが悪いのではなく、Unityの仕様だそうです)

もっとみる

Quest3で疑似フルトラモーキャプする(上半身+手キャプチャ、下半身機械学習での動作)

こんな感じになります。

準備こちらを参考にさせて頂きました。SDKのバージョンが違うので諸所異なっています。

1.2021以降でプロジェクトを作成し、以下をインポートする

2.Build SettingsでプラットフォームをAndroidにSwitchする
3.「Oculus」→「Tools」→「Project Setup Tool」を選択して、FixAllやApllyを押して赤い警告マーク

もっとみる

GPT-4oとFunction callingをUnityで動かす

今さらですが、ようやくFunction callingをUnityで使う方法が分かったので、忘れないうちにメモをしておきます。
これはLLMから関数を実行するもので、そこに処理を書いておけば特定の処理を呼び出して実行することができます。
例えば以下のようなことができます。
・「写真を撮って」がトリガー→写真(スクリーンショット)を撮る
・「前へ進んで」がトリガー→オブジェクトを前方に移動させる

もっとみる

非公式クライアントライブラリClaudiaを使って、Claude3とFunction CallingをUnityで動かす

Claude3をUnityで動かすにあたり、ChatGPTのAPIと同じくUnityWebRequestでAPIを呼び出して対話することもできるのですが、今回はLLMの出力から関数を呼び出すFunction Callingも簡単に実装できる非公式ライブラリ「Claudia」を使ってUnityで対話します。またFunction Callingも実装していきます。
非公式と言ってもUniTaskを作っ

もっとみる

rinnaのKoeiromap API(v1.0)を使ってUnityでテキスト読み上げをする

AIキャラクターの実装にあたって、Style-Bert-VITS2を使ってテキストの読み上げをしていたのですが、Quest3+PCで動かしたときに(おそらく)VRAMが足りずQuest3の画面に黒いブロックノイズが乗ってしまいました。
動作もかなり重く遅くなっていたので、別の読み上げ手段を探していたところ、rinnaのKoeiromap APIを使うことにしました。
サーバ上で処理をしているWhi

もっとみる

Modular avatarで着替えさせたVRCアバターをVRMにする

Modular avatarで着替えさせたVRCアバターをVRM Converter for VRChatを使ってVRMにしたとき、(おそらく)BlendShapeが暴走してメッシュがおかしくなることがあります。顔のメッシュもおかしいので、SpringBoneが原因とは一眼には言えない気がします。
これはおま環か特定のアバターか原因が分かりませんが、正常に書き出す方法をメモしておきます。

準備1

もっとみる

Whisper+Unityでマイクの音量によって音声の書き起こしを行う

WhisperとUnityを使って音声の書き起こしを行います。ボタンを押してマイクに話すと書き起こしが動作するという安全策を多くは取りますが、いちいちボタンを押すのが煩わしい場合があります。
そこでここでは音量をトリガーにして、マイクの音量が特定の範囲内であれば書き起こしを行うようにします。
どうやっても上手くいかなかったので、こちらのライブラリを参考にさせて頂きました。ありがとうございます。

もっとみる

GPT-4oをUnityで動かす

OpenAIから新しいモデル「GPT-4o」が出ました。文章生成・音声・画像すべての能力がアップされているそうなので、テキスト生成・画像解析を一通りUnityでやってみることにします。

基本的なコードはこちらを参考にさせて頂きました。ありがとうございます。

準備1.以下からUniTaskをダウンロードし、インポートする

2.UIのInputField、Button、Textを作成する
3.J

もっとみる

Unityを使ってChatGPTとテキスト対話する

シンプルにUnityのInputFieldに質問したいテキストを入力し、ボタンを押したらChatGPTが返答してくれるというものを作ります。
いちばんのベースになるものですが、忘れてしまうこともあるので個人的メモです。
なおコードの作成にあたり、下記を参考にさせて頂いています。ありがとうございます。

準備1.以下からUniTaskをダウンロードし、インポートする

2.UIのInputField

もっとみる

Whisper+ChatGPT+Style-Bert-VITS2でUnityを使ってAIと会話する

Whisper+ChatGPT+Style-Bert-VITS2を使って、以下ができるようにするメモです。
1.Whisperで音声認識する
2.1.で音声認識したものをChatGPTに送って返答が返ってくる
3.返答をStyle-Bert-VITS2で読み上げさせ、同時に口パクさせる
といったものです。2.の時点で感情表現も返すようにChatGPTに指示をしているので、それを使えば表情やアニメー

もっとみる

Unityでランダムにアニメーションを再生する

※他の状態に遷移したときにアニメーションの再生が終わらないと遷移が開始されないというトラブルがあったので、それを解消したバージョンを追記しました。

受容がありそうでなかなか情報がなかったのでメモしました。
こちらを参考にさせて頂きましたが、Unityの仕様が2024年現在とは異なるため、一部修正が必要でした。

今回の仕様は拡張しやすくするため、以下のようにしました。
1.Playボタンを押すと

もっとみる

Style-Bert-VITS2の読み上げをUnityで使う(補足あり)

Style-Bert-VITS2のAPIにHTTPリクエストを送信し、生成された読み上げ用サウンドファイルをUnityで再生します。

・Style-Bert-VITS2のダウンロード
・ローカルセットアップ
・モデルインポート

はすでにできているとします。
Style-Bert-VITS2のAPIでの読み上げは100文字が限界ですが、AIキャラクターとのやり取りの場合は100文字がちょうどいい

もっとみる

PythonでOpenAIを使って対話する

APIが新しくなり、以前のよくある「openai.Completion.create」が使えなくなっているので、改めてメモしました。
一応OpenAIのクイックスタートガイドに例が載っていますが、返答だけ取り出す方法が書かれていなかったので、それを追記しています。
ロールの指定の方法などは以前と変わりませんが、「openai.Completion.create」が使えないのと本文取り出しの方法だけ

もっとみる

OpenAIの読み上げ機能を使って、音声を書き出すアプリを作りPowerPointで使う

OpenAIが少し前に出した読み上げ機能を使って、テキストを音声ファイル(.mp3)に書き出す方法をメモしました。Unityなどでテキストをすぐに読み上げるようにするには工夫が必要ですが、所用でファイルにしてPowerPointに埋め込む必要があったので、ひとまずこの方法で行います。
なおこの内容は2024年2月22日時点のものです。

準備1.Python 3.11.7をインストールする

2.

もっとみる

uOSCでInputFieldからIPアドレスを入力する

ローカル通信をUnityアプリで行う場合、uOSCを使うことが多いですが、IPアドレスがインスペクタから入力するようになっています。
ライブラリそのものに手を入れても良いのですが少し怖いので、別途IPアドレスを上書きする方法を取ることにしました。

uOSCのインポート下記からuOSCのUnityパッケージをダウンロードし、インポートします。

PCアプリでのIPアドレス入力1.自分のプロジェクト

もっとみる