> ## 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.

# Режим розмови

Режим Talk має дві форми виконання:

* Нативний Talk для macOS/iOS/Android використовує локальне розпізнавання мовлення, чат Gateway і TTS `talk.speak`. Вузли оголошують можливість `talk` і декларують команди `talk.*`, які вони підтримують.
* iOS Talk використовує WebRTC, керований клієнтом, для конфігурацій OpenAI реального часу, які вибирають `webrtc` або не вказують транспорт. Явні конфігурації реального часу `gateway-relay`, `provider-websocket` і не-OpenAI залишаються на ретрансляторі, керованому Gateway; конфігурації не реального часу використовують нативний мовленнєвий цикл.
* Browser Talk використовує `talk.client.create` для сеансів `webrtc` і `provider-websocket`, керованих клієнтом, або `talk.session.create` для сеансів `gateway-relay`, керованих Gateway. `managed-room` зарезервовано для передачі Gateway і кімнат раційного зв’язку.
* Android Talk може увімкнути сеанси ретрансляції реального часу, керовані Gateway, з `talk.realtime.mode: "realtime"` і `talk.realtime.transport: "gateway-relay"`. Інакше він залишається на нативному розпізнаванні мовлення, чаті Gateway і `talk.speak`.
* Клієнти лише для транскрипції використовують `talk.session.create({ mode: "transcription", transport: "gateway-relay", brain: "none" })`, а потім `talk.session.appendAudio`, `talk.session.cancelTurn` і `talk.session.close`, коли їм потрібні субтитри або диктування без голосової відповіді асистента.

Нативний Talk — це безперервний цикл голосової розмови:

1. Слухати мовлення
2. Надіслати транскрипт до моделі через активний сеанс
3. Дочекатися відповіді
4. Озвучити її через налаштованого провайдера Talk (`talk.speak`)

Talk реального часу, керований клієнтом, пересилає виклики інструментів провайдера через `talk.client.toolCall`; ці клієнти не викликають `chat.send` напряму для консультацій реального часу.
Поки консультація реального часу активна, клієнти Talk можуть використовувати `talk.client.steer` або
`talk.session.steer`, щоб класифікувати мовленнєвий ввід як `status`, `steer`, `cancel` або
`followup`. Прийняте керування ставиться в чергу активного вбудованого запуску; відхилене
керування повертає структуровану причину, як-от `no_active_run`, `not_streaming`
або `compacting`.

Talk лише для транскрипції видає той самий спільний конверт подій Talk, що й сеанси реального часу та STT/TTS, але використовує `mode: "transcription"` і `brain: "none"`. Він призначений для субтитрів, диктування та пасивного захоплення мовлення; одноразово завантажені голосові нотатки все ще використовують шлях медіа/аудіо.

## Поведінка (macOS)

* **Постійно видимий оверлей**, поки режим Talk увімкнено.
* Переходи фаз **Слухання → Обмірковування → Говоріння**.
* Після **короткої паузи** (вікна тиші) поточний транскрипт надсилається.
* Відповіді **записуються у WebChat** (так само, як під час введення тексту).
* **Переривання мовленням** (увімкнено за замовчуванням): якщо користувач починає говорити, поки асистент говорить, ми зупиняємо відтворення й фіксуємо часову мітку переривання для наступного запиту.

## Голосові директиви у відповідях

Асистент може додати до відповіді префікс у вигляді **одного JSON-рядка** для керування голосом:

```json theme={"theme":{"light":"min-light","dark":"min-dark"}}
{ "voice": "<voice-id>", "once": true }
```

Правила:

* Лише перший непорожній рядок.
* Невідомі ключі ігноруються.
* `once: true` застосовується лише до поточної відповіді.
* Без `once` голос стає новим типовим для режиму Talk.
* JSON-рядок видаляється перед відтворенням TTS.

Підтримувані ключі:

* `voice` / `voice_id` / `voiceId`
* `model` / `model_id` / `modelId`
* `speed`, `rate` (WPM), `stability`, `similarity`, `style`, `speakerBoost`
* `seed`, `normalize`, `lang`, `output_format`, `latency_tier`
* `once`

