Unity プロジェクトをインポートしてはじめてみよう
Unity プロジェクトのダウンロード

https://github.com/1ft-seabass/kaishi-tseigo-sample-2024-001 にアクセスします。

右上の Code ボタンをクリックします。

Local タブをクリックします。

Download ZIP ボタンをクリックして Unity プロジェクトをダウンロードします。

ダウンロードフォルダで kaishi-tseigo-sample-2024-001.zip を探します。

デスクトップに解凍します。kaishi-tseigo-sample-2024-001 があることを確認しましょう。
Unity プロジェクトの準備

Unity Hub を起動して、右上の Add ボタンをクリックします。

Add project from disk をクリックします。

kaishi-tseigo-sample-2024-001 フォルダを選択して Add Project ボタンをクリックします。

kaishi-tseigo-sample-2024-001 プロジェクトがリストに追加されたらクリックしましょう。

待ちます。

起動しました。ただこれだと Scene が選択されていないので SampleScene を選択します。
SampleScene 起動

下部の Project タブに注目します。

Scene をダブルクリックします。

SampleScene があるのでダブルクリックして起動しましょう。

SampleScene が起動しました。
ベースとなる記事

こちらの記事をベースに進めます。
- Unity からマイク録音して音データを Whisper API で文字起こしして ChatGPT API とやり取りするメモ – 1ft-seabass.jp.MEMO
現状で、
- Cube オブジェクトの準備
- クリックイベント (Physics Raycaster、EventSystem)の準備
- Cube オブジェクトに CubeEvent.cs の関連付け
- CubeEvent.cs のソースコード反映
まで行われています。
このあと、
- CubeEvent.cs を開く
- CubeEvent.cs に OpenAI の APIKey を反映
- 今回録音するマイクデバイスを狙う
- 動かしてみる
をやってみます。
もし詳しい手順を知りたかったり、一から作りたい方は Unity プロジェクトを一から作ってみよう を参考にしてみてください。
CubeEvent.cs を開く

Hierarchy に注目して Cube をクリックして選択します。

Inspector に注目します。Cube の設定がいろいろ書かれています。

CubeEvent を探します。

ここをダブルクリックします。

Visual Studio が起動し CubeEvent が編集できるようになります。
うまく表示できたら、
// OpenAIAPIKey
string OpenAIAPIKey = "OpenAIAPIKey";
こちらを授業中にシェアした OpenAI の APIKey で置き換えます。
たとえば ABCDEGHIJKLMNNABCDEGHIJKLMNN の OpenAIAPIKey であれば、
// OpenAIAPIKey
string OpenAIAPIKey = "ABCDEGHIJKLMNNABCDEGHIJKLMNN";
とダブルクォーテーション " の中を変更します。

一旦保存します。

Unity に戻ります。
今回録音するマイクデバイスを狙う
// PC の録音のターゲットになるマイクデバイス名
// これはお使いのデバイスで変わります
// 完全一致でないと受け取れないので注意
string recordingTargetMicDeviceName = "Krisp Microphone (Krisp Audio)";
現状だと、ブログ用の仮の Krisp Microphone (Krisp Audio) が入っています。これはお使いのデバイスで変わりますので Console でマイク一覧を見ながら、今回録音するマイクデバイスを探しましょう。

動かす前に、動作ログが出る Console タブをクリックしておきます。

上部の Play ボタンをクリックします。

再生されます。

ログにマイク一覧が出てきます。普段 Zoom や Teams などで使っているマイクデバイスが見つかりましたか?

見つかったら、そのマイクの行をコンソールでクリックします。

マイク名を選択してコピーします。

右クリックでコピーできます。
// PC の録音のターゲットになるマイクデバイス名
// これはお使いのデバイスで変わります
// 完全一致でないと受け取れないので注意
string recordingTargetMicDeviceName = "Krisp Microphone (Krisp Audio)";
これを Visual Studio で開いてある Cube Event のこの部分を変更します。
たとえば マイク (Webcam Internal Mic) であれば、
// PC の録音のターゲットになるマイクデバイス名
// これはお使いのデバイスで変わります
// 完全一致でないと受け取れないので注意
string recordingTargetMicDeviceName = "マイク (Webcam Internal Mic)";
として保存します。

保存を忘れないようにしましょう。
動かしてみる

Unity に戻ります。

上部の Play ボタンをクリックします。

再生されます。

今回録音するマイクが捜索できれば、マイク捜索成功とログが出ます。

Cube をマウスで直接クリックしてみます。

Console には Mic Record Start が出ます。録音開始です。「テスト」とでも話してみましょう。

もう一度 Cube をクリックしてマイク録音を停止します。

このように、OpenAI の Whisper API で音声が文字起こしされて「テスト」と結果表示されます。さらにその文字列をもとに ChatGPT に質問して返答が返ってきます!