跳轉到主要內容

語音喚醒(全域喚醒詞)

OpenClaw 將喚醒詞視為由 Gateway 擁有的單一全域清單
  • 沒有每個節點的自訂喚醒詞
  • 任何節點/應用程式 UI 都可以編輯此清單;變更會由 Gateway 儲存並廣播給所有人。
  • 各裝置仍各自保有 語音喚醒 啟用/停用 的切換(本地 UX 與權限不同)。

儲存(閘道器主機)

喚醒詞儲存在 gateway 機器上的位置為:
  • ~/.openclaw/settings/voicewake.json
形狀:
{ "triggers": ["openclaw", "claude", "computer"], "updatedAtMs": 1730000000000 }

協定

方法

  • voicewake.get{ triggers: string[] }
  • voicewake.set,參數為 { triggers: string[] }{ triggers: string[] }
注意事項:
  • Triggers are normalized (trimmed, empties dropped). 空清單會回退到預設值。
  • Limits are enforced for safety (count/length caps).

事件

  • voicewake.changed,承載 { triggers: string[] }
誰會收到:
  • 所有 WebSocket 連線的用戶端(macOS 應用程式、WebChat 等)。
  • 所有已連線的節點(iOS/Android),以及在節點連線時作為初始的「目前狀態」推送。

客戶端行為

macOS 應用程式

  • Uses the global list to gate VoiceWakeRuntime triggers.
  • 在「語音喚醒」設定中編輯「觸發詞」會呼叫 voicewake.set,接著依賴廣播來讓其他用戶端保持同步。

iOS 節點

  • 使用全域清單進行 VoiceWakeManager 的觸發偵測。
  • 在設定中編輯「喚醒詞」會(透過 Gateway WS)呼叫 voicewake.set,同時保持本地喚醒詞偵測的即時回應。

Android 節點

  • 在設定中提供喚醒詞編輯器。
  • 透過 Gateway WS 呼叫 voicewake.set,讓編輯結果在各處同步。