stt-tts в Talk (talk.speak использует
тот же путь синтеза). В нативных для провайдера сеансах Talk realtime речь синтезируется
внутри провайдера реального времени; в сеансах transcription голосовой ответ
ассистента никогда не синтезируется.
Быстрый старт
1
Выберите провайдера
OpenAI и ElevenLabs — наиболее надёжные облачные варианты. Microsoft и
локальный CLI работают без ключа API. Полный список см. в матрице провайдеров.
2
Задайте ключ API
Экспортируйте переменную среды для своего провайдера (например,
OPENAI_API_KEY,
ELEVENLABS_API_KEY). Для Microsoft и локального CLI ключ не нужен.3
Включите в конфигурации
Задайте
messages.tts.auto: "always" и messages.tts.provider:4
Попробуйте в чате
/tts status показывает текущее состояние. /tts audio Hello from OpenClaw
отправляет однократный аудиоответ.Автоматический TTS отключён по умолчанию. Если
messages.tts.provider не задан,
OpenClaw выбирает первого настроенного провайдера в порядке автоматического выбора из реестра.
Встроенный агентский инструмент tts используется только при явно выраженном намерении: обычный чат остаётся
текстовым, если пользователь не запросит аудио, не использует /tts или не включит автоматический TTS либо
синтез речи посредством директивы.Поддерживаемые провайдеры
Если настроено несколько провайдеров, сначала используется выбранный, а
остальные служат резервными вариантами. Для автоматического резюмирования используется
summaryModel (или
agents.defaults.model.primary), поэтому этот провайдер также должен быть аутентифицирован,
если резюмирование остаётся включённым.
Конфигурация
Конфигурация TTS находится в разделеmessages.tts файла ~/.openclaw/openclaw.json. Выберите
предустановку и адаптируйте блок провайдера. Показанные ниже поля speakerVoice/speakerVoiceId
являются каноническими; собственные имена полей voice/voiceId/
voiceName каждого провайдера по-прежнему работают как устаревшие псевдонимы.
- Azure Speech
- ElevenLabs
- Google Gemini
- Gradium
- Inworld
- Локальный CLI
- Microsoft (без ключа)
- 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, а канал или учётная запись бота изменяет только голос диктора, модель, персону
или автоматический режим:
Персоны
Персона — это стабильная речевая идентичность, которую можно детерминированно применять к разным провайдерам. Она может отдавать предпочтение одному провайдеру, задавать независимый от провайдера замысел запроса и содержать привязки для конкретных провайдеров: голоса, модели, шаблоны запросов, начальные значения и настройки голоса.Минимальная персона
Полная персона (независимый от провайдера запрос)
Определение персоны
Активная персона выбирается детерминированно:- Локальная настройка
/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>. Поля запроса персоны игнорируются,
если провайдер не реализует собственное сопоставление запросов персоны.Политика резервного переключения
fallbackPolicy управляет поведением, когда у персоны нет привязки для
провайдера, к которому выполняется попытка обращения:
Весь запрос TTS завершается ошибкой, только если каждый опробованный провайдер был пропущен
или завершился ошибкой.
Выбор провайдера сеанса Talk действует в пределах сеанса. Клиент Talk должен выбирать
идентификаторы провайдеров, моделей, голосов и локали из
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 ... по-прежнему работает.
Для команд требуется авторизованный отправитель (применяются правила списка разрешённых отправителей/владельца), а также
должно быть включено
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)./tts limit <chars>принимает значения 100–4096 (4096 — максимальная длина подписи/сообщения в Telegram); значения вне этого диапазона отклоняются.limitиsummaryсохраняются в локальных настройках, а не в основной конфигурации./tts statusвключает диагностику резервного переключения для последней попытки —Fallback: <primary> -> <used>,Attempts: ...и подробности каждой попытки (provider:outcome(reasonCode) latency)./statusпоказывает активный режим TTS, а также настроенные провайдер, модель, голос и очищенные метаданные пользовательской конечной точки, когда TTS включён.
Пользовательские настройки
Команды с косой чертой записывают локальные переопределения вprefsPath. Значение по умолчанию —
~/.openclaw/settings/tts.json; его можно переопределить с помощью переменной окружения OPENCLAW_TTS_PREFS
или messages.tts.prefsPath.
Они переопределяют итоговую конфигурацию из
messages.tts вместе с активным
блоком agents.list[].tts для данного хоста.
Форматы вывода
Передача озвучки TTS определяется возможностями канала. Плагины каналов объявляют, следует ли для озвучки в стиле голосового сообщения запрашивать у провайдеров нативный целевой форматvoice-note или
использовать обычный синтез audio-file, а также должен ли канал перекодировать
вывод в ненативном формате перед отправкой.
Примечания по провайдерам:
- Перекодирование в Feishu / WhatsApp: когда ответ в виде голосового сообщения поступает как MP3/WebM/WAV/M4A или другой вероятный аудиофайл, плагин канала перед отправкой нативного голосового сообщения перекодирует его в Ogg/Opus с частотой 48 кГц при помощи
ffmpeg(libopus, 64 кбит/с). WhatsApp отправляет результат через полезную нагрузку Baileysaudioсptt: trueиaudio/ogg; codecs=opus. При ошибке перекодирования Feishu перехватывает ошибку и отправляет исходный файл как обычное вложение; у WhatsApp резервного варианта нет, поэтому сама отправка завершается ошибкой вместо публикации несовместимой полезной нагрузки PTT. - MiniMax: MP3 (модель
speech-2.8-hd, частота дискретизации 32 кГц) для обычных аудиовложений; для целевых голосовых сообщений, объявленных каналом, перекодируется в Opus с частотой 48 кГц при помощиffmpeg. - Xiaomi MiMo: по умолчанию MP3 или WAV при соответствующей настройке; для целевых голосовых сообщений, объявленных каналом, перекодируется в Opus с частотой 48 кГц при помощи
ffmpeg. - Локальный CLI: использует настроенный
outputFormat. Целевые голосовые сообщения преобразуются в Ogg/Opus, а вывод для телефонии — в необработанный монофонический PCM с частотой 16 кГц при помощиffmpeg. - Google Gemini: возвращает необработанный PCM с частотой 24 кГц. OpenClaw упаковывает его в WAV для аудиовложений, перекодирует в Opus с частотой 48 кГц для целевых голосовых сообщений и возвращает PCM напрямую для разговора/телефонии.
- Gradium: WAV для аудиовложений, Opus для целевых голосовых сообщений и
ulaw_8000с частотой 8 кГц для телефонии. - Inworld: MP3 для обычных аудиовложений, нативный
OGG_OPUSдля целевых голосовых сообщений и необработанныйPCMс частотой 22050 Гц для разговора/телефонии. - xAI: по умолчанию MP3; для синтеза аудиофайлов могут использоваться
mp3,wav,pcm,mulawилиalawкак для буферизованного, так и для потокового вывода. Для целевых голосовых сообщений используется MP3 при потоковой передаче и буферизованном резервном варианте, поскольку выходные данные xAI в форматахpcm,mulawиalawпредставляют собой необработанное аудио без заголовков. Буферизованный синтез использует пакетную конечную точку REST xAI/v1/tts;textToSpeechStreamиспользует нативныйwss://api.x.ai/v1/tts. Это не контракт голосовой связи в реальном времени. Нативный формат голосовых сообщений 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.
- Если явное переопределение голоса не задано и используется стандартный английский голос, OpenClaw автоматически переключается на китайский нейронный голос (
zh-CN-XiaoxiaoNeural, локальzh-CN), если в тексте ответа преобладают символы CJK.
- Встроенный транспорт принимает
Поведение автоматического TTS
Когда включёнmessages.tts.auto, OpenClaw:
- Пропускает TTS, если ответ уже содержит структурированные медиафайлы.
- Пропускает очень короткие ответы (менее 10 символов).
- Суммирует длинные ответы, если суммирование включено, используя
summaryModel(илиagents.defaults.model.primary). - Прикрепляет сгенерированное аудио к ответу.
- В
mode: "final"после завершения текстового потока по-прежнему отправляет только аудио TTS для потоковых финальных ответов; сгенерированный медиафайл проходит ту же нормализацию медиафайлов канала, что и обычные вложения ответа.
maxLength, OpenClaw никогда не пропускает аудио полностью:
- Суммирование включено (по умолчанию) и модель суммирования доступна:
суммирует текст примерно до
maxLengthсимволов, затем синтезирует сводку. - Суммирование выключено, суммирование завершается с ошибкой или для модели
суммирования отсутствует ключ API: обрезает текст до
maxLengthсимволов и синтезирует обрезанный текст.
Справочник полей
Верхнеуровневые параметры messages.tts.*
Верхнеуровневые параметры messages.tts.*
"off" | "always" | "inbound" | "tagged"
Режим автоматического TTS.
inbound отправляет аудио только после входящего голосового сообщения; tagged отправляет аудио только тогда, когда ответ содержит директивы [[tts:...]] или блок [[tts:text]].boolean
устарело
Устаревший переключатель.
openclaw doctor --fix переносит его в auto."final" | "all"
по умолчанию:"final"
"all" включает ответы инструментов и блоков в дополнение к финальным ответам.string
Идентификатор поставщика синтеза речи. Если значение не задано, OpenClaw использует первого настроенного поставщика в порядке автоматического выбора из реестра. Устаревший
provider: "edge" заменяется на "microsoft" с помощью openclaw doctor --fix.string
Идентификатор активной персоны из
personas. Нормализуется в нижний регистр.object
Стабильная речевая идентичность. Поля:
label, description, provider, fallbackPolicy, prompt, providers.<provider>. См. Персоны.string
Недорогая модель для автоматического суммирования; по умолчанию
agents.defaults.model.primary. Принимает provider/model или настроенный псевдоним модели.object
Разрешает модели выдавать директивы TTS. Значение
enabled по умолчанию — true; значение allowProvider по умолчанию — false.object
Настройки, принадлежащие поставщику и индексируемые по идентификатору поставщика синтеза речи. Устаревшие непосредственные блоки (
messages.tts.openai, .elevenlabs, .microsoft, .edge) преобразуются с помощью openclaw doctor --fix; сохраняйте только messages.tts.providers.<id>.number
по умолчанию:"4096"
Жёсткое ограничение количества символов во входных данных TTS.
/tts audio, tts.convert и tts.speak завершаются с ошибкой при его превышении.number
по умолчанию:"30000"
Тайм-аут запроса в миллисекундах. Если для отдельного вызова задан
timeoutMs (инструмент агента, Gateway), используется он; в противном случае явно настроенный messages.tts.timeoutMs имеет приоритет над любым значением по умолчанию поставщика, заданным плагином.string
Переопределяет локальный путь к JSON-файлу настроек (поставщик/ограничение/суммирование). По умолчанию
~/.openclaw/settings/tts.json.Azure Speech
Azure Speech
string
Переменная среды:
AZURE_SPEECH_KEY, AZURE_SPEECH_API_KEY или SPEECH_KEY.string
Регион Azure Speech (например,
eastus). Переменная среды: AZURE_SPEECH_REGION или SPEECH_REGION.string
Необязательное переопределение конечной точки Azure Speech (псевдоним
baseUrl).string
ShortName голоса Azure. По умолчанию
en-US-JennyNeural. Устаревший псевдоним: voice.string
Код языка SSML. По умолчанию
en-US.string
Azure
X-Microsoft-OutputFormat для стандартного аудио. По умолчанию audio-24khz-48kbitrate-mono-mp3.string
Azure
X-Microsoft-OutputFormat для вывода голосовых заметок. По умолчанию ogg-24khz-16bit-mono-opus.ElevenLabs
ElevenLabs
string
При отсутствии значения использует
ELEVENLABS_API_KEY или XI_API_KEY.string
Идентификатор модели. По умолчанию
eleven_multilingual_v2. Устаревшие идентификаторы eleven_turbo_v2_5/eleven_turbo_v2 нормализуются в соответствующую модель flash.string
Идентификатор голоса ElevenLabs. По умолчанию
pMsXgVXv3BLzUgSXRplE. Устаревший псевдоним: voiceId.object
stability, similarityBoost, style (каждое — 0..1, значения по умолчанию — 0.5/0.75/0), useSpeakerBoost (true|false, по умолчанию true), speed (0.5..2.0, по умолчанию 1.0)."auto" | "on" | "off"
Режим нормализации текста.
string
Двухбуквенный код ISO 639-1 (например,
en, de).number
Целое число
0..4294967295 для обеспечения детерминизма по мере возможности.string
Переопределяет базовый URL API ElevenLabs.
Google Gemini
Google Gemini
string
При отсутствии значения используются
GEMINI_API_KEY / GOOGLE_API_KEY. Если параметр не задан, TTS может повторно использовать models.providers.google.apiKey, прежде чем обращаться к переменным окружения.string
Модель Gemini TTS. По умолчанию
gemini-3.1-flash-tts-preview.string
Имя встроенного голоса Gemini. По умолчанию
Kore. Устаревшие псевдонимы: voiceName, voice.string
Текстовая инструкция по стилю на естественном языке, добавляемая перед произносимым текстом.
string
Необязательная метка говорящего, добавляемая перед произносимым текстом, если в инструкции используется именованный говорящий.
"audio-profile-v1"
Укажите
audio-profile-v1, чтобы заключить поля инструкции активной персоны в детерминированную структуру инструкции Gemini TTS.string
Дополнительный текст инструкции персоны для Google, добавляемый к режиссёрским примечаниям шаблона.
string
Допускается только
https://generativelanguage.googleapis.com.Gradium
Gradium
Inworld
Inworld
Основной Inworld
string
Переменная окружения:
INWORLD_API_KEY.string
По умолчанию
https://api.inworld.ai.string
По умолчанию
inworld-tts-1.5-max. Также: inworld-tts-1.5-mini, inworld-tts-1-max, inworld-tts-1.string
По умолчанию
Sarah. Устаревший псевдоним: voiceId.number
Температура сэмплирования
0..2 (не включая 0).Локальный CLI (tts-local-cli)
Локальный CLI (tts-local-cli)
string
Локальный исполняемый файл или строка команды для TTS через CLI.
string[]
Аргументы команды. Поддерживаются заполнители
{{Text}}, {{OutputPath}}, {{OutputDir}}, {{OutputBase}}."mp3" | "opus" | "wav"
Ожидаемый формат вывода CLI. По умолчанию
mp3 для звуковых вложений.number
Время ожидания команды в миллисекундах. По умолчанию
120000.string
Необязательный рабочий каталог команды.
Record<string, string>
Необязательные переопределения переменных окружения для команды.
Microsoft (без ключа API)
Microsoft (без ключа API)
boolean
по умолчанию:"true"
Разрешить использование синтеза речи Microsoft.
string
Имя нейросетевого голоса Microsoft (например,
en-US-MichelleNeural). Устаревший псевдоним: voice. Если используется стандартный английский голос, а в тексте ответа преобладают символы CJK, OpenClaw автоматически переключается на zh-CN-XiaoxiaoNeural.string
Код языка (например,
en-US).string
Формат вывода Microsoft. По умолчанию
audio-24khz-48kbitrate-mono-mp3. Встроенный транспорт на базе Edge поддерживает не все форматы.string
Строки с процентными значениями (например,
+10%, -5%).boolean
Записывать субтитры JSON рядом с аудиофайлом.
string
URL прокси-сервера для запросов синтеза речи Microsoft.
number
Переопределение времени ожидания запроса (мс).
object
устарело
Устаревший псевдоним. Выполните
openclaw doctor --fix, чтобы преобразовать сохранённую конфигурацию в providers.microsoft.MiniMax
MiniMax
string
При отсутствии значения используется
MINIMAX_API_KEY. Авторизация Token Plan через MINIMAX_OAUTH_TOKEN, MINIMAX_CODE_PLAN_KEY или MINIMAX_CODING_API_KEY.string
По умолчанию
https://api.minimax.io. Переменная окружения: MINIMAX_API_HOST.string
По умолчанию
speech-2.8-hd. Переменная окружения: MINIMAX_TTS_MODEL.string
По умолчанию
English_expressive_narrator. Переменная окружения: MINIMAX_TTS_VOICE_ID. Устаревший псевдоним: voiceId.number
0.5..2.0. По умолчанию 1.0.number
(0, 10]. По умолчанию 1.0.number
Целое число
-12..12. По умолчанию 0. Дробные значения перед запросом усекаются.OpenAI
OpenAI
string
При отсутствии значения используется
OPENAI_API_KEY.string
Идентификатор модели OpenAI TTS. По умолчанию
gpt-4o-mini-tts.string
Имя голоса (например,
alloy, cedar). По умолчанию coral. Устаревший псевдоним: voice.string
Явное поле OpenAI
instructions. Если оно задано, поля инструкции персоны не сопоставляются автоматически.Record<string, unknown>
Дополнительные поля JSON, объединяемые с телами запросов
/audio/speech после сгенерированных полей OpenAI TTS. Используйте их для совместимых с OpenAI конечных точек, например Kokoro, которым требуются специфичные для поставщика ключи, такие как lang; небезопасные ключи прототипа игнорируются.string
Переопределяет конечную точку OpenAI TTS. Порядок разрешения: конфигурация →
OPENAI_TTS_BASE_URL → https://api.openai.com/v1. Значения, отличные от стандартного, рассматриваются как совместимые с OpenAI конечные точки TTS, поэтому допускаются пользовательские имена моделей и голосов, а для speed больше не проверяется диапазон 0.25..4.0.OpenRouter
OpenRouter
string
Переменная окружения:
OPENROUTER_API_KEY. Можно повторно использовать models.providers.openrouter.apiKey.string
По умолчанию
https://openrouter.ai/api/v1. Устаревшее значение https://openrouter.ai/v1 нормализуется.string
По умолчанию
hexgrad/kokoro-82m. Псевдоним: modelId.string
По умолчанию
af_alloy. Устаревшие псевдонимы: voice, voiceId."mp3" | "pcm"
По умолчанию
mp3.number
Переопределение скорости в собственном формате поставщика.
Volcengine (BytePlus Seed Speech)
Volcengine (BytePlus Seed Speech)
string
Переменная окружения:
VOLCENGINE_TTS_API_KEY или BYTEPLUS_SEED_SPEECH_API_KEY.string
По умолчанию
seed-tts-1.0. Переменная окружения: VOLCENGINE_TTS_RESOURCE_ID. Используйте seed-tts-2.0, если в вашем проекте предоставлено право на TTS 2.0.string
Заголовок ключа приложения. По умолчанию
aGjiRDfUWi. Переменная окружения: VOLCENGINE_TTS_APP_KEY.string
Переопределяет конечную точку HTTP Seed Speech TTS. Переменная окружения:
VOLCENGINE_TTS_BASE_URL.string
Тип голоса. По умолчанию
en_female_anna_mars_bigtts. Переменная окружения: VOLCENGINE_TTS_VOICE. Устаревший псевдоним: voice.number
Коэффициент скорости в собственном формате поставщика,
0.2..3.string
Тег эмоции в собственном формате поставщика.
string
устарело
Устаревшие поля Volcengine Speech Console. Переменные окружения:
VOLCENGINE_TTS_APPID, VOLCENGINE_TTS_TOKEN, VOLCENGINE_TTS_CLUSTER (по умолчанию volcano_tts).xAI
xAI
string
Переменная окружения:
XAI_API_KEY.string
По умолчанию
https://api.x.ai/v1. Переменная окружения: XAI_BASE_URL.string
По умолчанию
eve. При наличии авторизации openclaw infer tts voices --provider xai получает текущий встроенный каталог; без авторизации выводится список автономных резервных вариантов: ara, eve, leo, rex и sal. Идентификаторы пользовательских голосов учётной записи передаются дальше, даже если их нет во встроенном списке. Устаревший псевдоним: voiceId.string
Код языка BCP-47 или
auto. По умолчанию en."mp3" | "wav" | "pcm" | "mulaw" | "alaw"
По умолчанию
mp3.number
Переопределение скорости в собственном формате поставщика,
0.7..1.5.Xiaomi MiMo
Xiaomi MiMo
string
Переменная окружения:
XIAOMI_API_KEY.string
По умолчанию
https://api.xiaomimimo.com/v1. Переменная окружения: XIAOMI_BASE_URL.string
По умолчанию
mimo-v2.5-tts. Переменная окружения: XIAOMI_TTS_MODEL. Также поддерживаются mimo-v2-tts и mimo-v2.5-tts-voicedesign.string
По умолчанию
mimo_default для моделей с предустановленными голосами. Переменная окружения: XIAOMI_TTS_VOICE. Устаревший псевдоним: voice. Не отправляется для mimo-v2.5-tts-voicedesign."mp3" | "wav"
По умолчанию
mp3. Переменная окружения: XIAOMI_TTS_FORMAT.string
Необязательная инструкция по стилю на естественном языке, отправляемая как сообщение пользователя; она не произносится. Для
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 переопределяют любые стандартные
значения поставщика, заданные плагином.
RPC Gateway
Ссылки на сервисы
- Руководство OpenAI по преобразованию текста в речь
- Справочник по OpenAI Audio API
- Преобразование текста в речь через Azure Speech REST
- Провайдер Azure Speech
- Преобразование текста в речь в ElevenLabs
- Аутентификация в ElevenLabs
- Gradium
- API TTS от Inworld
- API MiniMax T2A v2
- HTTP API TTS от Volcengine
- Синтез речи Xiaomi MiMo
- node-edge-tts
- Форматы вывода Microsoft Speech
- Преобразование текста в речь в xAI