メディアとデバイス
Voice Wake
OpenClaw はウェイクワードを単一のグローバルリストとして扱い、ゲートウェイが所有します。
- ノードごとのカスタムウェイクワードはありません。
- 任意のノード/アプリ UI がリストを編集可能です。変更はゲートウェイによって永続化され、全員にブロードキャストされます。
- macOS と iOS は、ローカルの Voice Wake 有効/無効トグルを保持します(ローカル UX と権限が異なります)。
- Android は現在、Voice Wake をオフに保ち、Voice タブで手動マイクフローを使用します。
ストレージ (ゲートウェイホスト)
ウェイクワードは、ゲートウェイマシンの以下の場所に保存されます:
~/.openclaw/settings/voicewake.json
構造:
{ "triggers": ["openclaw", "claude", "computer"], "updatedAtMs": 1730000000000 }
プロトコル
メソッド
voicewake.get→{ triggers: string[] }voicewake.setパラメータ{ triggers: string[] }で →{ triggers: string[] }
注記:
- トリガーは正規化されます(トリミング、空の削除)。空のリストはデフォルトにフォールバックします。
- 安全性のため制限が適用されます(数/長さの上限)。
イベント
voicewake.changedペイロード{ triggers: string[] }
受信者:
- すべての WebSocket クライアント (macOS アプリ、WebChat など)
- すべての接続されたノード (iOS/Android)。また、ノード接続時には初期の「現在の状態」プッシュとしても送信されます。
クライアントの動作
macOS アプリ
- グローバルリストを使用して
VoiceWakeRuntimeトリガーを制御します。 - Voice Wake 設定で「トリガーワード」を編集すると、
voicewake.setが呼び出され、その後ブロードキャストに依存して他のクライアントを同期状態に保ちます。
iOS ノード
- グローバルリストを
VoiceWakeManagerのトリガー検出に使用します。 - 設定でウェイクワードを編集すると、
voicewake.setが呼び出され(ゲートウェイ WS 経由)、ローカルのウェイクワード検出も応答性を保ちます。
Android ノード
- Voice Wake は現在、Android ランタイム/設定で無効になっています。
- Android の音声機能は、ウェイクワードトリガーの代わりに、Voice タブでの手動マイクキャプチャを使用します。