stt-tts. Провайдер-нативные
realtime-сеансы Talk синтезируют речь внутри realtime-провайдера вместо
вызова этого пути TTS, а transcription-сеансы не синтезируют голосовой ответ
ассистента.
Быстрый старт
Pick a provider
OpenAI и ElevenLabs — самые надежные размещенные варианты. Microsoft и
локальный CLI работают без API-ключа. Полный список см. в матрице провайдеров.
Set the API key
Экспортируйте переменную окружения для своего провайдера (например,
OPENAI_API_KEY,
ELEVENLABS_API_KEY). Microsoft и локальному CLI ключ не нужен.Auto-TTS по умолчанию выключен. Если
messages.tts.provider не задан,
OpenClaw выбирает первого настроенного провайдера в порядке автовыбора реестра.
Встроенный инструмент агента tts предназначен только для явного намерения: обычный чат остается
текстовым, если пользователь не попросит аудио, не использует /tts или не включит Auto-TTS/директивную
речь.Поддерживаемые провайдеры
| Провайдер | Аутентификация | Примечания |
|---|---|---|
| Azure Speech | AZURE_SPEECH_KEY + AZURE_SPEECH_REGION (также AZURE_SPEECH_API_KEY, SPEECH_KEY, SPEECH_REGION) | Нативный вывод голосовых заметок Ogg/Opus и телефония. |
| DeepInfra | DEEPINFRA_API_KEY | TTS, совместимый с OpenAI. По умолчанию hexgrad/Kokoro-82M. |
| ElevenLabs | ELEVENLABS_API_KEY или XI_API_KEY | Клонирование голоса, многоязычность, детерминированность через seed; потоковая передача для голосового воспроизведения в Discord. |
| Google Gemini | GEMINI_API_KEY или GOOGLE_API_KEY | Пакетный TTS через Gemini API; учитывает персону через promptTemplate: "audio-profile-v1". |
| Gradium | GRADIUM_API_KEY | Вывод голосовых заметок и телефонии. |
| Inworld | INWORLD_API_KEY | Потоковый TTS API. Нативные голосовые заметки Opus и телефония PCM. |
| Local CLI | нет | Запускает настроенную локальную команду TTS. |
| Microsoft | нет | Публичный нейронный TTS Edge через node-edge-tts. Best-effort, без SLA. |
| MiniMax | MINIMAX_API_KEY (или Token Plan: MINIMAX_OAUTH_TOKEN, MINIMAX_CODE_PLAN_KEY, MINIMAX_CODING_API_KEY) | API T2A v2. По умолчанию speech-2.8-hd. |
| OpenAI | OPENAI_API_KEY | Также используется для автосводки; поддерживает instructions для персоны. |
| OpenRouter | OPENROUTER_API_KEY (можно повторно использовать models.providers.openrouter.apiKey) | Модель по умолчанию hexgrad/kokoro-82m. |
| Volcengine | VOLCENGINE_TTS_API_KEY или BYTEPLUS_SEED_SPEECH_API_KEY (устаревшие AppID/токен: VOLCENGINE_TTS_APPID/_TOKEN) | HTTP API BytePlus Seed Speech. |
| Vydra | VYDRA_API_KEY | Общий провайдер изображений, видео и речи. |
| xAI | XAI_API_KEY | Пакетный TTS xAI. Нативные голосовые заметки Opus не поддерживаются. |
| Xiaomi MiMo | XIAOMI_API_KEY | MiMo TTS через chat completions Xiaomi. |
summaryModel (или
agents.defaults.model.primary), поэтому этот провайдер также должен быть аутентифицирован,
если вы оставляете сводки включенными.
Конфигурация
Конфигурация TTS находится вmessages.tts в ~/.openclaw/openclaw.json. Выберите
пресет и адаптируйте блок провайдера:
- Azure Speech
- ElevenLabs
- Google Gemini
- Gradium
- Inworld
- Local CLI
- Microsoft (no key)
- MiniMax
- OpenAI + ElevenLabs
- OpenRouter
- Volcengine
- xAI
- Xiaomi MiMo
mimo-v2.5-tts-voicedesign опустите speakerVoice и задайте style как
подсказку для дизайна голоса. OpenClaw отправляет эту подсказку как TTS-сообщение user
и не отправляет audio.voice для модели voicedesign.
Переопределения голоса для отдельных агентов
Используйтеagents.list[].tts, когда один агент должен говорить с другим провайдером,
голосом, моделью, персоной или режимом автоматического TTS. Блок агента глубоко объединяется поверх
messages.tts, поэтому учетные данные провайдера могут оставаться в глобальной конфигурации провайдера:
agents.list[].tts.persona вместе с конфигурацией
провайдера — она переопределяет глобальную messages.tts.persona только для этого агента.
Порядок приоритета для автоматических ответов, /tts audio, /tts status и
инструмента агента tts:
messages.tts- активная
agents.list[].tts - переопределение канала, когда канал поддерживает
channels.<channel>.tts - переопределение учетной записи, когда канал передает
channels.<channel>.accounts.<id>.tts - локальные настройки
/ttsдля этого хоста - встроенные директивы
[[tts:...]], когда включены переопределения модели
messages.tts, и
глубоко объединяются поверх предыдущих слоев, поэтому общие учетные данные провайдера могут оставаться в
messages.tts, а канал или учетная запись бота меняет только голос диктора, модель, персону
или автоматический режим:
Персоны
Персона — это стабильная речевая идентичность, которую можно детерминированно применять у разных провайдеров. Она может предпочитать одного провайдера, определять независимое от провайдера намерение промпта и хранить привязки для конкретных провайдеров: голоса, модели, шаблоны промптов, seed-значения и настройки голоса.Минимальная персона
Полная персона (независимый от провайдера промпт)
Разрешение персоны
Активная персона выбирается детерминированно:- локальная настройка
/tts persona <id>, если задана. messages.tts.persona, если задана.- Без персоны.
- Прямые переопределения (CLI, Gateway, Talk, разрешенные директивы TTS).
- локальная настройка
/tts provider <id>. providerактивной персоны.messages.tts.provider.- Автовыбор из реестра.
messages.tts.providers.<id>messages.tts.personas.<persona>.providers.<id>- доверенные переопределения запроса
- разрешенные переопределения директив TTS, сгенерированных моделью
Как провайдеры используют промпты персон
Поля промпта персоны (profile, scene, sampleContext, style, accent,
pacing, constraints) независимы от провайдера. Каждый провайдер сам решает, как
их использовать:
Google Gemini
Google Gemini
Оборачивает поля промпта персоны в структуру промпта Gemini TTS только когда
эффективная конфигурация провайдера Google задает
promptTemplate: "audio-profile-v1"
или personaPrompt. Более старые поля audioProfile и speakerName
по-прежнему добавляются в начало как текст промпта, специфичный для Google. Встроенные аудиотеги, такие как
[whispers] или [laughs] внутри блока [[tts:text]], сохраняются
внутри транскрипта Gemini; OpenClaw не генерирует эти теги.OpenAI
OpenAI
Сопоставляет поля промпта персоны с полем запроса
instructions только когда
явные OpenAI instructions не настроены. Явные instructions
всегда имеют приоритет.Другие провайдеры
Другие провайдеры
Используют только привязки персоны для конкретного провайдера в
personas.<id>.providers.<provider>. Поля промпта персоны игнорируются,
если провайдер не реализует собственное сопоставление промпта персоны.Политика fallback
fallbackPolicy управляет поведением, когда у персоны нет привязки для
проверяемого провайдера:
| Политика | Поведение |
|---|---|
preserve-persona | По умолчанию. Нейтральные к провайдеру поля промпта остаются доступными; провайдер может использовать или игнорировать их. |
provider-defaults | Персона исключается из подготовки промпта для этой попытки; провайдер использует свои нейтральные значения по умолчанию, при этом fallback к другим провайдерам продолжается. |
fail | Пропустить эту попытку провайдера с reasonCode: "not_configured" и personaBinding: "missing". Fallback-провайдеры всё равно пробуются. |
talk.catalog и передавать
их через сеанс Talk или запрос передачи. Открытие голосового сеанса не должно
изменять messages.tts или глобальные значения провайдера Talk по умолчанию.
Директивы, управляемые моделью
По умолчанию ассистент может выдавать директивы[[tts:...]], чтобы переопределить
голос, модель или скорость для одного ответа, а также необязательный блок
[[tts:text]]...[[/tts:text]] для выразительных подсказок, которые должны появляться
только в аудио:
messages.tts.auto равно "tagged", директивы обязательны, чтобы запустить
аудио. Потоковая доставка блоков удаляет директивы из видимого текста до того,
как канал их увидит, даже если они разделены между соседними блоками.
provider=... игнорируется, если не задано modelOverrides.allowProvider: true. Когда
ответ объявляет provider=..., остальные ключи в этой директиве разбираются
только этим провайдером; неподдерживаемые ключи удаляются и сообщаются как
предупреждения директив TTS.
Доступные ключи директив:
provider(идентификатор зарегистрированного провайдера; требуетallowProvider: true)speakerVoice/speakerVoiceId(устаревшие псевдонимы:voice,voiceName,voice_name,google_voice,voiceId)model/google_modelstability,similarityBoost,style,speed,useSpeakerBoostvol/volume(громкость MiniMax, 0–10)pitch(целочисленная высота тона MiniMax, −12 до 12; дробные значения отбрасываются)emotion(тег эмоции Volcengine)applyTextNormalization(auto|on|off)languageCode(ISO 639-1)seed
Слэш-команды
Одна команда/tts. В Discord OpenClaw также регистрирует /voice, потому что
/tts является встроенной командой Discord — текстовая /tts ... всё равно работает.
Команды требуют авторизованного отправителя (применяются правила allowlist/владельца), а также
должен быть включён либо
commands.text, либо регистрация нативных команд./tts onзаписывает локальную настройку TTS вalways;/tts offзаписывает её вoff./tts chat on|off|defaultзаписывает ограниченное сеансом переопределение авто-TTS для текущего чата./tts persona <id>записывает локальную настройку персоны;/tts persona offочищает её./tts latestсчитывает последний ответ ассистента из транскрипта текущего сеанса и один раз отправляет его как аудио. Он сохраняет только хеш этого ответа в записи сеанса, чтобы подавлять дублирующие голосовые отправки./tts audioсоздаёт одноразовый аудиоответ (не включает TTS).limitиsummaryхранятся в локальных настройках, а не в основной конфигурации./tts statusвключает диагностику fallback для последней попытки —Fallback: <primary> -> <used>,Attempts: ...и подробности по каждой попытке (provider:outcome(reasonCode) latency)./statusпоказывает активный режим TTS, а также настроенного провайдера, модель, голос и очищенные метаданные пользовательского endpoint, когда TTS включён.
Пользовательские настройки
Слэш-команды записывают локальные переопределения вprefsPath. Значение по умолчанию:
~/.openclaw/settings/tts.json; переопределите его с помощью env var OPENCLAW_TTS_PREFS
или messages.tts.prefsPath.
| Сохранённое поле | Эффект |
|---|---|
auto | Локальное переопределение авто-TTS (always, off, …) |
provider | Локальное переопределение основного провайдера |
persona | Локальное переопределение персоны |
maxLength | Порог сводки (по умолчанию 1500 символов) |
summarize | Переключатель сводки (по умолчанию true) |
messages.tts плюс активный
блок agents.list[].tts для этого хоста.
Форматы вывода (фиксированные)
Доставка голоса TTS определяется возможностями канала. Plugins каналов объявляют, должен ли TTS в стиле голоса запрашивать у провайдеров нативную цельvoice-note или
сохранять обычный синтез audio-file и только помечать совместимый вывод для голосовой
доставки.
- Каналы с поддержкой голосовых заметок: для ответов голосовыми заметками предпочтителен Opus (
opus_48000_64от ElevenLabs,opusот OpenAI).- 48 кГц / 64 кбит/с — хороший компромисс для голосовых сообщений.
- Feishu / WhatsApp: когда ответ голосовой заметкой создается как MP3/WebM/WAV/M4A
или другой вероятный аудиофайл, Plugin канала перекодирует его в 48 кГц
Ogg/Opus с помощью
ffmpegперед отправкой нативного голосового сообщения. WhatsApp отправляет результат через полезную нагрузку Baileysaudioсptt: trueиaudio/ogg; codecs=opus. Если преобразование завершается ошибкой, Feishu получает исходный файл как вложение; отправка WhatsApp завершается ошибкой вместо публикации несовместимой полезной нагрузки PTT. - Другие каналы: MP3 (
mp3_44100_128от ElevenLabs,mp3от OpenAI).- 44,1 кГц / 128 кбит/с — баланс по умолчанию для четкости речи.
- MiniMax: MP3 (модель
speech-2.8-hd, частота дискретизации 32 кГц) для обычных аудиовложений. Для целей голосовых заметок, объявленных каналом, OpenClaw перекодирует MiniMax MP3 в Opus 48 кГц с помощьюffmpegперед доставкой, когда канал объявляет перекодирование. - Xiaomi MiMo: по умолчанию MP3 или WAV при соответствующей настройке. Для целей голосовых заметок, объявленных каналом, OpenClaw перекодирует вывод Xiaomi в Opus 48 кГц с помощью
ffmpegперед доставкой, когда канал объявляет перекодирование. - Локальный CLI: использует настроенный
outputFormat. Цели голосовых заметок преобразуются в Ogg/Opus, а телефонный вывод преобразуется в необработанный моно PCM 16 кГц с помощьюffmpeg. - Google Gemini: Gemini API TTS возвращает необработанный PCM 24 кГц. OpenClaw упаковывает его как WAV для аудиовложений, перекодирует в Opus 48 кГц для целей голосовых заметок и возвращает PCM напрямую для Talk/телефонии.
- Gradium: WAV для аудиовложений, Opus для целей голосовых заметок и
ulaw_8000при 8 кГц для телефонии. - Inworld: MP3 для обычных аудиовложений, нативный
OGG_OPUSдля целей голосовых заметок и необработанныйPCMпри 22050 Гц для Talk/телефонии. - xAI: по умолчанию MP3;
responseFormatможет бытьmp3,wav,pcm,mulawилиalaw. OpenClaw использует пакетную конечную точку REST TTS xAI и возвращает полное аудиовложение; потоковый WebSocket TTS xAI не используется в этом пути провайдера. Нативный формат Opus для голосовых заметок в этом пути не поддерживается. - Microsoft: использует
microsoft.outputFormat(по умолчаниюaudio-24khz-48kbitrate-mono-mp3).- Встроенный транспорт принимает
outputFormat, но не все форматы доступны в сервисе. - Значения формата вывода соответствуют форматам вывода Microsoft Speech (включая Ogg/WebM Opus).
- Telegram
sendVoiceпринимает OGG/MP3/M4A; используйте OpenAI/ElevenLabs, если вам нужны гарантированные голосовые сообщения Opus. - Если настроенный формат вывода Microsoft завершается ошибкой, OpenClaw повторяет попытку с MP3.
- Встроенный транспорт принимает
Поведение Auto-TTS
Когда включенmessages.tts.auto, OpenClaw:
- Пропускает TTS, если ответ уже содержит структурированные медиа.
- Пропускает очень короткие ответы (меньше 10 символов).
- Резюмирует длинные ответы, когда резюме включены, используя
summaryModel(илиagents.defaults.model.primary). - Прикрепляет созданное аудио к ответу.
- В
mode: "final"все равно отправляет TTS только с аудио для потоковых финальных ответов после завершения текстового потока; созданные медиа проходят ту же нормализацию медиа канала, что и обычные вложения ответа.
maxLength, а резюме выключено (или нет API-ключа для
модели резюме), аудио пропускается и отправляется обычный текстовый ответ.
Форматы вывода по каналам
| Цель | Формат |
|---|---|
| Feishu / Matrix / Telegram / WhatsApp | Ответы голосовыми заметками предпочитают Opus (opus_48000_64 от ElevenLabs, opus от OpenAI). 48 кГц / 64 кбит/с балансирует четкость и размер. |
| Другие каналы | MP3 (mp3_44100_128 от ElevenLabs, mp3 от OpenAI). 44,1 кГц / 128 кбит/с по умолчанию для речи. |
| Talk / телефония | Нативный для провайдера PCM (Inworld 22050 Гц, Google 24 кГц) или ulaw_8000 от Gradium для телефонии. |
- Транскодирование Feishu / WhatsApp: Когда ответ голосовой заметкой приходит как MP3/WebM/WAV/M4A, Plugin канала транскодирует его в 48 кГц Ogg/Opus с помощью
ffmpeg. WhatsApp отправляет через Baileys сptt: trueиaudio/ogg; codecs=opus. Если преобразование не удается: Feishu откатывается к прикреплению исходного файла; отправка WhatsApp завершается ошибкой вместо публикации несовместимой полезной нагрузки PTT. - MiniMax / Xiaomi MiMo: MP3 по умолчанию (32 кГц для MiniMax
speech-2.8-hd); транскодируется в 48 кГц Opus для целей голосовых заметок черезffmpeg. - Локальный CLI: Использует настроенный
outputFormat. Цели голосовых заметок преобразуются в Ogg/Opus, а телефонный вывод — в необработанный моно PCM 16 кГц. - Google Gemini: Возвращает необработанный PCM 24 кГц. OpenClaw оборачивает его как WAV для вложений, транскодирует в 48 кГц Opus для целей голосовых заметок, возвращает PCM напрямую для Talk/телефонии.
- Inworld: MP3-вложения, нативный
OGG_OPUSдля голосовых заметок, необработанныйPCM22050 Гц для Talk/телефонии. - xAI: MP3 по умолчанию;
responseFormatможет бытьmp3|wav|pcm|mulaw|alaw. Использует пакетную REST-конечную точку xAI — потоковый WebSocket TTS не используется. Нативный формат Opus для голосовых заметок не поддерживается. - Microsoft: Использует
microsoft.outputFormat(по умолчаниюaudio-24khz-48kbitrate-mono-mp3). TelegramsendVoiceпринимает OGG/MP3/M4A; используйте OpenAI/ElevenLabs, если вам нужны гарантированные голосовые сообщения Opus. Если настроенный формат Microsoft завершается ошибкой, OpenClaw повторяет попытку с MP3.
Справочник полей
Top-level messages.tts.*
Top-level messages.tts.*
Режим Auto-TTS.
inbound отправляет аудио только после входящего голосового сообщения; tagged отправляет аудио только когда ответ включает директивы [[tts:...]] или блок [[tts:text]].Устаревший переключатель.
openclaw doctor --fix переносит его в auto."all" включает ответы инструментов/блоков в дополнение к финальным ответам.Идентификатор речевого провайдера. Если не задан, OpenClaw использует первый настроенный провайдер в порядке авто-выбора реестра. Устаревшее
provider: "edge" переписывается в "microsoft" командой openclaw doctor --fix.Идентификатор активной персоны из
personas. Нормализуется к нижнему регистру.Стабильная речевая идентичность. Поля:
label, description, provider, fallbackPolicy, prompt, providers.<provider>. См. Персоны.Недорогая модель для автосводки; по умолчанию
agents.defaults.model.primary. Принимает provider/model или настроенный псевдоним модели.Разрешить модели выдавать директивы TTS.
enabled по умолчанию равно true; allowProvider по умолчанию равно false.Настройки, принадлежащие провайдеру, с ключами по идентификатору речевого провайдера. Устаревшие прямые блоки (
messages.tts.openai, .elevenlabs, .microsoft, .edge) переписываются командой openclaw doctor --fix; коммитьте только messages.tts.providers.<id>.Жесткий лимит символов входного текста TTS.
/tts audio завершается ошибкой при превышении.Тайм-аут запроса в миллисекундах.
Переопределить локальный путь JSON настроек (провайдер/лимит/сводка). По умолчанию
~/.openclaw/settings/tts.json.Azure Speech
Azure Speech
Переменная окружения:
AZURE_SPEECH_KEY, AZURE_SPEECH_API_KEY или SPEECH_KEY.Регион Azure Speech (например,
eastus). Переменная окружения: AZURE_SPEECH_REGION или SPEECH_REGION.Необязательное переопределение конечной точки Azure Speech (псевдоним
baseUrl).ShortName голоса Azure. По умолчанию
en-US-JennyNeural. Устаревший псевдоним: voice.Код языка SSML. По умолчанию
en-US.Azure
X-Microsoft-OutputFormat для стандартного аудио. По умолчанию audio-24khz-48kbitrate-mono-mp3.Azure
X-Microsoft-OutputFormat для вывода голосовых заметок. По умолчанию ogg-24khz-16bit-mono-opus.ElevenLabs
ElevenLabs
Откатывается к
ELEVENLABS_API_KEY или XI_API_KEY.Идентификатор модели (например,
eleven_multilingual_v2, eleven_v3).Идентификатор голоса ElevenLabs. Устаревший псевдоним:
voiceId.stability, similarityBoost, style (каждый 0..1), useSpeakerBoost (true|false), speed (0.5..2.0, 1.0 = нормальная).Режим нормализации текста.
2-буквенный ISO 639-1 (например,
en, de).Целое число
0..4294967295 для детерминизма по мере возможности.Переопределить базовый URL API ElevenLabs.
Google Gemini
Google Gemini
Откатывается к
GEMINI_API_KEY / GOOGLE_API_KEY. Если опущено, TTS может повторно использовать models.providers.google.apiKey до отката к переменным окружения.Модель Gemini TTS. По умолчанию
gemini-3.1-flash-tts-preview.Имя готового голоса Gemini. По умолчанию
Kore. Устаревшие псевдонимы: voiceName, voice.Запрос стиля на естественном языке, добавляемый перед произносимым текстом.
Необязательная метка говорящего, добавляемая перед произносимым текстом, когда ваш запрос использует именованного говорящего.
Установите
audio-profile-v1, чтобы обернуть поля запроса активной персоны в детерминированную структуру запроса Gemini TTS.Дополнительный текст запроса персоны, специфичный для Google, добавляемый к Director’s Notes шаблона.
Принимается только
https://generativelanguage.googleapis.com.Gradium
Gradium
Inworld
Inworld
Основной Inworld
Переменная окружения:
INWORLD_API_KEY.По умолчанию
https://api.inworld.ai.По умолчанию
inworld-tts-1.5-max. Также: inworld-tts-1.5-mini, inworld-tts-1-max, inworld-tts-1.По умолчанию
Sarah. Устаревший псевдоним: voiceId.Температура сэмплирования
0..2.Локальный CLI (tts-local-cli)
Локальный CLI (tts-local-cli)
Локальный исполняемый файл или командная строка для CLI TTS.
Аргументы команды. Поддерживает плейсхолдеры
{{Text}}, {{OutputPath}}, {{OutputDir}}, {{OutputBase}}.Ожидаемый формат вывода CLI. По умолчанию
mp3 для аудиовложений.Тайм-аут команды в миллисекундах. По умолчанию
120000.Необязательный рабочий каталог команды.
Необязательные переопределения переменных окружения для команды.
Microsoft (без ключа API)
Microsoft (без ключа API)
Разрешить использование речи Microsoft.
Имя нейронного голоса Microsoft (например,
en-US-MichelleNeural). Устаревший псевдоним: voice.Код языка (например,
en-US).Формат вывода Microsoft. По умолчанию
audio-24khz-48kbitrate-mono-mp3. Не все форматы поддерживаются встроенным транспортом на базе Edge.Процентные строки (например,
+10%, -5%).Записывать субтитры JSON рядом с аудиофайлом.
URL прокси для речевых запросов Microsoft.
Переопределение тайм-аута запроса (мс).
Устаревший псевдоним. Запустите
openclaw doctor --fix, чтобы переписать сохраненную конфигурацию в providers.microsoft.MiniMax
MiniMax
Использует
MINIMAX_API_KEY как запасной вариант. Аутентификация Token Plan через MINIMAX_OAUTH_TOKEN, MINIMAX_CODE_PLAN_KEY или MINIMAX_CODING_API_KEY.По умолчанию
https://api.minimax.io. Переменная окружения: MINIMAX_API_HOST.По умолчанию
speech-2.8-hd. Переменная окружения: MINIMAX_TTS_MODEL.По умолчанию
English_expressive_narrator. Переменная окружения: MINIMAX_TTS_VOICE_ID. Устаревший псевдоним: voiceId.0.5..2.0. По умолчанию 1.0.(0, 10]. По умолчанию 1.0.Целое число
-12..12. По умолчанию 0. Дробные значения усекаются перед запросом.OpenAI
OpenAI
Использует
OPENAI_API_KEY как запасной вариант.Идентификатор модели OpenAI TTS (например,
gpt-4o-mini-tts).Имя голоса (например,
alloy, cedar). Устаревший псевдоним: voice.Явное поле OpenAI
instructions. Если оно задано, поля промпта персоны не сопоставляются автоматически.Дополнительные поля JSON, объединяемые с телами запросов
/audio/speech после сгенерированных полей OpenAI TTS. Используйте это для OpenAI-совместимых конечных точек, таких как Kokoro, которым требуются ключи, специфичные для провайдера, например lang; небезопасные ключи прототипов игнорируются.Переопределяет конечную точку OpenAI TTS. Порядок разрешения: конфигурация →
OPENAI_TTS_BASE_URL → https://api.openai.com/v1. Значения, отличные от стандартного, считаются OpenAI-совместимыми конечными точками TTS, поэтому пользовательские имена моделей и голосов принимаются.OpenRouter
OpenRouter
Переменная окружения:
OPENROUTER_API_KEY. Может повторно использовать models.providers.openrouter.apiKey.По умолчанию
https://openrouter.ai/api/v1. Устаревший https://openrouter.ai/v1 нормализуется.По умолчанию
hexgrad/kokoro-82m. Псевдоним: modelId.По умолчанию
af_alloy. Устаревшие псевдонимы: voice, voiceId.По умолчанию
mp3.Собственное переопределение скорости провайдера.
Volcengine (BytePlus Seed Speech)
Volcengine (BytePlus Seed Speech)
Переменная окружения:
VOLCENGINE_TTS_API_KEY или BYTEPLUS_SEED_SPEECH_API_KEY.По умолчанию
seed-tts-1.0. Переменная окружения: VOLCENGINE_TTS_RESOURCE_ID. Используйте seed-tts-2.0, если у вашего проекта есть право на TTS 2.0.Заголовок ключа приложения. По умолчанию
aGjiRDfUWi. Переменная окружения: VOLCENGINE_TTS_APP_KEY.Переопределяет HTTP-конечную точку Seed Speech TTS. Переменная окружения:
VOLCENGINE_TTS_BASE_URL.Тип голоса. По умолчанию
en_female_anna_mars_bigtts. Переменная окружения: VOLCENGINE_TTS_VOICE. Устаревший псевдоним: voice.Собственный коэффициент скорости провайдера.
Собственный тег эмоции провайдера.
Устаревшие поля Volcengine Speech Console. Переменные окружения:
VOLCENGINE_TTS_APPID, VOLCENGINE_TTS_TOKEN, VOLCENGINE_TTS_CLUSTER (по умолчанию volcano_tts).xAI
xAI
Переменная окружения:
XAI_API_KEY.По умолчанию
https://api.x.ai/v1. Переменная окружения: XAI_BASE_URL.По умолчанию
eve. Доступные рабочие голоса: ara, eve, leo, rex, sal, una. Устаревший псевдоним: voiceId.Код языка BCP-47 или
auto. По умолчанию en.По умолчанию
mp3.Собственное переопределение скорости провайдера.
Xiaomi MiMo
Xiaomi MiMo
Переменная окружения:
XIAOMI_API_KEY.По умолчанию
https://api.xiaomimimo.com/v1. Переменная окружения: XIAOMI_BASE_URL.По умолчанию
mimo-v2.5-tts. Переменная окружения: XIAOMI_TTS_MODEL. Также поддерживает mimo-v2-tts и mimo-v2.5-tts-voicedesign.По умолчанию
mimo_default для моделей с предустановленными голосами. Переменная окружения: XIAOMI_TTS_VOICE. Устаревший псевдоним: voice. Не отправляется для mimo-v2.5-tts-voicedesign.По умолчанию
mp3. Переменная окружения: XIAOMI_TTS_FORMAT.Необязательная инструкция стиля на естественном языке, отправляемая как сообщение пользователя; не озвучивается. Для
mimo-v2.5-tts-voicedesign это промпт проектирования голоса; OpenClaw предоставляет значение по умолчанию, если оно опущено.Инструмент агента
Инструментtts преобразует текст в речь и возвращает аудиовложение для
доставки ответа. В Feishu, Matrix, Telegram и WhatsApp аудио
доставляется как голосовое сообщение, а не как вложенный файл. Feishu и
WhatsApp могут транскодировать вывод TTS не в формате Opus на этом пути, когда
доступен ffmpeg.
WhatsApp отправляет аудио через Baileys как голосовую заметку PTT (audio с
ptt: true) и отправляет видимый текст отдельно от PTT-аудио, потому что
клиенты не всегда корректно отображают подписи к голосовым заметкам.
Инструмент принимает необязательные поля channel и timeoutMs; timeoutMs — это
тайм-аут запроса к провайдеру для отдельного вызова в миллисекундах. Значения для отдельного вызова переопределяют
messages.tts.timeoutMs; настроенные тайм-ауты TTS переопределяют любое
значение по умолчанию провайдера, заданное Plugin.
Gateway RPC
| Метод | Назначение |
|---|---|
tts.status | Читать текущее состояние TTS и последнюю попытку. |
tts.enable | Установить локальную автоматическую настройку в always. |
tts.disable | Установить локальную автоматическую настройку в off. |
tts.convert | Разовое преобразование текста → аудио. |
tts.setProvider | Установить локальную настройку провайдера. |
tts.setPersona | Установить локальную настройку персоны. |
tts.providers | Список настроенных провайдеров и их статус. |
Ссылки на сервисы
- Руководство OpenAI по преобразованию текста в речь
- Справочник OpenAI Audio API
- Azure Speech REST для преобразования текста в речь
- Провайдер Azure Speech
- ElevenLabs Text to Speech
- Аутентификация ElevenLabs
- Gradium
- Inworld TTS API
- MiniMax T2A v2 API
- Volcengine TTS HTTP API
- Синтез речи Xiaomi MiMo
- node-edge-tts
- Форматы вывода Microsoft Speech
- xAI text to speech