Voice Wake (Globale Aktivierungswörter)

OpenClaw behandelt Aktivierungswörter als eine einzige globale Liste, die dem Gateway gehört.

  • Es gibt keine node-spezifischen Aktivierungswörter.
  • Jeder Node / jede App-UI kann die Liste bearbeiten; Änderungen werden vom Gateway gespeichert und an alle verteilt.
  • macOS und iOS behalten lokale Voice-Wake-Aktiviert/Deaktiviert-Schalter (lokale UX + Berechtigungen unterscheiden sich).
  • Android hält Voice Wake derzeit deaktiviert und nutzt einen manuellen Mikrofon-Flow im Voice-Tab.

Speicherung (Gateway-Host)

Aktivierungswörter werden auf dem Gateway-Rechner gespeichert unter:

  • ~/.openclaw/settings/voicewake.json

Format:

{ "triggers": ["openclaw", "claude", "computer"], "updatedAtMs": 1730000000000 }

Protokoll

Methoden

  • voicewake.get{ triggers: string[] }
  • voicewake.set mit Parametern { triggers: string[] }{ triggers: string[] }

Hinweise:

  • Trigger werden normalisiert (getrimmt, leere entfernt). Leere Listen fallen auf Standardwerte zurück.
  • Sicherheitslimits werden durchgesetzt (Anzahl-/Längenbegrenzungen).

Events

  • voicewake.changed Payload { triggers: string[] }

Wer empfängt es:

  • Alle WebSocket-Clients (macOS-App, WebChat usw.)
  • Alle verbundenen Nodes (iOS/Android), und auch bei Node-Verbindung als initialer „aktueller Stand”-Push.

Client-Verhalten

macOS-App

  • Nutzt die globale Liste, um VoiceWakeRuntime-Trigger zu steuern.
  • Bearbeitung der „Trigger-Wörter” in den Voice-Wake-Einstellungen ruft voicewake.set auf und verlässt sich dann auf den Broadcast, um andere Clients synchron zu halten.

iOS-Node

  • Nutzt die globale Liste für die VoiceWakeManager-Trigger-Erkennung.
  • Bearbeitung der Aktivierungswörter in den Einstellungen ruft voicewake.set (über den Gateway-WS) auf und hält auch die lokale Aktivierungswort-Erkennung reaktionsfähig.

Android-Node

  • Voice Wake ist derzeit in der Android-Runtime/den Einstellungen deaktiviert.
  • Android-Voice nutzt stattdessen manuelle Mikrofonaufnahme im Voice-Tab anstelle von Aktivierungswort-Triggern.