---
read_when:
  - 更改语音唤醒词行为或默认值
  - 添加需要唤醒词同步的新节点平台
summary: 全局语音唤醒词（Gateway 网关拥有）及其如何跨节点同步
title: 语音唤醒
x-i18n:
  generated_at: "2026-02-03T07:51:10Z"
  model: manual
  provider: pi
  source_hash: eb34f52dfcdc3fc1ae088ae1f621f245546d3cf388299fbeea62face61788c37
  source_path: nodes/voicewake.md
  workflow: 15
---

# 语音唤醒（全局唤醒词）

Fased 将**唤醒词作为单一全局列表**，由 **Gateway 网关**拥有。

- **没有**每节点的自定义唤醒词。
- **任何节点/应用 UI 都可以编辑**列表；更改由 Gateway 网关持久化并广播给所有人。
- 每个设备仍保留自己的**语音唤醒启用/禁用**开关（本地用户体验 + 权限不同）。

## 存储（Gateway 网关主机）

唤醒词存储在 Gateway 网关机器上：

- `~/.fased/settings/voicewake.json`

结构：

```json
{ "triggers": ["fased", "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` 触发检测。
- 在设置中编辑唤醒词会调用 `voicewake.set`（通过 Gateway 网关 WS），同时保持本地唤醒词检测的响应性。

### Android 节点

- 在设置中暴露唤醒词编辑器。
- 通过 Gateway 网关 WS 调用 `voicewake.set`，使编辑在所有地方同步。
