语音唤醒(全局唤醒词)
OpenClaw将唤醒词视为由网关拥有的单一全局列表。- 不存在每个节点的自定义唤醒词。
- 任何节点或应用界面均可编辑该列表;更改由网关持久化并广播给所有设备。
- 每台设备仍保留自己的语音唤醒启用/禁用开关(本地用户体验和权限设置可能有所不同)。
存储(网关主机)
唤醒词存储在网关机器上,路径为:~/.openclaw/settings/voicewake.json
协议
方法
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触发检测。 - 在设置中编辑唤醒词会通过网关 WebSocket 调用
voicewake.set,并确保本地唤醒词检测始终保持响应。
Android 节诺
- 在设置中提供唤醒词编辑器。
- 通过网关 WebSocket 调用
voicewake.set,以确保所有设备上的编辑内容实时同步。