## Конфігурація (`~/.openclaw/openclaw.json`)

```json5 theme={"theme":{"light":"min-light","dark":"min-dark"}}
{
  talk: {
    provider: "elevenlabs",
    providers: {
      elevenlabs: {
        voiceId: "elevenlabs_voice_id",
        modelId: "eleven_v3",
        outputFormat: "mp3_44100_128",
        apiKey: "elevenlabs_api_key",
      },
      mlx: {
        modelId: "mlx-community/Soprano-80M-bf16",
      },
      system: {},
    },
    speechLocale: "ru-RU",
    silenceTimeoutMs: 1500,
    interruptOnSpeech: true,
    realtime: {
      provider: "openai",
      providers: {
        openai: {
          apiKey: "openai_api_key",
          model: "gpt-realtime-2",
          voice: "cedar",
        },
      },
      instructions: "Speak warmly and keep answers brief.",
      mode: "realtime",
      transport: "webrtc",
      brain: "agent-consult",
    },
  },
}
```

Типові значення:

* `interruptOnSpeech`: true
* `silenceTimeoutMs`: якщо не задано, Talk зберігає типове для платформи вікно паузи перед надсиланням транскрипту (`700 ms on macOS and Android, 900 ms on iOS`)
* `provider`: вибирає активного провайдера Talk. Використовуйте `elevenlabs`, `mlx` або `system` для локальних шляхів відтворення macOS.
* `providers.<provider>.voiceId`: повертається до `ELEVENLABS_VOICE_ID` / `SAG_VOICE_ID` для ElevenLabs (або до першого голосу ElevenLabs, коли доступний API-ключ).
* `providers.elevenlabs.modelId`: за замовчуванням використовує `eleven_v3`, якщо не задано.
* `providers.mlx.modelId`: за замовчуванням використовує `mlx-community/Soprano-80M-bf16`, якщо не задано.
* `providers.elevenlabs.apiKey`: повертається до `ELEVENLABS_API_KEY` (або профілю оболонки Gateway, якщо доступний).
* `consultThinkingLevel`: необов’язкове перевизначення рівня обмірковування для повного запуску агента OpenClaw за викликами реального часу `openclaw_agent_consult`.
* `consultFastMode`: необов’язкове перевизначення швидкого режиму для викликів реального часу `openclaw_agent_consult`.
* `realtime.provider`: вибирає активного провайдера голосу реального часу. Використовуйте `openai` для WebRTC, `google` для WebSocket провайдера або провайдера лише з мостом через ретранслятор Gateway.
* `realtime.providers.<provider>` зберігає конфігурацію реального часу, якою володіє провайдер. Браузер отримує лише тимчасові або обмежені облікові дані сеансу, ніколи не стандартний API-ключ.
* `realtime.providers.openai.voice`: вбудований ідентифікатор голосу OpenAI Realtime. Поточні голоси `gpt-realtime-2`: `alloy`, `ash`, `ballad`, `coral`, `echo`, `sage`, `shimmer`, `verse`, `marin` і `cedar`; `marin` і `cedar` рекомендовані для найкращої якості.
* `realtime.transport`: `webrtc` використовує OpenAI WebRTC, керований клієнтом, на iOS і в браузері. `provider-websocket` керується браузером, але на iOS залишається на ретрансляторі Gateway. `gateway-relay` тримає аудіо провайдера на Gateway; Android використовує режим реального часу лише для цього транспорту, а в інших випадках зберігає свій нативний цикл STT/TTS.
* `realtime.brain`: `agent-consult` маршрутизує виклики інструментів реального часу через політику Gateway; `direct-tools` — це застаріла сумісна поведінка прямих інструментів; `none` призначено для транскрипції або зовнішньої оркестрації.
* `realtime.consultRouting`: `provider-direct` зберігає пряму відповідь провайдера, коли він пропускає `openclaw_agent_consult`; `force-agent-consult` натомість змушує ретранслятор Gateway маршрутизувати фіналізовані транскрипти користувача через OpenClaw.
* `realtime.instructions`: додає системні інструкції для провайдера до вбудованого запиту OpenClaw реального часу. Використовуйте це для стилю й тону голосу; OpenClaw зберігає типові вказівки `openclaw_agent_consult`.
* `talk.catalog` показує канонічні ідентифікатори провайдерів і псевдоніми реєстру поряд із допустимими режимами, транспортами, стратегіями brain, аудіоформатами реального часу, прапорцями можливостей і вибраним середовищем виконання результатом готовності для кожного провайдера. Клієнти Talk першої сторони мають використовувати цей каталог замість локального підтримання псевдонімів провайдерів; старіший Gateway, який не передає готовність групи, вважається неперевіреним, а не точно неналаштованим.
* Провайдери потокової транскрипції виявляються через `talk.catalog.transcription`. Поточний ретранслятор Gateway використовує конфігурацію провайдера потокових голосових викликів, доки не буде додано окрему поверхню конфігурації транскрипції Talk.
* `speechLocale`: необов’язковий ідентифікатор локалі BCP 47 для розпізнавання мовлення Talk на пристрої в iOS/macOS. Залиште незаданим, щоб використовувати типове значення пристрою.
* `outputFormat`: за замовчуванням `pcm_44100` на macOS/iOS і `pcm_24000` на Android (задайте `mp3_*`, щоб примусово ввімкнути потокове MP3)

