- macOS : bouton d’activation/désactivation local de l’activation vocale. Nécessite macOS 26+ ; consultez Activation vocale (macOS) pour plus de détails sur l’exécution et le PTT.
- iOS : bouton d’activation/désactivation local de l’activation vocale dans Settings.
- Android : bouton d’activation/désactivation local de l’activation vocale et éditeur de mots d’activation dans Settings → Voice. Nécessite la reconnaissance vocale Android sur l’appareil.
Stockage
Les mots d’activation et les règles de routage résident dans la base de données d’état du Gateway,~/.openclaw/state/openclaw.sqlite par défaut (remplacez cette valeur avec OPENCLAW_STATE_DIR), dans les tables voicewake_triggers, voicewake_routing_config, voicewake_routing_routes. Les anciens settings/voicewake.json et settings/voicewake-routing.json servent uniquement d’entrées de migration pour openclaw doctor --fix — l’environnement d’exécution ne les lit jamais.
Protocole
Liste des déclencheurs
voicewake.set normalise l’entrée : supprime les espaces en début et fin, élimine les entrées vides, conserve au maximum 32 déclencheurs et tronque chacun à 64 unités de code UTF-16 sans diviser les paires de substitution. Si le résultat est vide, les valeurs par défaut intégrées sont utilisées (openclaw, claude, computer).
Routage (du déclencheur vers la cible)
target prend en charge exactement l’un des éléments suivants :
{ "mode": "current" }{ "agentId": "main" }{ "sessionKey": "agent:main:main" }
"Hey, Bot!!" et "hey bot" correspondent et sont comptés comme des doublons) — cette normalisation est plus stricte que la simple suppression des espaces en début et fin utilisée pour la liste globale des déclencheurs ci-dessus.
Événements
Les deux sont diffusés à chaque client WebSocket disposant de la portée de lecture (application macOS, WebChat et autres clients similaires), ainsi qu’à chaque Node connecté. Un Node reçoit également les deux sous forme d’instantané initial immédiatement après sa connexion.
Comportement des clients
- macOS : appelle
voicewake.set/voicewake.getet écoutevoicewake.changedpour rester synchronisé avec les autres clients. - iOS : appelle
voicewake.set/voicewake.getet écoutevoicewake.changedafin que la détection locale des mots d’activation reste réactive. - Android : appelle
voicewake.set/voicewake.get, écoutevoicewake.changedet annoncevoiceWakelorsqu’elle est activée. La reconnaissance reste effectuée sur l’appareil et uniquement au premier plan ; elle est suspendue lorsque Talk, la dictée manuelle, l’enregistrement d’une note vocale ou la lecture vocale d’un message utilise l’audio.