Режим разговора
Режим разговора — это непрерывный цикл голосовой беседы:
- Слушать речь
- Отправить транскрипт модели (основная сессия, chat.send)
- Дождаться ответа
- Произнести его через ElevenLabs (потоковое воспроизведение)
Поведение (macOS)
- Всегда включенное наложение, пока режим разговора включен.
- Слушание → Думание → Говорение переходы фаз.
- При короткой паузе (окно тишины) текущий транскрипт отправляется.
- Ответы записываются в WebChat (как при вводе).
- Прерывание при речи (по умолчанию включено): если пользователь начинает говорить, пока говорит ассистент, мы останавливаем воспроизведение и отмечаем временную метку прерывания для следующего запроса.
Директивы голоса в ответах
Ассистент может добавить префикс к своему ответу одной строкой 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)
{
"talk": {
"voiceId": "elevenlabs_voice_id",
"modelId": "eleven_v3",
"outputFormat": "mp3_44100_128",
"apiKey": "elevenlabs_api_key",
"interruptOnSpeech": true
}
}
Значения по умолчанию:
- interruptOnSpeech: true
- voiceId: откатывается к ELEVENLABS_VOICE_ID / SAG_VOICE_ID (или первому голосу ElevenLabs, когда доступен ключ API)
- modelId: по умолчанию eleven_v3, когда не установлен
- apiKey: откатывается к ELEVENLABS_API_KEY (или профилю оболочки шлюза, если доступен)
- outputFormat: по умолчанию pcm_44100 на macOS/iOS и pcm_24000 на Android (установите mp3_*, чтобы принудительно использовать потоковое воспроизведение MP3)
macOS UI
- Переключатель в строке меню: Talk
- Вкладка конфигурации: группа Режим разговора (идентификатор голоса + переключатель прерывания)
- Наложение:
- Слушание: облако пульсирует с уровнем микрофона
- Думание: погружающаяся анимация
- Говорение: излучающие кольца
- Щелкните облако: остановить говорение
- Щелкните X: выйти из режима разговора
Примечания
- Требует разрешения Речь + Микрофон.
- Использует chat.send для ключа сессии main.
- TTS использует потоковый API ElevenLabs с ELEVENLABS_API_KEY и инкрементальным воспроизведением на macOS/iOS/Android для меньшей задержки.
- 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 с низкой задержкой.