Голосовой ассистент на OpenClaw — это три независимых слоя: распознавание речи (STT), синтез голоса (TTS) и режим живого разговора (Talk Mode). Настройка каждого слоя занимает 5–10 минут, а в итоге вы получаете ИИ-агента, которому можно говорить команды голосом и получать ответы вслух — в Telegram, WhatsApp или Discord.
Что такое голосовой ассистент в OpenClaw
Голосовой ассистент в OpenClaw — это функция, которая позволяет взаимодействовать с ИИ-агентом через речь вместо текста. Агент распознаёт ваши голосовые сообщения, выполняет команды и отвечает голосом. Работает через любой подключённый мессенджер: Telegram, WhatsApp, Discord, Feishu, Matrix.
В отличие от обычного голосового помощника вроде Siri или Алисы, OpenClaw выполняет реальные действия: запускает скрипты, управляет сервером, ищет в интернете, редактирует файлы. Голос — это просто способ передать команду, а функциональность остаётся той же, что и при текстовом вводе.
Какие бывают голосовые функции в OpenClaw
OpenClaw поддерживает три отдельных типа голосового взаимодействия. Важно понимать различия, потому что каждый настраивается independently.
STT — распознавание речи (входящие голосовые)
STT (Speech-to-Text) — это преобразование вашего голосового сообщения в текст. Когда вы отправляете аудио в чат, OpenClaw скачивает файл, отправляет его на распознавание и подставляет текст как тело сообщения. После этого агент обрабатывает команду так, будто вы её набрали.
STT — самая востребованная функция. Она работает автоматически: отправили голосовое — агент понял и ответил.
TTS — синтез голоса (исходящие ответы)
TTS (Text-to-Speech) — это преобразование текстового ответа агента в аудио. OpenClaw берёт текст ответа, отправляет его на синтез голоса и доставляет результат как голосовое сообщение или аудиофайл.
TTS выключен по умолчанию. Его нужно явно включить и выбрать провайдера.
Talk Mode — живой разговор
Talk Mode — это непрерывный диалог «говорю → слушаю → отвечаю». Работает через устройство с микрофоном и динамиком (Mac, iPhone, Android), которое подключается к gateway. Сервер остаётся headless, а аудио обрабатывается локально на устройстве.
Talk Mode требует отдельной настройки node-устройства и выходит за рамки базовой установки голоса.
Настройка распознавания речи (STT)
Автоматическое определение провайдера
По умолчанию OpenClaw автоматически определяет доступный STT-провайдер. Порядок приоритета:
whisper-cli, whisper (Python), sherpa-onnx-offline, parakeet-mlx (Apple Silicon).Проверить, какие провайдеры доступны:
openclaw capability audio providers
Ручная настройка через openclaw.json
Для точного контроля отредактируйте ~/.openclaw/openclaw.json. Конфиг STT находится в секции tools.media.audio и tools.media.models.
Пример: OpenAI + локальный Whisper как fallback:
{
"tools": {
"media": {
"models": [
{
"provider": "openai",
"model": "gpt-4o-mini-transcribe",
"capabilities": ["audio"]
},
{
"type": "cli",
"command": "whisper",
"args": ["--model", "base", "{{MediaPath}}"],
"timeoutSeconds": 45,
"capabilities": ["audio"]
}
],
"audio": {
"enabled": true,
"maxBytes": 20971520
}
}
}
}
В этой конфигурации OpenClaw сначала попытается использовать OpenAI API. Если запрос не пройдёт (таймаут, ошибка, лимит), автоматически переключится на локальный Whisper.
Ограничение доступа к голосовому вводу
Если ваш агент работает в групповых чатах, стоит ограничить, кто может отправлять голосовые. Иначе кто угодно в группе может расходовать ваш STT-бюджет:
{
"tools": {
"media": {
"audio": {
"enabled": true,
"scope": {
"default": "deny",
"rules": [
{ "action": "allow", "match": { "chatType": "private" } }
]
}
}
}
}
}
Эта конфигурация разрешает голосовой ввод только в личных сообщениях.
Echo-транскрипт — показывать распознанный текст
Чтобы видеть, что именно распознал агент, включите echoTranscript:
{
"tools": {
"media": {
"audio": {
"enabled": true,
"echoTranscript": true,
"echoFormat": "📝 \"{transcript}\""
}
}
}
}
После каждого голосового сообщения агент будет отправлять текст распознавания перед ответом.
Настройка синтеза голоса (TTS)
Выбор провайдера
OpenClaw поддерживает 14 TTS-провайдеров. Вот основные:
| Провайдер | Нужен ключ | Бесплатно | Примечание |
|---|---|---|---|
| OpenAI | Да | Нет, $0.015/1K символов | gpt-4o-mini-tts, поддержка persona |
| ElevenLabs | Да | 10 000 символов/мес | Клонирование голоса, мультиязычность |
| Microsoft (Edge) | Нет | Да | Нейронные голоса Edge TTS, без SLA |
| Google Gemini | Да | Зависит от тарифа | persona-aware синтез |
| Xiaomi MiMo | Да | Зависит от тарифа | mimo-v2.5-tts |
| Local CLI | Нет | Да | Любая локальная команда TTS |
Для быстрого старта подходит Microsoft Edge — не нужен API-ключ, голоса качественные. Для лучшего качества — ElevenLabs или OpenAI.
Включение TTS в конфиге
TTS настраивается в секции messages.tts (или просто tts) в ~/.openclaw/openclaw.json.
Microsoft Edge (бесплатно, без ключа):
{
"tts": {
"auto": "inbound",
"provider": "microsoft",
"providers": {
"microsoft": {
"enabled": true,
"speakerVoice": "ru-RU-DmitryNeural",
"lang": "ru-RU"
}
}
}
}
OpenAI:
{
"tts": {
"auto": "inbound",
"provider": "openai",
"providers": {
"openai": {
"apiKey": "${OPENAI_API_KEY}",
"model": "gpt-4o-mini-tts",
"speakerVoice": "alloy"
}
}
}
}
ElevenLabs:
{
"tts": {
"auto": "inbound",
"provider": "elevenlabs",
"providers": {
"elevenlabs": {
"apiKey": "${ELEVENLABS_API_KEY}",
"model": "eleven_multilingual_v2",
"speakerVoiceId": "EXAVITQu4vr4xnSDxMaL"
}
}
}
}
Режимы автоматического TTS
Поле tts.auto определяет, когда агент будет отвечать голосом:
| Режим | Поведение |
|---|---|
| `off` | TTS выключен, только ручной вызов через `/tts` |
| `inbound` | Голосом только если пользователь отправил голосовое |
| `tagged` | Голосом только при явном указании |
| `always` | Каждый ответ — голосом |
Рекомендуемый режим — inbound. Он естественно работает: отправили голосовое — получили голосовой ответ. Набрали текстом — получили текстом.
Ограничение длины
Чтобы агент не озвучивал длинные логи и трейсбеки:
{
"tts": {
"auto": "inbound",
"provider": "microsoft",
"maxTextLength": 4000,
"timeoutMs": 30000
}
}
Ответы длиннее maxTextLength символов будут доставлены текстом.
Как пользоваться голосом в мессенджерах
Telegram
В Telegram голосовой ввод работает из коробки. Отправьте голосовое сообщение (зажмите микрофон) — агент распознает текст и ответит.
Если включён TTS в режиме inbound, ответ придёт голосовым сообщением. Если TTS выключен — текстом.
Для переключения модели на лету используйте /model прямо в голосовом сообщении.
WhatsApp и Discord
Принцип тот же: отправляете аудиофайл или голосовое сообщение — OpenClaw распознаёт и отвечает. Формат доставки зависит от канала: Telegram отправляет voice note, WhatsApp — аудиофайл, Discord — может воспроизводить через голосовые каналы.
Групповые чаты
В группах с включённым requireMention голосовое сообщение проходит preflight-транскрипцию. Если в распознанном тексте есть упоминание бота (например @MyBot), сообщение обрабатывается. Это позволяет использовать голосовые команды в группах без спама.
Стоимость голосового ввода и вывода
| Компонент | Провайдер | Стоимость |
|---|---|---|
| STT | OpenAI Whisper | $0.006 за минуту аудио |
| STT | Groq Whisper | бесплатно (с лимитами) |
| STT | Локальный Whisper | бесплатно |
| TTS | OpenAI | ~$0.015 за 1K символов |
| TTS | ElevenLabs | бесплатно 10K символов/мес, далее от $5/мес |
| TTS | Microsoft Edge | бесплатно |
При 10 голосовых взаимодействиях в день (30 секунд ввода + 200 символов ответа) месячные расходы составляют примерно $2–5 при использовании OpenAI. С Microsoft Edge TTS и локальным Whisper — фактически бесплатно.
Проблемы и решения
Агент не реагирует на голосовые
Причины:
tools.media.audio.enabled: false)maxBytes (по умолчанию 20 МБ)Проверка: openclaw capability audio providers — должен показать хотя бы один доступный провайдер.
Голосовые ответы не приходят
Причины:
tts.auto: "off" или не указан провайдер)maxTextLength — агент переключился на текстПлохое качество распознавания
Высокая задержка ответов
timeoutMs в конфигеЧастые вопросы
Можно ли использовать голос без API-ключей?
Да. Для STT установите локальный Whisper (pip install openai-whisper). Для TTS используйте Microsoft Edge — бесплатный нейронный синтез без ключа. Качество будет ниже, чем у OpenAI или ElevenLabs, но для повседневного использования достаточно.
Как сменить голос TTS?
Для Microsoft Edge: speakerVoice в конфиге (например ru-RU-SvetlanaNeural). Для ElevenLabs: speakerVoiceId — выберите на сайте ElevenLabs. Для OpenAI: speakerVoice (alloy, echo, fable, onyx, nova, shimmer).
Работает ли голос в групповых чатах?
Да, но по умолчанию OpenClaw может ограничить обработку аудио в группах. Настройте scope в tools.media.audio, чтобы разрешить голосовой ввод в нужных чатах.
Какой провайдер STT самый точный для русского языка?
OpenAI Whisper (gpt-4o-transcribe или gpt-4o-mini-transcribe) показывает стабильно высокое качество для русского. Groq с Whisper large-v3 тоже хорошо работает. Локальный Whisper base уступает облачным вариантам, но для коротких команд подходит.
Можно ли сделать так, чтобы агент отвечал голосом всегда?
Да, установите tts.auto: "always" в конфиге. Но учтите: каждый ответ будет озвучен, включая длинные логи и технические выводы. Лучше использовать inbound — голосом только в ответ на голосовые.