2 年生 2 コマ目
AI 議事録 Rimo でまとめたものです。AI が聞き間違ったりまとめ間違ったりする前提で参考にしてください。
決定事項
特になし
アクションアイテム
特になし
議論のポイント
UnityプロジェクトのセットアップとAPI連携
- Unityプロジェクトをインポートしてサンプルシーンを開く手順を実施
- OpenAI APIキーをキューブイベントスクリプトに設定(94行目付近)
- マイクデバイスIDを確認し、レコーディングターゲットマイクデバイスIDに設定
- Whisper APIによる音声認識とChatGPT APIによる応答の動作確認を実施
ローカルLLM(Ollama)との連携
- OllamaでGranite 3 2Bモデルを使用したローカルAI連携を実装
- キューブイベントスクリプトでOpenAI使用部分をコメントアウトし、Ollama使用部分を有効化
- ローカルホスト経由でのAI処理により、プライバシー保護とコスト削減を実現
- 初回応答は時間がかかるが、2回目以降は比較的スムーズに動作
- モデルのバージョン(3.2B vs 3.3B)の整合性が重要
音声合成機能の追加
- キューブイベント2スクリプトに切り替えてText-to-Speech機能を実装
- オーディオソースコンポーネントをキューブに追加
- Whisper APIのAlloyボイスによる日本語音声出力を実現
- APIキーとマイクデバイスIDの再設定が必要
AI技術の進化とシステム連携
- 従来はA4サイズの長大なプロンプトが必要だった
- Function Callingの登場でJSON定義による構造化出力が可能に
- MCP(Model Context Protocol)により各社AI間の共通規格が実現
- TypeScriptやPythonでツール定義を記述できるようになり、開発効率が向上
VRデバイスとIoT制御のデモ
- Meta QuestからNode-RED経由でLEDとサーボモーターを音声制御
- OllamaのローカルLLMとOpenAIのクラウドLLMの両方で動作確認
- クラウド版の方が応答速度が速く、複雑なツール選択も正確
- 多言語対応(日本語、英語、カタカナ)も問題なく動作
Microsoft Azure AI Foundryの活用
- Azure上でWhisper APIとChatGPTを独自環境で構築
- プライベートクラウド環境でのAI運用によりセキュリティを確保
- 音声認識、AI応答、音声合成の一連の処理をクラウドで実現
AI Agentと音声入力の可能性
- 工場や作業現場など手が使えない環境での音声入力の有用性
- VRデバイスの高性能ノイズキャンセル機能の活用
- 日報作成など業務記録への応用可能性
- 雑談と指示を混在させても適切に処理できる柔軟性
授業開始と録音ツールRemoの要約機能紹介
- 授業開始時にマイクテストと参加者確認を行い、録音を開始した
- 講師が使用しているRemoというツールで前回の授業の要約が自動生成され、自己紹介やLLMの話、ORAVAとローカルの利点などが正確に記録されていることを確認
- 要約内容には授業開始、フリーランスの紹介、生成AIの民主化、Unity Projectのセットアップなどが含まれており、後から振り返りやすい状態になっている
- 今回の授業でも録音を取っており、同様に要約を生成する予定である
- 途中から参加した人でも要約を見れば話の内容が理解できる状態を目指している
Unity Projectのセットアップとインポート手順
- 参加者にUnity Projectをインポートして開く作業を実施してもらった
- プロジェクトを開く際にバージョン選択の画面が表示されるが、キャンセルしてバージョン6などで開いても正常に動作することを説明
- サンプルシーンを選択する必要があり、Untitled状態からシーンフォルダのサンプルシーンをクリックすることでブロックが表示される
- APIキーは講師から先生経由で参加者に共有されており、このキーを使用することで今日の教材が動作する
- 最近のAIはコストが下がっており、ハンズオンで使用する程度であれば50円未満の費用で済むため、気軽に試せる環境になっている
音声認識とWhisper APIの設定・マイクデバイスの選択
- キューブイベントのスクリプトを開き、94行目付近にあるOPEN AI Keyの部分にAPIキー(SKで始まりWUAで終わる文字列)をペーストして保存する
- マイクデバイスの選択が必要で、プレイボタンを押すとコンソールにマイクのリストが番号付きで表示される仕組みに改良されている
- 前回は文字列を完全一致でコピペする必要があったが、今回は番号を選択するだけで済むため設定が簡単になった
- 例えば表示されたマイクリストから自分が使用しているマイク(ZOOMなどで使用しているもの)の番号を確認し、レコーディングターゲットマイクデバイスIDに数字を入力する
- 設定後に再生ボタンを押してキューブをクリックすると録音が開始され、赤くなって録音中になり、もう一度クリックすると音声がWhisper APIに送られて文字起こしされる
Whisper APIとChatGPTの連携動作確認
- キューブをクリックして録音開始、話しかけた後に再度クリックすると音声が文字起こしされ、その文字がChatGPT APIに送られて返答が返ってくる仕組み
- 実際に「マイクのテスト中、よろしくお願いします」と話しかけると、文字起こし後に「よく聞こえてますが、何かお手伝いできることがあればお知らせください」という返答が得られた
- 「今新潟にいます。いい天気ですね」と話しかけると、AIが適切に応答してくれることを確認
- 音声から文字への変換(Whisper API)と文字から返答生成(ChatGPT API)の2つのAPIが1つの処理フローで動作している
- 参加者の多くが動作確認に成功し、一部エラーが出た人にはサポートを実施した
音声認識技術の進化と実用性の解説
- 音声入力は工場などで手が使えない作業者がAIに指示を出す際に非常に有効な入力手段である
- XRデバイスには優れたノイズキャンセル機能が搭載されており、音声でのコミュニケーションに適している
- 最近のWhisper APIは音声の聞き取り精度が非常に高く、周囲の雑音がある中でも主要な音声を適切に認識できる
- 以前の文字起こしシステムでは複数人が同時に話すと言葉が混ざってしまう問題があったが、現在は話者分離技術も進化している
- 生成AIによる補正機能や多言語対応により、日本語で話していても英語での出力を指定できるなど柔軟な使い方が可能になっている
ローカルLLM(Ollama)への切り替え設定
- タスクバーにOllamaのアイコンがあり、ローカルホストでGraniteモデルが動作していることを確認する必要がある
- キューブイベントのスクリプトで、OpenAI ChatGPTを使う部分をコメントアウトし、Ollamaを使う部分のコメントを解除する
- Whisper APIによる文字起こしはオンラインのまま使用し、その後の応答生成をOllamaのローカルLLMで処理する仕組み
- Graniteモデルのバージョン(3.2Bまたは3.3.2B)を確認し、スクリプト内の指定と一致させる必要がある
- ローカルで動作するため初回の応答は時間がかかるが、2回目以降は比較的スムーズに動作する
ローカルLLMの動作確認とトラブルシューティング
- 実際に「こんにちは。ラマ動いていますか?」と話しかけてOllamaの動作をテスト
- 最初はプロトコルエラーが発生したが、Graniteモデルのバージョンを正しく指定することで解決
- バージョン不一致の場合はNOTFOUNDエラーが発生するため、自分がインストールしたGraniteのバージョンとスクリプトの指定を合わせる必要がある
- 1回目の応答は待たされるが、2回目以降はモデルが起動しているため比較的早く応答が得られる
- 参加者の多くが動作に成功し、ローカル環境でのAI活用を体験できた
クラウドAIとローカルAIの比較・プライバシーと性能
- クラウド版のChatGPTは膨大な計算資源があり高性能だが料金が発生し、外部にデータを送信するためプライバシーの懸念がある
- ローカルのOllamaは自分のパソコン内で処理が完結するため、プライバシーが保たれ、工場などクラウドに接続する必要がない環境でも使用できる
- パソコンの性能によってレスポンス速度が変わるため、高性能なパソコンを使えばより速い応答が期待できる
- UnityはスマホアプリやXRデバイスでも動作するため、AIとの連携がしやすくなることで様々なプラットフォームでの活用が可能
- ローカルで動作することで、自分で試したいAIモデルを自由に切り替えて性能を確かめることができる
音声出力機能の追加・Text-to-Speech設定
- キューブイベントコンポーネントを一旦削除し、キューブイベント2を新たに割り当てる
- オーディオソースコンポーネントをキューブに追加することで、AIの応答を音声で出力できるようになる
- キューブイベント2のスクリプトを開き、再度APIキーをペーストし、レコーディングターゲットマイクデバイスIDも設定する
- Whisper APIのText-to-Speech機能を使用し、AIの応答テキストを音声に変換して再生する
- アロイさんという音声キャラクターが日本語を比較的上手に話すため、聞き取りやすい音声出力が実現できる
音声出力デモと調整・スピーカー設定の重要性
- 「こんにちは。お元気ですか?今日はいい天気ですね」と話しかけると、AIが音声で「こんにちは。おかげさまで元気です。今日は本当に」と応答する
- スピーカーをオンにする必要があり、参加者全員が同時に音声出力すると教室がカオスになる可能性がある
- Whisper APIには複数の音声キャラクター(約4〜8人)が用意されており、アロイさんは特に日本語の発音が上手だと評価されている
- オーディオソースコンポーネントの追加や設定が正しく行われないと音声が出力されないため、設定手順を正確に実行することが重要
- XRデバイスで使用すると耳元に語りかけてくる感覚になり、没入感のある体験ができる
ハンズオン総括とAI技術の民主化
- 参加者が講師と共通の技術を使ってハンズオンを行うことで、後のデモの理解がしやすくなる構成になっている
- 実際に動かして楽しむことで技術への理解が深まり、見ているだけでは得られない学びがある
- 音声入力、文字起こし、AI応答、音声出力までの一連の流れを体験することで、XRとAIの連携可能性を実感できる
- 最近のAIはコストが大幅に下がり、ハンズオン程度の使用であれば非常に安価(50円未満)で実施できるようになった
- 技術のつながりが滑らかになることで、まるで図画工作における紙とはさみのように、誰でも気軽にAI技術を活用できる時代になってきている
デモパート:VRデバイスとNode-REDを使ったIoT制御
- Meta Quest(VRデバイス)から音声で指示を出し、Node-REDを経由してLEDやサーボモーターを制御するシステムのデモを実施
- Node-REDは手元のパソコンで動作しており、Ollamaも同時に起動している状態で相互にやり取りできる仕組み
- まずNode-REDから直接LEDを赤、緑、白に点灯させたり消灯させたりする動作を確認
- サーボモーターも時計回りや反時計回りに回転させる指示が正常に動作することを確認
- パソコン内のNode-REDからインターネットを経由してIoTデバイスを操作できる状態になっている
VRデバイスとAIを連携したIoT音声制御デモ
- Meta Questを装着し、アプリを起動してAPIに接続した状態で「LEDをオンにして」と音声で指示
- 音声がWhisper APIで文字起こしされ、Ollamaが「LEDをオンにする」という意図を理解してIoTシステムにコマンドを送信
- OllamaがLEDをオンにする判定を行い、TRUEの値をIoTシステムに送ることでLEDが点灯する
- 「LEDをオフにして」と指示するとFALSEの値が送られてLEDが消灯する仕組み
- AIは人間の自然な言葉をシステムが理解できるコマンド(1/0やTRUE/FALSE)に翻訳する役割を果たしている
AI連携の技術的背景・Function CallingとMCPの進化
- 1年前はAIにIoTデバイスの仕様を長いプロンプト(A4の指示書レベル)で詳細に説明しないと正しく動作しなかった
- LEDの仕様、MQTTの接続方法、JSONデータの形式などを箇条書きで記述し、さらに「もう一度言いますが」と繰り返さないと忘れてしまう状態だった
- それでも10%程度の確率でエラーが発生し、ONにしたいのに「ONにしますね」という文字列が返ってくるなど、システムが受け付けられないデータが来ることがあった
- Function Callingの登場により、JSONデータの定義を事前に行うことで長いプロンプトが不要になり、データの受け渡しが改善された
- ただしFunction Callingは各社で書き方が異なり、OpenAI、Anthropic、その他のプロバイダーで互換性がない問題があった
MCP(Model Context Protocol)の意義と統一規格
- Anthropic社が提唱したMCP(Model Context Protocol)により、AIとシステムをつなぐルールが統一された
- MCP SDKがPythonやTypeScriptで提供され、自然言語で書いていた部分をコードで記述できるようになった
- これまでプロンプトで指示していたツールの定義やJSON形式の指定が、プログラムコードとして明確に記述可能になった
- 規格が統一されたことで、ローカルLLMのGraniteでもクラウドのOpenAIでも同じコードで動作するようになった
- AIから既存システムへの接続が非常にスムーズになり、技術者がAIによって仕事を奪われるのではなく、むしろつなぎ役として価値を発揮できるようになった
クラウドAI(OpenAI)との比較デモ・レスポンス速度の違い
- Ollamaのローカル処理からOpenAIのクラウド処理に切り替えてデモを実施
- 「LEDをオンにして」という指示に対して、OpenAIは非常に高速にレスポンスを返し、ほぼ瞬時にLEDが点灯した
- ローカルのGraniteは2Bモデルのため、LEDのオンオフ程度のシンプルなツール選択はできたが、サーボモーターの制御など複数ツールから選択する場合は失敗することがあった
- OpenAIのクラウド版は判断する能力が高いため、4つのツールから適切なものを選択してサーボモーターを回転・停止させることができた
- 「Turn off light」のようにカタカナ英語で指示しても、OpenAIは多言語を同時に学習しているため正確に理解して動作する
AIとの付き合い方・技術をつなぐエンジニアの役割
- AI登場当初は、長いプロンプトを書かないと既存システムとつながらず、技術をつなぐエンジニアの役割が終わるのではないかと不安を感じた
- しかし世界中の開発者が同じ問題を抱えており、Function Calling、MCP(Model Context Protocol)などの統一規格が次々と登場した
- これらの技術の進化により、AIを既存のAPIやシステムにつなぐ作業が非常にスムーズになった
- AIは新しいつなぎ役として機能するようになり、技術者がAIと上手く付き合えるようになってきた
- XRデバイスとAI、IoTシステムなど、多様な技術を組み合わせることで、これからも楽しく技術を扱える環境が整ってきている
Microsoft Azure Foundryを使ったプライベートクラウド環境
- Microsoft Azure(旧Azure AI Foundry)というクラウドサービスを使い、自分専用のサーバースペースでAIモデルを動かす方法を紹介
- クラウド上に自分の箱を用意し、そこに好きなモデル(ChatGPT、Whisper、Text-to-Speechなど)を配置できる
- 一度使う程度なら無料で利用でき、ChatGPT、TTS(Text-to-Speech)、Whisper(文字起こし)を贅沢に組み合わせて使用可能
- 公開されているWhisper APIに音声を送るのではなく、自分のクラウド環境内で処理することでプライバシー性を高められる
- 企業の工場データなど、外部に出したくないデータを扱う場合に、自分のクラウド環境内でモデルを動かすニーズは高い
Azure Foundryを使ったVRデバイスとの音声対話デモ
- Meta QuestとMicrosoft Azure Foundryを接続し、音声での質問と音声での応答を実現するデモを実施
- 「こんにちは。元気ですか?」と話しかけると、文字起こし、ChatGPTでの応答生成、音声合成が連続して実行される
- VRデバイスで音声が耳元に語りかけてくる体験は、まるで神様の声デバイスのような没入感がある
- 「どうお考えですか?」という質問に対して、ChatGPTが非常に長い応答を返し、音声データのダウンロードに時間がかかる場面もあった
- 実際の応答では「非常に可能性を感じるというテーマや状況に対して回答していることを表している」など、無難な内容が返ってきた
AI Agentと音声入力の可能性・実用シーンの考察
- AI Agentとは、AIに特定の役割(例:LEDを動かす、日報をまとめる)を与えて窓口として機能させる考え方
- 工場での作業やアバターとの対話など、テキスト入力よりも音声入力の方が適したシーンは多い
- 日報作成の例として、「今ランチを食べています」「打ち合わせをしました」などを音声で記録し、AIが最終的に日報としてまとめる仕組みが考えられる
- サングラス型のXRデバイスは優れたノイズキャンセル機能を持ち、写真を撮りながら補足の言葉をAIエージェントに記録させるような使い方に適している
- 音声入力は、ボタンを押す必要がなく、スマホが使えない場所でも有効な入力手段として重要な役割を果たす
授業の総括と休憩案内
- ハンズオンパートでは参加者が共通の技術を使い、講師のデモで使用する技術の理解を深めることができた
- デモパートでは、講師の実際の仕事の雰囲気を交えながら、日々AIをどのように活用しているかを紹介した
- 音声認識、ローカルLLM、クラウドAI、IoT制御、XRデバイスなど、多様な技術を組み合わせた実践的な内容を体験できた
- 長時間のハンズオンとデモを終えて一旦休憩とし、この後は質問タイムなどに移行する予定
- 55分から再開することをアナウンスし、参加者への労いの言葉とともに休憩に入った