Nodes and media

Wybudzanie głosowe

OpenClaw traktuje słowa wybudzające jako jedną globalną listę, której właścicielem jest Gateway.

  • Nie ma niestandardowych słów wybudzających dla poszczególnych węzłów.
  • Interfejs dowolnego węzła/aplikacji może edytować listę; zmiany są utrwalane przez Gateway i rozsyłane do wszystkich.
  • macOS i iOS zachowują lokalne przełączniki włączonego/wyłączonego wybudzania głosowego (lokalny UX i uprawnienia się różnią).
  • Android obecnie utrzymuje wybudzanie głosowe wyłączone i używa ręcznego przepływu mikrofonu na karcie Głos.

Przechowywanie (host Gateway)

Słowa wybudzające i reguły routingu są przechowywane w bazie danych stanu gateway:

  • ~/.openclaw/state/openclaw.sqlite

Aktywne tabele to:

  • voicewake_triggers
  • voicewake_routing_config
  • voicewake_routing_routes

Starsze pliki settings/voicewake.json i settings/voicewake-routing.json są wyłącznie danymi wejściowymi migracji doctor; runtime odczytuje i zapisuje tabele SQLite.

Protokół

Metody

  • voicewake.get{ triggers: string[] }
  • voicewake.set z parametrami { triggers: string[] }{ triggers: string[] }

Uwagi:

  • Wyzwalacze są normalizowane (przycinane, puste wartości są usuwane). Puste listy wracają do wartości domyślnych.
  • Limity są egzekwowane ze względów bezpieczeństwa (ograniczenia liczby/długości).

Metody routingu (wyzwalacz → cel)

  • voicewake.routing.get{ config: VoiceWakeRoutingConfig }
  • voicewake.routing.set z parametrami { config: VoiceWakeRoutingConfig }{ config: VoiceWakeRoutingConfig }

Kształt VoiceWakeRoutingConfig:

json
{  "version": 1,  "defaultTarget": { "mode": "current" },  "routes": [{ "trigger": "robot wake", "target": { "sessionKey": "agent:main:main" } }],  "updatedAtMs": 1730000000000}

Cele tras obsługują dokładnie jedną z poniższych postaci:

  • { "mode": "current" }
  • { "agentId": "main" }
  • { "sessionKey": "agent:main:main" }

Zdarzenia

  • Ładunek voicewake.changed { triggers: string[] }
  • Ładunek voicewake.routing.changed { config: VoiceWakeRoutingConfig }

Kto je otrzymuje:

  • Wszyscy klienci WebSocket (aplikacja macOS, WebChat itd.)
  • Wszystkie połączone węzły (iOS/Android), a także przy połączeniu węzła jako początkowe wysłanie „bieżącego stanu”.

Zachowanie klienta

Aplikacja macOS

  • Używa globalnej listy do bramkowania wyzwalaczy VoiceWakeRuntime.
  • Edycja „Słów wyzwalających” w ustawieniach wybudzania głosowego wywołuje voicewake.set, a następnie polega na rozgłoszeniu, aby utrzymać synchronizację innych klientów.

Węzeł iOS

  • Używa globalnej listy do wykrywania wyzwalaczy VoiceWakeManager.
  • Edycja słów wybudzających w ustawieniach wywołuje voicewake.set (przez Gateway WS) i utrzymuje lokalne wykrywanie słów wybudzających w gotowości.

Węzeł Android

  • Wybudzanie głosowe jest obecnie wyłączone w runtime/ustawieniach Androida.
  • Głos w Androidzie używa ręcznego przechwytywania mikrofonu na karcie Głos zamiast wyzwalaczy słów wybudzających.

Powiązane

Was this useful?
On this page

On this page