---
read_when:
    - Реалізація режиму розмови на macOS/iOS/Android
    - Зміна голосу/TTS/поведінки переривання
summary: 'Режим розмови: безперервні голосові розмови з налаштованими постачальниками TTS'
title: Режим розмови
x-i18n:
    generated_at: "2026-04-25T20:13:30Z"
    model: gpt-5.4
    provider: openai
    source_hash: afdddaa81c0a09076eaeeafd25295b0c02681f03b273ec4afe4ea2afa692dc2a
    source_path: nodes/talk.md
    workflow: 15
---

Режим розмови — це безперервний цикл голосової розмови:

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

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

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

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

Асистент може додати на початку своєї відповіді **один рядок JSON**, щоб керувати голосом:

```json
{ "voice": "<voice-id>", "once": true }
```

Правила:

- Лише перший непорожній рядок.
- Невідомі ключі ігноруються.
- `once: true` застосовується лише до поточної відповіді.
- Без `once` голос стає новим голосом за замовчуванням для режиму розмови.
- Рядок 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
{
  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,
  },
}
```

Значення за замовчуванням:

- `interruptOnSpeech`: true
- `silenceTimeoutMs`: якщо не задано, Talk зберігає стандартне для платформи вікно паузи перед надсиланням транскрипту (`700 ms` на macOS і Android, `900 ms` на 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, якщо доступний).
- `speechLocale`: необов’язковий ідентифікатор локалі BCP 47 для розпізнавання мовлення Talk на пристрої на iOS/macOS. Залиште незаданим, щоб використовувати локаль пристрою за замовчуванням.
- `outputFormat`: за замовчуванням `pcm_44100` на macOS/iOS і `pcm_24000` на Android (встановіть `mp3_*`, щоб примусово використовувати MP3-потік)

## UI macOS

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

## UI Android

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

## Примітки

- Потрібні дозволи на Speech і Microphone.
- Використовує `chat.send` для ключа сесії `main`.
- 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)
