> ## Documentation Index
> Fetch the complete documentation index at: https://docs2.openclaw.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Голосовая активация

Фразы активации — это **единый глобальный список, принадлежащий Gateway**; отдельных пользовательских списков для каждого узла нет. Любой узел или интерфейс приложения может редактировать список; Gateway сохраняет изменение и рассылает его всем подключённым клиентам.

* **macOS**: локальный переключатель включения и отключения голосовой активации. Требуется macOS 26+; подробности о среде выполнения и PTT см. в разделе [Голосовая активация (macOS)](https://docs2.openclaw.ai/ru/platforms/mac/voicewake.md).
* **iOS**: локальный переключатель включения и отключения голосовой активации в Settings.
* **Android**: локальный переключатель включения и отключения голосовой активации и редактор фраз активации в Settings → Voice. Требуется встроенное распознавание речи на устройстве Android.

## Хранение

Фразы активации и правила маршрутизации хранятся в базе данных состояния Gateway, по умолчанию `~/.openclaw/state/openclaw.sqlite` (можно переопределить с помощью `OPENCLAW_STATE_DIR`), в таблицах `voicewake_triggers`, `voicewake_routing_config`, `voicewake_routing_routes`. Устаревшие `settings/voicewake.json` и `settings/voicewake-routing.json` используются только как входные данные миграции `openclaw doctor --fix` — среда выполнения никогда их не считывает.

## Протокол

### Список триггеров

| Метод | Параметры | Результат |
| - | - | - |
| `voicewake.get` | нет | `{ triggers: string[] }` |
| `voicewake.set` | `{ triggers: string[] }` | `{ triggers: string[] }` |

`voicewake.set` нормализует входные данные: удаляет пробелы по краям, отбрасывает пустые элементы, оставляет не более 32 триггеров и сокращает каждый до 64 кодовых единиц UTF-16, не разделяя суррогатные пары. Если результат пуст, используются встроенные значения по умолчанию (`openclaw`, `claude`, `computer`).

### Маршрутизация (от триггера к цели)

| Метод | Параметры | Результат |
| - | - | - |
| `voicewake.routing.get` | нет | `{ config: VoiceWakeRoutingConfig }` |
| `voicewake.routing.set` | `{ config: VoiceWakeRoutingConfig }` | `{ config: VoiceWakeRoutingConfig }` |

```json theme={"theme":{"light":"min-light","dark":"min-dark"}}
{
  "version": 1,
  "defaultTarget": { "mode": "current" },
  "routes": [{ "trigger": "фраза активации робота", "target": { "sessionKey": "agent:main:main" } }],
  "updatedAtMs": 1730000000000
}
```

Каждая цель маршрута `target` поддерживает ровно один из следующих вариантов:

* `{ "mode": "current" }`
* `{ "agentId": "main" }`
* `{ "sessionKey": "agent:main:main" }`

Ограничения: не более 32 маршрутов, текст триггера — не более 64 символов. Триггеры маршрутов нормализуются для сопоставления и выявления дубликатов: переводятся в нижний регистр, из каждого слова удаляются начальные и конечные знаки препинания, а последовательности пробельных символов сворачиваются (`"Hey, Bot!!"` и `"hey bot"` совпадают и считаются дубликатами). Эта нормализация строже простого удаления пробелов по краям, применяемого к приведённому выше глобальному списку триггеров.

### События

| Событие | Полезная нагрузка |
| - | - |
| `voicewake.changed` | `{ triggers: string[] }` |
| `voicewake.routing.changed` | `{ config: VoiceWakeRoutingConfig }` |

Оба события рассылаются каждому клиенту WebSocket с областью доступа на чтение (приложению macOS, WebChat и аналогичным клиентам), а также каждому подключённому узлу. Узел также получает оба события в виде исходного моментального снимка сразу после подключения.

## Поведение клиентов

* **macOS**: вызывает `voicewake.set`/`voicewake.get` и отслеживает `voicewake.changed`, чтобы сохранять синхронизацию с другими клиентами.
* **iOS**: вызывает `voicewake.set`/`voicewake.get` и отслеживает `voicewake.changed`, чтобы локальное обнаружение фраз активации своевременно реагировало на изменения.
* **Android**: вызывает `voicewake.set`/`voicewake.get`, отслеживает `voicewake.changed` и при включении объявляет `voiceWake`. Распознавание выполняется на устройстве и только на переднем плане; оно приостанавливается, пока аудио используется режимом Talk, ручной диктовкой, записью голосовой заметки или озвучиванием сообщения.

## Связанные разделы

* [Режим Talk](https://docs2.openclaw.ai/ru/nodes/talk.md)
* [Аудио и голосовые заметки](https://docs2.openclaw.ai/ru/nodes/audio.md)
* [Распознавание медиаконтента](https://docs2.openclaw.ai/ru/nodes/media-understanding.md)
