MetaがMuse Gadgets SDKを公開:Museに画面やボタンを取り付け、家庭内デバイスと接続
市販の開発ボード、Raspberry Pi、またはHome Linkを使い、Museをチャット画面からデスク上やホームネットワークへと拡張。3つのアプローチで用途、前提条件、権限範囲がそれぞれ異なります。
大規模言語モデルに対する多くの人の印象は、今なおスマートフォンのチャット画面やPCブラウザでの一問一答に留まっているかもしれません。もしAIに部屋の明かりを消してもらったり、デスクの小さな画面からこちらにウインクさせたり、外出前に1日の予定を電子ペーパーに静かに表示させたりしたいなら、AIは純粋なソフトウェアの世界を飛び出し、現実の物理世界に触れる必要があります。
Metaは公式コードリポジトリにおいて、Muse Gadgetsのデバイス側SDKとファームウェアをオープンソースとして公開しました。Gadgetsは本質的にMuseのハードウェア接続ツールです。ハードウェアデバイス側がディスプレイ表示、ボタン入力や音声入力、あるいはローカルコマンドの実行を担い、その背後にあるMuseモデルの理解、対話生成、文字起こしなどのコア機能は引き続きMuseのクラウドサービスに依存します。開発者は市販のESP32開発ボードや手元のRaspberry Piを使い、自らの手でこれらをハードウェア端末やローカル制御ノードとしてMuseに接続できます。
01. Museをチャット画面から実際のデバイスにつなぐ仕組み
AIが家庭内のデバイスとやり取りするには、ローカルの接続経路が必要です。Muse Gadgetsは、ローカル中継という方法を提供します。LAN内にハードウェア接続ノードを置き、クラウド上のMuseがそのノードを通じてLAN内のデバイスの制御インターフェースにアクセスするか、ハードウェア自体の画面やボタンで直接やり取りする仕組みです。
エコシステム全体は以下の3つの要素で構成されています。
- デバイス側ファームウェアとSDK(オープンソース):GitHub上でApache 2.0ライセンスに基づくコードが公開されており、ESP32マイクロコントローラおよびLinux PCをサポートしています。
- 公式ハードウェア Home Link(限定配布):米国の有効なサブスクリプションユーザーのみが申し込み可能な小型USBゲートウェイであり、ローカルネットワーク通信の基地局として機能します。
- コミュニティスキルライブラリ(Community Skills):Markdown形式で記述されたデバイス制御インストラクションセットであり、デバイスがサポートするローカルインターフェースを介して、Philips Hueライト、Sonosスピーカー、Apple TVなどの家電を操作する方法をMuseに伝えます。
このSDKは、ハードウェアの改造や自作を好む開発者を対象としています。ファームウェアの書き込み、センサーの追加、インターフェースの変更などは本プロジェクトならではの楽しみ方である一方、ビルド、配線、デバッグをすべて自分で行う必要があります。また、カスタムファームウェアの書き込みによって開発ボードが破損したり、保証の対象外となったりする可能性があります。
02. 公式ハードウェア Muse Home Link:ローカルネットワークブリッジ
Muse Home Linkは、35 × 42 × 10 mmの白い小型デバイスで、USB-CおよびUSB-A接続に対応しています。
そのファームウェアはオープンソースのESP32 Device SDKをベースにしており、開発者が動作原理を理解し、他の開発ボード上で同様のデバイスを構築しやすく設計されています。ただし、Muse Home Link自体は公式ファームウェアのみを実行し、ファームウェアの再書き込み(リフラッシュ)を行うことはできません。
ハードウェア仕様と動作メカニズム
- メインコントローラ:Espressif ESP32-C5チップ(32ビット RISC-Vアーキテクチャ、クロック周波数 240 MHz)。
- メモリとストレージ:8 MB PSRAM(RAM)+ 8 MB Flashストレージ。
- ネットワーク対応:Wi-Fi 6(2.4 GHzおよび5 GHzデュアルバンド対応)+ Bluetooth Low Energy(BLE)。
- インジケータ:ペアリングおよびネットワーク接続状況を示すシングルステータスLED。
セットアップと使用は以下の4つのステップで行います。
- USB給電:Home Linkをルーター近くの任意のUSB-CまたはUSB-A電源ポートに接続します。
- BLEによるスマートフォン設定:スマートフォンのMuseアプリでデバイスを追加します。設定プロセスはBluetooth Low Energy(BLE)を介して行われます。
- Wi-Fiへの接続:アプリ内でHome Linkを接続させる自宅のWi-Fiネットワークを選択します。
- ローカルインターフェースとコミュニティ手順書による操作:Home Linkが家庭内ネットワークへの接続を維持することで、MuseはLAN内の対応デバイスや、自身で開発したローカルHTTP APIを提供するデバイスにアクセスできるようになります。コミュニティによる連携例には、Philips Hue、Sonos、Apple TV、Google Nestスピーカー、Samsung製テレビなどがあります。
特定のデバイスを正常に制御できるかどうかは、そのデバイス自体がローカル制御インターフェースをサポートしているか、そしてコミュニティから利用可能なスキル手順書(Skills)が提供されているかに依存します。コミュニティスキルは有志の開発者によって作成されており、予告なく変更されたり機能しなくなったりする可能性があります。
現在、Muse Home Linkは米国地域の有効なMuseサブスクリプションユーザーのみを対象に提供されており、契約者1人につき1台限定、10月発送予定の先着順となっています。公式サイトでの申し込み登録は順番待ちリストでの枠確保に過ぎず、正式な注文ではありません。デバイスの出荷準備が整い次第、公式から別途通知されます。申し込み対象地域外にいる場合や、機能を自由にカスタマイズしたい場合は、ESP32-C5 DevKitC-1などの開発ボードを使用し、オープンソースのESP32 Device SDKでファームウェアをコンパイルして独自のハードウェアを構築することが公式に推奨されています。
03. DIY実践:ESP32とLinuxでそれぞれ何ができるのか
自分専用のMuseハードウェアを自作したい場合、公式には2つのアプローチが用意されています。ESP32組み込みマイコンルートとLinux PCルートです。公式ハードウェアのHome Linkと合わせると、これら3つの選択肢は位置付け、事前準備、権限範囲においてそれぞれ特徴が異なります。
| ルート | 主な用途 | 事前準備 | 変更可能な範囲と権限 |
|---|---|---|---|
| 公式 Home Link | ホームローカルネットワークブリッジ。MuseがLAN内の対応デバイスやローカルHTTP APIにアクセスできるようにする | 米国の有効なMuseサブスクリプションでの順番待ち登録・申し込み、USB給電、スマートフォンアプリ(BLE + Wi-Fi) | 公式ファームウェアのみ実行可能で再書き込み不可。コミュニティSkillsが対応デバイスの操作手順を提供 |
| 自作 ESP32 デバイス | デスクトップ画面ガジェット、ボタン式音声入力端末、ステータスランプ、またはLANトンネルノード(ボードのハードウェア構成による) | 互換性のあるESP32開発ボード、データ通信ケーブル、PC、ESP-IDF v6.0.1、SDK token、スマートフォンアプリの開発者モード有効化 | ファームウェア、ピン配置、UI構成を変更可能。ボードが対応している場合は認証情報を保護するNVS暗号化の有効化を推奨 |
| Linux デバイス(Raspberry Piなど) | バックグラウンドサービスを実行し、Museによるシステムコマンド実行、ファイルの読み書き、ヘルス状態の確認、またはスクリプトからMuseへの自発的なメッセージ送信を行う | BLE搭載のRaspberry PiまたはLinux PC、サポートされているOSバージョン、sudo権限を持つアカウント、SDK token、スマートフォンアプリの開発者モード有効化 | オープンソースのサービススクリプト。Museはインストール時に指定された実行アカウントのシステム権限を厳格に継承(アカウントがsudo可能ならMuseもsudo可能、--run-asによる権限縮小が可能) |
ルートA:ESP32でディスプレイ、ボタン、小型デバイスを作る
ESP32はシングルチップのマイクロコントローラであり、低消費電力かつ手頃なコストで、デスクトップ向けの小型ステータスディスプレイ、ボタン式音声入力端末、通知ランプなどの作成に適しています。
1. ハードウェアメモリの違い:PSRAMとLANトンネル
ESP32ボードによってハードウェア構成は異なり、ホームネットワークトンネルの実行には十分なRAM(PSRAM)が必要です。
- PSRAM搭載ボード(ESP32-C5、ESP32-S3の一部モデルなど):外部拡張RAMがホームネットワークトンネルに必要な動作領域を提供します。この機能に対応したボードはホームネットワークトンネル(Home-Network Tunnel)を実行でき、Museがそれを経由してLAN内の他のデバイスにアクセスできるようになります。ディスプレイ、オーディオ、ボタン操作などの対話機能は、その開発ボード自体のハードウェア構成に依存します。
- PSRAM非搭載ボード(従来のESP32、ESP32-C6など):利用可能なメモリが限られているため、ファームウェア実行時にLAN透過トンネルを開くことはできません。ただし、Museがデバイス自体に接続して制御すること(インジケータLEDの点灯や、搭載画面への映像表示など)は引き続き可能です。
2. 音声を録音できても、デフォルトで回答を読み上げるわけではない
一部の開発ボードにはマイクとスピーカーが搭載されていますが、現在のSDKにおけるデフォルトの対話フローは以下のようになっています。
- プッシュツートーク(Push-to-Talk):ハードウェアボタンを押しながら話すと、ボードが音声を録音してMuseクラウドに送信し、テキストに文字起こしされます。
- Muse本来の返答はテキスト:クラウドから返されるのはテキスト形式の回答です。画面付きのボード(Waveshare 1.75Cなど)では返答内容が画面上の字幕として表示され、画面のないデバイス(Home Assistant Voiceプレビュー版など)ではテキスト回答がスマートフォンのアプリにプッシュ通知されます。
- 音声を再生させるには:ファームウェア内にはMP3デコードライブラリ(minimp3)やスピーカードライバが組み込まれているものの、すぐに使えるクラウド音声合成(TTS)サービスは標準搭載されていません。スマートスピーカーのように回答を声で読み上げさせたい場合は、C++コード側でサードパーティの音声合成APIを自ら組み込む必要があります。
3. ハードウェアのペアリングとインジケータの意味
ファームウェアの書き込みが完了すると、デバイスのインジケータLEDがオレンジ色にゆっくり点滅(ブリージング)し、セットアップ準備が整ったことを示します。スマートフォンでMuseアプリを開き、「設定 > デバイス」で開発者モードを有効にしてデバイスを追加します(プレフィックスはMuseGadget)。インジケータが青色のゆっくりした点滅に変わったら、ボード上の物理BOOTボタンを押してペアリングを確定します。接続に成功すると、インジケータが緑色に常時点灯します。
ペアリング設定のたびに、完全に新規の暗号化セッションが確立されます。これらはコミュニティによる自作デバイスであり、ペアリング工程にベンダーによる検証が含まれないため、能動的な中間者攻撃(MITM)を防ぐことはできません。そのため、必ず自身が信頼できるネットワーク環境下で設定を行う必要があります。
| インジケータ状態 | 物理的な意味 | ユーザー操作ガイド |
|---|---|---|
| オレンジ、ゆっくり点滅 | 準備完了 | スマートフォンアプリで開発者モードを有効にし、デバイスを追加 |
| 青、ゆっくり点滅 | ボタン確認待ち | ボード上の物理BOOTボタンを押してペアリングを確定 |
| 青、常時点灯 | 接続中 | Wi-Fiに接続し、Museへ接続試行中 |
| 緑、常時点灯 | 接続完了 | 正常に接続され、対話可能 |
| 黄、点滅 | 再接続中 | デバイスがネットワークへ再接続中 |
| 紫、常時点灯 | 未ペアリング | アプリでデバイスの再バインドが必要 |
| 赤、点滅 | 異常発生 | シリアルポートのログを確認してトラブルシューティング |
セキュリティに関する重要な警告:ESP32は、Wi-FiのSSID・パスワードおよびペアリングトークンを内部Flash(NVSパーティション)に保存します。ハードウェアレベルのNVS暗号化を有効にしていない場合、ボードの物理ハードウェアを入手した人物であれば誰でも、ツールを使って自宅のWi-Fiパスワードを抽出できてしまいます。SDKはeFuseハードウェアキーに基づくNVS暗号化をサポートしているため、本番運用時には有効化することを強く推奨します。
ルートB:Raspberry Pi上のコマンドやファイルをMuseに操作させる
手元に使っていないRaspberry Pi(Raspberry Pi 3B+、4、5、またはZero 2 W)がある場合、あるいはBluetooth Low Energy(BLE)を備えたLinux PCがある場合は、Linux Device SDKを利用してMuseに接続できます。対応OSのベースラインはRaspberry Pi OS Bullseye以降、Debian 11以降、またはUbuntu 22.04以降(32ビットおよび64ビット対応)で、マシンがネットワークに接続されている必要があります。sudo権限を持つアカウントと公式サイトから取得したSDK tokenを用意し、公式インストールスクリプトを実行すれば、システムのバックグラウンドにmusegadgetサービスがインストールされて起動します。その後、スマートフォン側のMuseアプリで開発者モードを有効にしてデバイスを追加します。Bluetoothペアリングの受付ウィンドウは10分間開放されます。デバイスのペアリングに成功するとバックグラウンドに常駐し、システム再起動後も接続が維持されます。
1. MuseはLinux上で何ができるのか?
バックグラウンドサービスをインストールすると、MuseはこのPCを直接操作できる4つのネイティブコマンド機能を獲得します。
system.run:バックグラウンドでシェル端末コマンドを実行し、実行結果と終了ステータスコードを取得します。file.read:システムファイルをチャンク単位で読み取ります(1回あたり64 KB)。file.write:システムファイルをチャンク単位で書き込み(1回あたり64 KB)、完全に書き込みが完了した段階でのみ元のファイルを置き換えます。device.health:システムの稼働時間(アップタイム)、CPU負荷、メモリ使用状況、ディスク空き容量、チップ温度を報告します。
これにより、日常のチャットの中でMuseに面倒な運用・保守作業を直接任せることができます。「Raspberry Piのディスク容量が圧迫されている原因を調べて」「毎朝7時にバックアップスクリプトが正常に実行されているか確認して」といった指示が可能です。
2. 双方向通信:物理イベントをトリガーにAIチャットを起動する
ユーザーがPCにタスクを指示できるだけでなく、PC上のスクリプトから自発的にMuseを呼び出すことも可能です。内蔵のコマンドラインツールを使用します。
musegadget send-user-msg "车库门已经开了一小时了,请注意检查。"
センサーによって自動でアラートをトリガーさせるには、監視スクリプト(センサーの値や特定のシステムイベントを検知するものなど)を自作し、検知時に上記のコマンドを呼び出す必要があります。--session-idパラメータを指定することで、システム通知を独立したサイドバーのセッションに分類し、メインのチャット画面を邪魔しないようにすることもできます。
3. 実行アカウントと権限の境界線
Museが取得する操作権限は、インストール時に選択したLinuxの実行アカウントの権限と完全に一致します。
該当アカウントがsudoを使用できる場合、Museも同様にsudo権限を持ちます。インストールスクリプトは設定時にそのアカウントのsudo権限の状態を提示します。リスクを低減したい場合は、インストール時に--run-as <用户名>を指定して権限を制限した独立したシステムアカウント(sudo権限を持たないユーザーなど)を割り当てることで、Museがそのマシン上で行える操作範囲を限定できます。
04. 何をしたいかによって決まる画面とケースの選択
プロジェクトのサンプルでは、さまざまなハードウェア形態が提示されています。ポケットデバイスはボタンを押して話す用途に適しており、デスクトップディスプレイはステータスやリマインダーの表示に向いています。ボードを選定する際は、そのモデルのオーディオ、画像表示、構成サポート状況も確認しておく必要があります。
- ポータブルガジェット(M5Stack StickS3 / StickC Plus2 / AiPi Lite):小型カラー液晶画面、ボタン、ケースを標準搭載しています。ライターサイズと非常にコンパクトで、前面の大きなボタンは「押しながら話す」音声入力端末の用途に最適です。画面にはMuseの現在の思考ステータスやドット絵アバターを表示できます。
- 洗練されたデスクトップクロック(Waveshare ESP32-S3-Touch-AMOLED-1.75 / 1.75C):円形フルカラータッチスクリーンを搭載し、優れた視覚体験を提供します。本格的なUI操作画面やボタン式音声入力に対応しており、ベッドサイドの小型オブジェに適しています。
- 低消費電力・常時表示ダッシュボード(Seeed reTerminal E1001 / E1002):電子ペーパーは、Museによるモーニングブリーフィング、リマインダー、買い物リストなどの静的コンテンツの表示に適しています。公式サイトにはE1002カラー電子ペーパーを使用したブリーフィング例が掲載されていますが、その「Source」リンクが指している実際の構成は
reterminal-e1001であり、SDKのサポートリストにおけるE1001の説明は「7.5インチ白黒電子ペーパーによる白黒画像表示」となっています。カラー画面プロジェクトを再現しようとする場合は、事前に型番とファームウェア構成を確認する必要があり、白黒画面の構成をそのまま流用することはできません。 - テレビドングル形態(Muse on your TV):公式サイトではテレビのHDMI端子に接続するドングル形状として紹介されており、大画面上にMuseのコンテンツを表示することが想定されていますが、現時点では「Coming soon」(近日公開)と表記されています。
05. ハードウェア接続後に必要なデバイス操作手順書
ハードウェアを用意した後、家庭内のデバイスをどう操作すればよいかをMuseに伝えるにはどうすればよいのでしょうか。そこで役立つのがCommunity Device Skillsです。
スキルはファームウェアにコンパイルされるのではなく、AIに向けた「取扱説明書」
ここでのスキルファイルはプレーンなMarkdownテキスト(SKILL.md)であり、すなわちMuseに向けたデバイス操作手順書です。
各スキルファイルは、本質的に構造化された自然言語を用いてMuseに以下の内容を伝えます。
- 特定のLANデバイス(Philips Hueブリッジなど)のローカルAPIインターフェースがどのような仕様であるか。
- 特定の照明を点灯させるためにどのようなHTTP POSTリクエストを送信する必要があるか。
- そのデバイスにどのような制御上の制約が存在するか。
スキルリポジトリのリンクをMuseに送信するか、ディレクトリから対応するデバイスのSKILL.mdテキストを探して対話画面に直接貼り付けることができます(Google Castなどの共有スキルを参照している場合はあわせて提供する必要があります)。これらの手順書が実際に機能するかどうかは、具体的なハードウェアモデルに互換性があるか、デバイスが同一ネットワーク上に存在するか、そして適切なローカルペアリングと権限設定が完了しているかに依存します。
作業前の最終チェック事項
- ファームウェアのコンパイル環境:公式ファームウェアはEspressif ESP-IDF v6.0.1をベースにビルドされており、公式にサポートされているのはこのバージョンのみです。その他のバージョンはサポート対象外となっています。
- すべてのデバイスでSDK Tokenが必要:自作のESP32であれLinuxデバイスであれ、ペアリング前にはgadgets.muse.aiでSDK tokenを取得する必要があります。コードリポジトリにはMuse Codeなどの端末コードエージェント向けに詳細な
AGENTS.mdが用意されており、権限を持つコードアシスタントにツールチェーンのダウンロードやコンパイル、書き込み作業を支援させることができます。 - 非公式スキルとセキュリティの境界線:コミュニティスキルは公式の統合機能ではなく、時間の経過に伴い変更されたり利用できなくなったりする可能性があります。ホームセキュリティ、緊急事態、医療用途など、安全に関わる重要な業務をこれらに依存しないでください。
- オープンソースライセンスと素材の許諾範囲:デバイス側SDKおよびファームウェアのソースコードはApache 2.0ライセンスでオープンソース化されていますが、Apache 2.0ライセンスにJollybotアバターは含まれません。また、minimp3(CC0-1.0)やドット絵フォント(BSD-2-Clause)などのサードパーティファイル、およびコンパイル時に取得されるESP-IDFコンポーネントは、それぞれの上流オープンソースライセンスに準拠します。
Muse Gadgetsは、デバイス側SDKとファームウェアを通じて、市販のハードウェアをMuseに接続させます。デバイスがディスプレイ表示、入力操作、またはLANパケットの転送を担い、理解や生成のコア機能は依然としてMuseのクラウドサービスに依存します。デスクトップのリマインダーとして使いたい場合は画面プロジェクトから着手し、Raspberry Piを管理させたい場合はまず実行アカウントと権限を選定します。実際に用意すべきものは、そのデバイス上でMuseに何をさせたいかによって決まります。
