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_triggersvoicewake_routing_configvoicewake_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.setz 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.setz parametrami{ config: VoiceWakeRoutingConfig }→{ config: VoiceWakeRoutingConfig }
Kształt VoiceWakeRoutingConfig:
{ "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?