開発説明
小智 AI 開発文書
この文書は、小智 AI のプログラムを自分でコンパイルしたり改造したりしたい開発者向けです。開発環境の構築、主要な通信プロトコル、拡張機能の実装方法をまとめています。
開発環境
- ESP-IDF 開発環境構築と小智のコンパイル - ESP-IDF v6.0.1 以降が必要
- カスタムボードガイド - 自作ボードの追加、
config.json、scripts/build.py - カスタム Assets ガイド -
assets.binの作成:ウェイクワード、フォント、絵文字、チャット背景 - エコシステムプロジェクト - コミュニティ製のサーバー、クライアント、移植
- BluFi 設定ガイド - BLE による Wi-Fi 設定
- コードスタイルガイド - clang-format と C++ の実行時ルール
通信プロトコル文書
WebSocket通信プロトコル
デバイスとサーバー間の WebSocket 通信の実装を詳しく説明します。接続の確立、メッセージ形式、音声伝送などの主要機能を含みます。
MQTT + UDP 混合通信プロトコル
MQTT の制御チャネルと、暗号化された UDP 音声チャネルの組み合わせです。
MCPプロトコル
デバイスとバックエンドの間で使う、JSON-RPC 2.0 ベースの MCP の流れ:ツールの検出、ツールの呼び出し、ユーザー専用ツール。
MCP IoT 制御の使い方
デバイス側のツール登録、組み込みツール、一般的な呼び出し例。
動的テキスト Glyph Push 拡張
デバイスのフォントにないビットマップグリフをサーバーが送ります。WebSocket と MQTT/UDP は同じ形式を共有します。
非同期音声通知
デバイスがアイドルのとき、クラウドが一方向の音声通知を再生します。Ogg Opus 音声をストリーミングし、タイムライン付きの字幕を表示します。
絵文字感情表示
大規模言語モデルが Emoji で感情状態を表現する仕組みと、関連するデータ形式、使い方の説明です。
プロジェクトのソースコード構成
小智 AI プロジェクトは、主に次の要素で構成されます。
- ファームウェア本体: ESP32 シリーズのチップ上で動作します
- サーバー側: デバイスの接続と音声の転送を処理します
- フロントエンド画面: ネットワーク設定と各種設定のページです
ソースコードの詳しい構成と各機能の説明は、GitHub リポジトリを参照してください。
開発でよくある問題
- コンパイルエラーの解決: 多くは ESP-IDF のバージョン不一致が原因です。文書で推奨している ESP-IDF のバージョンを使ってください
- 接続タイムアウト: WebSocket サーバーの設定とネットワーク接続を確認してください
- メモリ不足: ESP32-S3 開発ボードは性能が高く、推奨されます
文書インデックス
| 文書名 | 説明 | 更新日 |
|---|---|---|
| ESP-IDF 開発環境構築 | ESP-IDF v6.0.1+ の環境構築と小智のビルドガイド | 2026-10-23 |
| カスタムボードガイド | 新しいボードのディレクトリ構成、設定、ビルドの流れ | 2026-10-23 |
| カスタム Assets ガイド | ウェイクワード、フォント、絵文字、チャット背景のパックと書き込み | 2026-10-23 |
| エコシステムプロジェクト | コミュニティ製のサーバー、クライアント、移植 | 2026-10-23 |
| BluFi 設定ガイド | BluFi による BLE Wi-Fi 設定 | 2026-10-23 |
| コードスタイルガイド | clang-format と C++ の実行時ルール | 2026-10-23 |
| WebSocket通信プロトコル | WebSocket クライアントとサーバーの通信プロトコル文書 | 2026-10-23 |
| MQTT + UDP 混合通信プロトコル | MQTT 制御チャネルと UDP 音声チャネル | 2026-10-23 |
| MCPプロトコル | MCP の流れ、ツールの検出と呼び出し | 2026-10-23 |
| MCP IoT 制御の使い方 | ツール登録、組み込みツール、例 | 2026-10-23 |
| 動的テキスト Glyph Push 拡張 | glyph_push プロトコル拡張 v1 | 2026-10-23 |
| 非同期音声通知 | notify メッセージと Ogg Opus ストリーミング再生 | 2026-10-23 |
| 絵文字感情表示 | 大規模言語モデルが Emoji で感情状態を表現する通信プロトコル | 2025-03-06 |