## Інтерфейс macOS

* Перемикач у рядку меню: **Talk**
* Вкладка конфігурації: група **Talk Mode** (ідентифікатор голосу + перемикач переривання)
* Оверлей:
  * **Слухання**: хмара пульсує відповідно до рівня мікрофона
  * **Обмірковування**: анімація занурення
  * **Говоріння**: розбіжні кільця
  * Клацання хмари: зупинити говоріння
  * Клацання X: вийти з режиму Talk

## Інтерфейс Android

* Перемикач вкладки голосу: **Talk**
* Ручні режими **Mic** і **Talk** є взаємовиключними режимами захоплення під час виконання.
* Ручний Mic і Talk реального часу надають перевагу підключеному мікрофону гарнітури Bluetooth Classic або BLE. Якщо він від’єднується, застосунок запитує інший вхід гарнітури або дозволяє Android використовувати типовий мікрофон; зупинка захоплення відновлює типову перевагу мікрофона.
* Ручний Mic зупиняється, коли застосунок виходить із переднього плану або користувач залишає вкладку Voice.
* Talk Mode працює, доки його не вимкнуть або вузол Android не від’єднається, і під час активності використовує тип foreground-service мікрофона Android.

## Примітки

* Потребує дозволів Speech + Microphone.
* Нативний Talk використовує активний сеанс Gateway і повертається до опитування історії лише тоді, коли події відповіді недоступні.
* Talk реального часу, керований клієнтом, використовує `talk.client.toolCall` для `openclaw_agent_consult` замість відкриття `chat.send` для сеансів, якими володіє провайдер.
* Talk лише для транскрипції використовує `talk.session.create`, `talk.session.appendAudio`, `talk.session.cancelTurn` і `talk.session.close`; клієнти підписуються на `talk.event` для часткових/фінальних оновлень транскрипту.
* Gateway розв’язує відтворення Talk через `talk.speak`, використовуючи активного провайдера Talk. Android повертається до локального системного TTS лише тоді, коли цей RPC недоступний.
* Локальне відтворення MLX на macOS використовує вбудований допоміжний інструмент `openclaw-mlx-tts`, якщо він присутній, або виконуваний файл у `PATH`. Установіть `OPENCLAW_MLX_TTS_BIN`, щоб під час розробки вказати власний допоміжний бінарний файл.
* `stability` для `eleven_v3` перевіряється на `0.0`, `0.5` або `1.0`; інші моделі приймають `0..1`.
* `latency_tier` перевіряється на `0..4`, коли задано.
* Android підтримує вихідні формати `pcm_16000`, `pcm_22050`, `pcm_24000` і `pcm_44100` для потокового AudioTrack із низькою затримкою.

## Пов’язане

* [Голосове пробудження](/uk/nodes/voicewake)
* [Аудіо та голосові нотатки](/uk/nodes/audio)
* [Розуміння медіа](/uk/nodes/media-understanding)
