음성 깨우기 (글로벌 깨우기 단어)

OpenClaw는 깨우기 단어를 Gateway가 소유하는 단일 글로벌 목록으로 관리합니다.

  • 노드별 커스텀 깨우기 단어는 없습니다.
  • 모든 노드/앱 UI에서 목록을 편집할 수 있습니다. 변경 사항은 Gateway에 저장되고 모두에게 브로드캐스트됩니다.
  • macOS와 iOS는 로컬 음성 깨우기 활성화/비활성화 토글을 유지합니다 (로컬 UX + 권한이 다름).
  • Android는 현재 음성 깨우기를 비활성화하고 보이스 탭에서 수동 마이크 흐름을 사용합니다.

저장소 (Gateway 호스트)

깨우기 단어는 게이트웨이 머신에 저장됩니다:

  • ~/.openclaw/settings/voicewake.json

형태:

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

프로토콜

메서드

  • voicewake.get{ triggers: string[] }
  • voicewake.set 매개변수 { triggers: string[] }{ triggers: string[] }

참고:

  • 트리거는 정규화됩니다 (공백 제거, 빈 항목 삭제). 빈 목록은 기본값으로 폴백됩니다.
  • 안전을 위해 제한이 적용됩니다 (개수/길이 상한).

이벤트

  • voicewake.changed 페이로드 { triggers: string[] }

수신 대상:

  • 모든 WebSocket 클라이언트 (macOS 앱, WebChat 등)
  • 모든 연결된 노드 (iOS/Android), 노드 연결 시 초기 “현재 상태” 푸시로도 제공됩니다.

클라이언트 동작

macOS 앱

  • 글로벌 목록을 사용하여 VoiceWakeRuntime 트리거를 게이트합니다.
  • 음성 깨우기 설정에서 “트리거 단어”를 편집하면 voicewake.set을 호출하고, 다른 클라이언트와의 동기화를 위해 브로드캐스트에 의존합니다.

iOS 노드

  • VoiceWakeManager 트리거 감지를 위해 글로벌 목록을 사용합니다.
  • 설정에서 깨우기 단어를 편집하면 (Gateway WS를 통해) voicewake.set을 호출하고, 로컬 깨우기 단어 감지도 즉시 반영합니다.

Android 노드

  • Android 런타임/설정에서 음성 깨우기는 현재 비활성화되어 있습니다.
  • Android 음성은 깨우기 단어 트리거 대신 보이스 탭에서 수동 마이크 캡처를 사용합니다.