Langsung ke konten utama

Voice Wake (Wake Word Global)

OpenClaw memperlakukan wake word sebagai satu daftar global yang dimiliki oleh Gateway.
  • Tidak ada wake word kustom per node.
  • UI node/app mana pun dapat mengedit daftar tersebut; perubahan dipersistenkan oleh Gateway dan disiarkan ke semua orang.
  • macOS dan iOS mempertahankan toggle lokal Voice Wake aktif/nonaktif (UX lokal + izin berbeda).
  • Android saat ini mempertahankan Voice Wake tetap nonaktif dan menggunakan alur mic manual di tab Voice.

Penyimpanan (host Gateway)

Wake word disimpan di mesin gateway pada:
  • ~/.openclaw/settings/voicewake.json
Bentuk:
{ "triggers": ["openclaw", "claude", "computer"], "updatedAtMs": 1730000000000 }

Protokol

Metode

  • voicewake.get{ triggers: string[] }
  • voicewake.set dengan params { triggers: string[] }{ triggers: string[] }
Catatan:
  • Trigger dinormalisasi (spasi dipangkas, entri kosong dibuang). Daftar kosong akan fallback ke default.
  • Batas diterapkan demi keamanan (batas jumlah/panjang).

Event

  • Payload voicewake.changed { triggers: string[] }
Siapa yang menerimanya:
  • Semua klien WebSocket (app macOS, WebChat, dll.)
  • Semua node yang terhubung (iOS/Android), dan juga saat node terhubung sebagai push “state saat ini” awal.

Perilaku klien

App macOS

  • Menggunakan daftar global untuk mengendalikan trigger VoiceWakeRuntime.
  • Mengedit “Trigger words” di pengaturan Voice Wake memanggil voicewake.set lalu mengandalkan siaran untuk menjaga klien lain tetap sinkron.

Node iOS

  • Menggunakan daftar global untuk deteksi trigger VoiceWakeManager.
  • Mengedit Wake Words di Settings memanggil voicewake.set (melalui Gateway WS) dan juga menjaga deteksi wake word lokal tetap responsif.

Node Android

  • Voice Wake saat ini dinonaktifkan di runtime/Settings Android.
  • Voice Android menggunakan pengambilan mic manual di tab Voice alih-alih trigger wake word.