Voice Wake (Global Wake Words)
OpenClaw 将唤醒词视为由网关拥有的单个全局列表。
- 没有每节点自定义唤醒词。
- 任何节点/应用 UI 都可以编辑列表;更改由网关持久化并广播给所有人。
- 每个设备仍然保持自己的语音唤醒启用/禁用切换(本地 UX + 权限不同)。
存储(网关主机)
唤醒词存储在网关机器上:
~/.openclaw/settings/voicewake.json
格式:
json
{ "triggers": ["clawd", "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触发词。 - 在语音唤醒设置中编辑"触发词"调用
voicewake.set,然后依靠广播来保持其他客户端同步。
iOS 节点
- 使用全局列表进行
VoiceWakeManager触发词检测。 - 在设置中编辑唤醒词通过网关 WS 调用
voicewake.set,并保持本地唤醒词检测响应。
Android 节点
- 在设置中公开唤醒词编辑器。
- 通过网关 WS 调用
voicewake.set,以便编辑在任何地方同步。