---
read_when:
    - Работа над сценариями голосовой активации или PTT
summary: Режимы голосовой активации и «нажми и говори», а также сведения о маршрутизации в приложении для Mac
title: Голосовая активация (macOS)
x-i18n:
    generated_at: "2026-07-13T19:59:05Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    prompt_version: 24
    provider: openai
    source_hash: 2a0a5ac44931b578daa4f74b3728a65a1c19ab9742e2d4b9f4c6db49fa5d7b8a
    source_path: platforms/mac/voicewake.md
    workflow: 16
---

# Голосовая активация и передача по нажатию

## Требования

Для голосовой активации и передачи по нажатию требуется macOS 26 или новее. В более ранних версиях macOS элементы управления скрыты на странице настроек голоса, а вместо них отображается требование macOS 26.

## Режимы

- **Режим ключевого слова** (по умолчанию): постоянно активный распознаватель речи ожидает слова активации (`swabbleTriggerWords`). При совпадении он начинает запись, отображает наложение с частично распознанным текстом и автоматически отправляет его после паузы.
- **Передача по нажатию (удерживайте Right Option)**: удерживайте правую клавишу Option, чтобы сразу начать запись без ключевого слова. Наложение отображается, пока клавиша удерживается; после отпускания запись завершается и передаётся с небольшой задержкой, чтобы вы могли отредактировать текст.

## Поведение во время выполнения (ключевое слово)

- Распознаватель находится в `VoiceWakeRuntime`.
- Активация происходит только при наличии заметной паузы между ключевым словом и следующим словом (`triggerPauseWindow` = 0.55s). Наложение и звуковой сигнал могут появиться во время паузы, ещё до начала команды.
- Интервалы тишины: 2.0s (`silenceWindow`), когда речь продолжается, и 5.0s (`triggerOnlySilenceWindow`), если было распознано только ключевое слово.
- Принудительная остановка: 120s (`captureHardStop`), чтобы предотвратить бесконечные сеансы.
- Задержка между сеансами: 350ms (`debounceAfterSend`) после отправки.
- Наложение управляется через `VoiceWakeOverlayController`; подтверждённый и предварительный текст отображаются разными цветами.
- После отправки распознаватель корректно перезапускается и ожидает следующее ключевое слово.

## Инварианты жизненного цикла

- Если голосовая активация включена и разрешения предоставлены, распознаватель ключевого слова продолжает прослушивание, кроме периодов активной записи в режиме передачи по нажатию.
- После закрытия наложения, в том числе вручную кнопкой X, распознаватель всегда возобновляет работу: `VoiceSessionCoordinator.overlayDidDismiss` вызывает `VoiceWakeRuntime.refresh(state:)` для каждого способа закрытия. Модель сеанса и токена описана в разделе [Голосовое наложение](/ru/platforms/mac/voice-overlay).

## Особенности передачи по нажатию

- Для обнаружения горячей клавиши используется глобальный монитор `.flagsChanged` для правой клавиши Option (`keyCode 61` + `.option`). Он только отслеживает события и никогда не перехватывает их.
- Запись выполняется в `VoicePushToTalk`: распознавание речи запускается немедленно, частичные результаты передаются в наложение, а при отпускании вызывается `VoiceWakeForwarder`.
- При запуске передачи по нажатию среда обработки ключевого слова приостанавливается, чтобы избежать конкурирующего захвата звука; после отпускания она автоматически перезапускается.
- Разрешения: требуются доступ к микрофону и распознаванию речи; для получения событий клавиатуры необходимо разрешение Accessibility/Input Monitoring.
- Внешние клавиатуры: некоторые из них не передают правую клавишу Option ожидаемым образом. Если пользователи сообщают о пропущенных нажатиях, предложите резервное сочетание клавиш.

## Пользовательские настройки

- Переключатель **Голосовая активация**: включает среду обработки ключевого слова.
- **Удерживайте Right Option для разговора**: включает монитор передачи по нажатию.
- Средства выбора языка и микрофона, индикатор уровня в реальном времени, таблица ключевых слов и средство проверки (работает только локально и ничего не передаёт).
- Средство выбора микрофона сохраняет последний выбранный вариант при отключении устройства, показывает уведомление об отключении и временно использует системное устройство по умолчанию, пока выбранное устройство не станет доступно снова.
- **Звуки**: сигналы при обнаружении ключевого слова и отправке; по умолчанию используется системный звук macOS "Glass". Для каждого события можно выбрать любой файл, загружаемый через `NSSound` (например, MP3/WAV/AIFF), или выбрать **Без звука**.

## Поведение при передаче

- При передаче `VoiceWakeForwarder.selectedSessionOptions` выбирает ключ активного сеанса WebChat, если он задан, иначе — ключ основного сеанса Gateway.
- Этот сеанс ищется через `sessions.list`, после чего канал и получатель определяются из контекста доставки сеанса (с переходом к последнему каналу и получателю, а затем к разобранному ключу сеанса); если определить их не удаётся, по умолчанию используется WebChat.
- Если доставка завершается с ошибкой, она записывается в журнал (категория `voicewake.forward`), а выполнение по-прежнему отображается в WebChat и журналах сеанса.

## Полезная нагрузка передачи

- `VoiceWakeForwarder.prefixedTranscript(_:)` добавляет перед расшифровкой строку с подсказкой о компьютере (определённое имя узла или "этот Mac", если определить его не удалось); эта строка используется как для ключевого слова, так и для передачи по нажатию.

## Быстрая проверка

- Включите передачу по нажатию, удерживайте Right Option, произнесите текст и отпустите клавишу: наложение должно сначала показать частичные результаты, а затем отправить текст.
- Пока клавиша удерживается, значок ушей в строке меню должен оставаться увеличенным (`triggerVoiceEars(ttl: nil)`); после отпускания он уменьшается.

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

- [Голосовая активация](/ru/nodes/voicewake)
- [Голосовое наложение](/ru/platforms/mac/voice-overlay)
- [Приложение для macOS](/ru/platforms/macos)
