Skip to main content
Режим розмови охоплює п’ять варіантів виконання:
  • Нативний режим розмови в macOS/iOS/Android: локальне розпізнавання мовлення, чат через Gateway і синтез мовлення talk.speak. Вузли оголошують можливість talk і вказують, які команди talk.* вони підтримують.
  • Режим розмови в iOS (у реальному часі): WebRTC під керуванням клієнта для конфігурацій OpenAI реального часу, у яких вибрано транспорт webrtc або транспорт не вказано. Явні конфігурації реального часу gateway-relay, provider-websocket і конфігурації не від OpenAI залишаються на ретрансляторі під керуванням Gateway; конфігурації не в реальному часі використовують нативний мовленнєвий цикл.
  • Режим розмови в браузері: talk.client.create для сеансів webrtc/provider-websocket під керуванням клієнта або talk.session.create для сеансів gateway-relay під керуванням Gateway. managed-room зарезервовано для передавання керування Gateway і кімнат у режимі рації.
  • Режим розмови в Android (у реальному часі): увімкніть його за допомогою talk.realtime.mode: "realtime" і talk.realtime.transport: "gateway-relay". Інакше Android продовжує використовувати нативне розпізнавання мовлення, чат через Gateway і talk.speak.
  • Клієнти лише для транскрибування: talk.session.create({ mode: "transcription", transport: "gateway-relay", brain: "none" }), а потім talk.session.appendAudio, talk.session.cancelTurn і talk.session.close для субтитрів/диктування без голосової відповіді асистента. Одноразово завантажені голосові нотатки й надалі використовують аудіошлях розуміння медіа.
Нативний режим розмови — це безперервний цикл: прослухати мовлення, надіслати транскрипцію моделі через активний сеанс, дочекатися відповіді, а потім озвучити її через налаштованого постачальника режиму розмови (talk.speak). Режим розмови в реальному часі під керуванням клієнта пересилає виклики інструментів постачальника через talk.client.toolCall, а не викликає chat.send безпосередньо. Поки активна консультація в реальному часі, клієнти можуть викликати talk.client.steer або talk.session.steer, щоб класифікувати усне введення як status, steer, cancel або followup. Прийняте керування додається до черги активного вбудованого запуску; у разі відхилення повертається причина, наприклад no_active_run, not_streaming або compacting. Режим розмови лише для транскрибування надсилає таку саму оболонку подій режиму розмови, що й сеанси реального часу та STT/TTS, але використовує mode: "transcription" і brain: "none". Усі сеанси режиму розмови транслюють події в каналі talk.event; клієнти підписуються на нього, щоб отримувати часткові/остаточні оновлення транскрипції (transcript.delta/transcript.done) та іншу телеметрію сеансу.

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

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

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

Асистент може додати на початок відповіді один рядок JSON для керування голосом:
Правила:
  • Лише перший непорожній рядок; рядок JSON вилучається перед відтворенням TTS.
  • Невідомі ключі ігноруються.
  • once: true застосовується лише до поточної відповіді; без нього голос стає новим типовим голосом режиму розмови.
Підтримувані ключі: voice / voice_id / voiceId, model / model_id / modelId, speed, rate (слів за хвилину), stability, similarity, style, speakerBoost, seed, normalize, lang, output_format, latency_tier, once.

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

talk.catalog надає канонічні ідентифікатори провайдерів і псевдоніми реєстру, допустимі режими, транспорти, стратегії мозку, формати аудіо в реальному часі та прапорці можливостей кожного провайдера, а також вибраний середовищем виконання результат готовності. Клієнти Talk від розробників продукту мають використовувати цей каталог замість локального ведення псевдонімів провайдерів; старішу версію Gateway, яка не надає групову готовність, слід вважати неперевіреною, а не однозначно неналаштованою. Провайдери потокового транскрибування виявляються через talk.catalog.transcription; поточний ретранслятор Gateway використовує конфігурацію провайдера потокового передавання Voice Call, доки не з’явиться окрема поверхня конфігурації транскрибування Talk.

Інтерфейс macOS

  • Перемикач у смузі меню: Talk
  • Вкладка конфігурації: група Talk Mode (ідентифікатор голосу та перемикач переривання)
  • Накладка: сфера відтворює універсальну форму звукової хвилі Talk (спільну з iOS, watchOS і Android). Під час прослуховування вона реагує на поточний рівень мікрофона, під час мовлення — на фактичну огинальну відтворення TTS, а під час обмірковування — м’яко пульсує. Натисніть сферу, щоб призупинити або відновити роботу, двічі натисніть, щоб припинити мовлення, або натисніть X, щоб вийти з режиму Talk.

Інтерфейс Android

  • Перемикач на вкладці Voice: Talk
  • Ручні режими Mic і Talk є взаємовиключними режимами захоплення.
  • Ручний режим Mic і Talk у реальному часі надають перевагу мікрофону підключеної гарнітури Bluetooth Classic або BLE; якщо вона відключається, застосунок запитує інший вхід гарнітури або перемикається на стандартний мікрофон, відновлюючи стандартні налаштування після завершення захоплення.
  • Ручний режим Mic припиняється, коли застосунок переходить у фоновий режим або користувач залишає вкладку Voice.
  • Режим Talk продовжує працювати, доки його не вимкнуть перемикачем або доки Node не відключиться, використовуючи під час роботи тип фонової служби Android для мікрофона.
  • Android підтримує вихідні формати pcm_16000, pcm_22050, pcm_24000 і pcm_44100 для потокового передавання через AudioTrack із низькою затримкою.

Примітки

  • Потрібні дозволи на розпізнавання мовлення та доступ до мікрофона.
  • Вбудований Talk використовує активний сеанс Gateway і переходить до опитування історії лише тоді, коли події відповіді недоступні.
  • Gateway визначає відтворення Talk через talk.speak, використовуючи активного провайдера Talk. Android переходить до локального системного TTS лише тоді, коли цей RPC недоступний.
  • Локальне відтворення MLX у macOS використовує вбудований допоміжний засіб openclaw-mlx-tts, якщо він доступний, або виконуваний файл у PATH. Під час розробки задайте OPENCLAW_MLX_TTS_BIN, щоб указати власний виконуваний файл допоміжного засобу.
  • Діапазони значень голосових директив (ElevenLabs): stability, similarity і style приймають 0..1; speed приймає 0.5..2; latency_tier приймає 0..4.

Пов’язані матеріали