Tools
Перетворення тексту на мовлення
OpenClaw перетворює вихідні відповіді на аудіо за допомогою 14 постачальників синтезу мовлення: нативні голосові повідомлення у Feishu, Matrix, Telegram і WhatsApp; аудіовкладення в усіх інших місцях; а також потоки PCM/Ulaw для телефонії та Talk.
TTS — це частина Talk, що відповідає за виведення мовлення в режимі stt-tts (talk.speak використовує
той самий шлях синтезу). Нативні для постачальника сеанси Talk realtime синтезують
мовлення всередині постачальника реального часу; сеанси transcription ніколи
не синтезують голосову відповідь асистента.
Швидкий початок
Виберіть постачальника
OpenAI та ElevenLabs — найнадійніші хостингові варіанти. Microsoft і локальний CLI працюють без ключа API. Повний список наведено в матриці постачальників.
Установіть ключ API
Експортуйте змінну середовища для свого постачальника (наприклад, OPENAI_API_KEY,
ELEVENLABS_API_KEY). Для Microsoft і локального CLI ключ не потрібен.
Увімкніть у конфігурації
Установіть messages.tts.auto: "always" та messages.tts.provider:
{ messages: { tts: { auto: "always", provider: "elevenlabs", }, },}Спробуйте в чаті
/tts status показує поточний стан. /tts audio Hello from OpenClaw
надсилає одноразову аудіовідповідь.
Підтримувані постачальники
| Постачальник | Автентифікація | Примітки |
|---|---|---|
| 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 |
Потоковий API TTS. Нативні голосові нотатки Opus і телефонія PCM. |
| Локальний CLI | немає | Запускає налаштовану локальну команду TTS. |
| Microsoft | немає | Загальнодоступний нейронний TTS Edge через node-edge-tts. Працює без гарантій, SLA немає. |
| MiniMax | MINIMAX_API_KEY (або план токенів: 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 |
TTS MiMo через завершення чату Xiaomi. |
Якщо налаштовано кількох постачальників, спочатку використовується вибраний, а
решта слугують резервними варіантами. Автоматичне підсумовування використовує summaryModel (або
agents.defaults.model.primary), тому для цього постачальника також потрібно налаштувати автентифікацію,
якщо підсумовування залишається ввімкненим.
Конфігурація
Конфігурація TTS міститься в messages.tts у файлі ~/.openclaw/openclaw.json. Виберіть
готовий набір і адаптуйте блок постачальника. Показані нижче поля speakerVoice/speakerVoiceId
є канонічними; власні назви полів voice/voiceId/
voiceName кожного постачальника досі працюють як застарілі псевдоніми.
Azure Speech
{messages: {tts: { auto: "always", provider: "azure-speech", providers: { "azure-speech": { apiKey: "${AZURE_SPEECH_KEY}", region: "eastus", speakerVoice: "en-US-JennyNeural", lang: "en-US", outputFormat: "audio-24khz-48kbitrate-mono-mp3", voiceNoteOutputFormat: "ogg-24khz-16bit-mono-opus", }, },},},}ElevenLabs
{messages: {tts: { auto: "always", provider: "elevenlabs", providers: { elevenlabs: { apiKey: "${ELEVENLABS_API_KEY}", model: "eleven_multilingual_v2", speakerVoiceId: "EXAVITQu4vr4xnSDxMaL", }, },},},}Google Gemini
{messages: {tts: { auto: "always", provider: "google", providers: { google: { apiKey: "${GEMINI_API_KEY}", model: "gemini-3.1-flash-tts-preview", speakerVoice: "Kore", // Необов'язкові підказки щодо стилю природною мовою: // audioProfile: "Говоріть спокійним тоном ведучого подкасту.", // speakerName: "Alex", }, },},},}Gradium
{messages: {tts: { auto: "always", provider: "gradium", providers: { gradium: { apiKey: "${GRADIUM_API_KEY}", speakerVoiceId: "YTpq7expH9539ERJ", }, },},},}Inworld
{messages: {tts: { auto: "always", provider: "inworld", providers: { inworld: { apiKey: "${INWORLD_API_KEY}", modelId: "inworld-tts-1.5-max", speakerVoiceId: "Sarah", temperature: 0.7, }, },},},}Локальний CLI
{messages: {tts: { auto: "always", provider: "tts-local-cli", providers: { "tts-local-cli": { command: "say", args: ["-o", "{{OutputPath}}", "{{Text}}"], outputFormat: "wav", timeoutMs: 120000, }, },},},}Microsoft (без ключа)
{messages: {tts: { auto: "always", provider: "microsoft", providers: { microsoft: { enabled: true, speakerVoice: "en-US-MichelleNeural", lang: "en-US", outputFormat: "audio-24khz-48kbitrate-mono-mp3", rate: "+0%", pitch: "+0%", }, },},},}MiniMax
{messages: {tts: { auto: "always", provider: "minimax", providers: { minimax: { apiKey: "${MINIMAX_API_KEY}", model: "speech-2.8-hd", speakerVoiceId: "English_expressive_narrator", speed: 1.0, vol: 1.0, pitch: 0, }, },},},}OpenAI + ElevenLabs
{messages: {tts: { auto: "always", provider: "openai", summaryModel: "openai/gpt-4.1-mini", modelOverrides: { enabled: true }, providers: { openai: { apiKey: "${OPENAI_API_KEY}", model: "gpt-4o-mini-tts", speakerVoice: "alloy", }, elevenlabs: { apiKey: "${ELEVENLABS_API_KEY}", model: "eleven_multilingual_v2", speakerVoiceId: "EXAVITQu4vr4xnSDxMaL", voiceSettings: { stability: 0.5, similarityBoost: 0.75, style: 0.0, useSpeakerBoost: true, speed: 1.0 }, applyTextNormalization: "auto", languageCode: "en", }, },},},}OpenRouter
{messages: {tts: { auto: "always", provider: "openrouter", providers: { openrouter: { apiKey: "${OPENROUTER_API_KEY}", model: "hexgrad/kokoro-82m", speakerVoice: "af_alloy", responseFormat: "mp3", }, },},},}Volcengine
{messages: {tts: { auto: "always", provider: "volcengine", providers: { volcengine: { apiKey: "${VOLCENGINE_TTS_API_KEY}", resourceId: "seed-tts-1.0", speakerVoice: "en_female_anna_mars_bigtts", }, },},},}xAI
{messages: {tts: { auto: "always", provider: "xai", providers: { xai: { apiKey: "${XAI_API_KEY}", speakerVoiceId: "eve", language: "en", responseFormat: "mp3", }, },},},}Xiaomi MiMo
{messages: {tts: { auto: "always", provider: "xiaomi", providers: { xiaomi: { apiKey: "${XIAOMI_API_KEY}", model: "mimo-v2.5-tts", speakerVoice: "mimo_default", format: "mp3", }, },},},}Для Xiaomi mimo-v2.5-tts-voicedesign не вказуйте speakerVoice і задайте для style
підказку для проєктування голосу. OpenClaw надсилає цю підказку як повідомлення TTS user
і не надсилає audio.voice для моделі voicedesign.
Перевизначення голосу для окремих агентів
Використовуйте agents.list[].tts, коли один агент має говорити через іншого провайдера,
іншим голосом, моделлю, персоною або в іншому режимі автоматичного TTS. Блок агента глибоко об’єднується з
messages.tts, тому облікові дані провайдера можуть залишатися в глобальній конфігурації провайдера:
{ messages: { tts: { auto: "always", provider: "elevenlabs", providers: { elevenlabs: { apiKey: "${ELEVENLABS_API_KEY}", model: "eleven_multilingual_v2" }, }, }, }, agents: { list: [ { id: "reader", tts: { providers: { elevenlabs: { speakerVoiceId: "EXAVITQu4vr4xnSDxMaL" }, }, }, }, ], },}Щоб закріпити персону за окремим агентом, задайте 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, тоді як канал або обліковий запис бота змінює лише голос мовця, модель, персону
або автоматичний режим:
{ messages: { tts: { provider: "openai", providers: { openai: { apiKey: "${OPENAI_API_KEY}", model: "gpt-4o-mini-tts" }, }, }, }, channels: { feishu: { accounts: { english: { tts: { providers: { openai: { speakerVoice: "shimmer" }, }, }, }, }, }, },}Персони
Персона — це стабільна голосова ідентичність, яку можна детерміновано застосовувати до різних провайдерів. Вона може надавати перевагу одному провайдеру, визначати незалежний від провайдера задум підказки та містити прив’язки до конкретних провайдерів для голосів, моделей, шаблонів підказок, початкових значень і налаштувань голосу.
Мінімальна персона
{ messages: { tts: { auto: "always", persona: "narrator", personas: { narrator: { label: "Оповідач", provider: "elevenlabs", providers: { elevenlabs: { speakerVoiceId: "EXAVITQu4vr4xnSDxMaL", modelId: "eleven_multilingual_v2", }, }, }, }, }, },}Повна персона (незалежна від провайдера підказка)
{ messages: { tts: { auto: "always", persona: "alfred", personas: { alfred: { label: "Альфред", description: "Стриманий, доброзичливий британський дворецький-оповідач.", provider: "google", fallbackPolicy: "preserve-persona", prompt: { profile: "Блискучий британський дворецький. Стриманий, дотепний, доброзичливий, чарівний, емоційно виразний, ніколи не шаблонний.", scene: "Тихий нічний кабінет. Оповідь близько до мікрофона для довіреного оператора.", sampleContext: "Мовець відповідає на приватний технічний запит стисло, впевнено та зі стриманою доброзичливістю.", style: "Вишуканий, стриманий, з легкою усмішкою.", accent: "Британська англійська.", pacing: "Розмірений, із короткими драматичними паузами.", constraints: ["Не зачитувати значення конфігурації вголос.", "Не пояснювати персону."], }, providers: { google: { model: "gemini-3.1-flash-tts-preview", speakerVoice: "Algieba", promptTemplate: "audio-profile-v1", }, openai: { model: "gpt-4o-mini-tts", speakerVoice: "cedar" }, elevenlabs: { speakerVoiceId: "voice_id", modelId: "eleven_multilingual_v2", seed: 42, voiceSettings: { stability: 0.65, similarityBoost: 0.8, style: 0.25, useSpeakerBoost: true, speed: 0.95, }, }, }, }, }, }, },}Визначення персони
Активна персона вибирається детерміновано:
- Локальне налаштування
/tts persona <id>, якщо задано. messages.tts.persona, якщо задано.- Без персони.
Під час вибору провайдера явні налаштування мають пріоритет:
- Прямі перевизначення (CLI, Gateway, Talk, дозволені директиви TTS).
- Локальне налаштування
/tts provider <id>. providerактивної персони.messages.tts.provider.- Автоматичний вибір із реєстру.
Для кожної спроби провайдера OpenClaw об’єднує конфігурації в такому порядку:
messages.tts.providers.<id>messages.tts.personas.<persona>.providers.<id>- Довірені перевизначення запиту
- Дозволені перевизначення з директив TTS, згенерованих моделлю
Як провайдери використовують підказки персони
Поля підказки персони (profile, scene, sampleContext, style, accent,
pacing, constraints) не залежать від провайдера. Кожен провайдер сам вирішує, як
їх використовувати:
Google Gemini
Обгортає поля підказки персони в структуру підказки Gemini TTS лише тоді, коли
ефективна конфігурація провайдера Google задає promptTemplate: "audio-profile-v1"
або personaPrompt. Старіші поля audioProfile і speakerName усе ще
додаються на початок як текст підказки, специфічний для Google. Вбудовані аудіотеги, як-от
[whispers] або [laughs], усередині блоку [[tts:text]] зберігаються
в транскрипті Gemini; OpenClaw не генерує ці теги.
OpenAI
Зіставляє поля підказки персони з полем запиту instructions лише тоді, коли
не налаштовано явне значення OpenAI instructions. Явне значення instructions
завжди має пріоритет.
Інші провайдери
Використовують лише прив’язки персони до конкретного провайдера в
personas.<id>.providers.<provider>. Поля підказки персони ігноруються,
якщо провайдер не реалізує власне зіставлення підказки персони.
Політика резервного вибору
fallbackPolicy керує поведінкою, коли персона не має прив’язки для
провайдера, що випробовується:
| Політика | Поведінка |
|---|---|
preserve-persona |
Типово. Незалежні від провайдера поля підказки залишаються доступними; провайдер може використати або проігнорувати їх. |
provider-defaults |
Персону не включають до підготовки підказки для цієї спроби; провайдер використовує нейтральні типові значення, а резервний перехід до інших провайдерів триває. |
fail |
Пропустити спробу цього провайдера з reasonCode: "not_configured" і personaBinding: "missing". Резервні провайдери все одно випробовуються. |
Увесь запит TTS завершується невдало, лише коли кожного випробуваного провайдера пропущено або кожна спроба завершилася невдало.
Вибір провайдера сеансу Talk діє в межах сеансу. Клієнт Talk має вибирати
ідентифікатори провайдерів, моделей, голосів і локалі з talk.catalog та передавати
їх через запит сеансу Talk або передачі керування. Відкриття голосового сеансу не повинно
змінювати messages.tts або глобальні типові налаштування провайдера Talk.
Директиви, керовані моделлю
Типово асистент може виводити директиви [[tts:...]], щоб перевизначити
голос, модель або швидкість для однієї відповіді, а також необов’язковий
блок [[tts:text]]...[[/tts:text]] для виразних підказок, які мають бути присутні
лише в аудіо:
Ось, будь ласка. [[tts:speakerVoiceId=pMsXgVXv3BLzUgSXRplE model=eleven_v3 speed=1.1]][[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
Повністю вимкнути перевизначення моделлю:
{ messages: { tts: { modelOverrides: { enabled: false } } } }Дозволити перемикання провайдера, зберігши можливість налаштовувати інші параметри:
{ messages: { tts: { modelOverrides: { enabled: true, allowProvider: true, allowSeed: false } } } }Команди зі скісною рискою
Єдина команда /tts. У Discord OpenClaw також реєструє /voice, оскільки
/tts є вбудованою командою Discord — текстова команда /tts ... усе ще працює.
/tts off | on | status/tts chat on | off | default/tts latest/tts provider <id>/tts persona <id> | off/tts limit <chars>/tts summary off/tts audio <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.
| Збережене поле | Ефект |
|---|---|
auto |
Локальне перевизначення автоматичного TTS (always, off, …) |
provider |
Локальне перевизначення основного провайдера |
persona |
Локальне перевизначення персони |
maxLength |
Порогове значення підсумовування/скорочення (за замовчуванням 1500 символів, діапазон /tts limit — 100–4096) |
summarize |
Перемикач підсумовування (за замовчуванням true) |
Вони перевизначають чинну конфігурацію з messages.tts разом з активним
блоком agents.list[].tts для цього хоста.
Формати виведення
Передавання голосового TTS визначається можливостями каналу. Плагіни каналів повідомляють,
чи має голосовий TTS запитувати в провайдерів нативний цільовий формат voice-note або
зберігати звичайний синтез audio-file, а також чи перекодовує канал
ненативний результат перед надсиланням.
| Цільовий канал | Формат |
|---|---|
| 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 або інший імовірний аудіофайл, плагін каналу перед надсиланням нативного голосового повідомлення перекодовує його в 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 безпосередньо для Talk/телефонії.
- Gradium: WAV для аудіовкладень, Opus для цільових форматів голосових повідомлень і
ulaw_8000із частотою 8 кГц для телефонії. - Inworld: MP3 для звичайних аудіовкладень, нативний
OGG_OPUSдля цільових форматів голосових повідомлень і необробленийPCMіз частотою 22050 Гц для Talk/телефонії. - xAI: MP3 за замовчуванням; для синтезу аудіофайлів можна використовувати
mp3,wav,pcm,mulawабоalawяк для буферизованого, так і для потокового виведення. Для цільових форматів голосових повідомлень використовується MP3 під час потокового виведення та як резервний варіант буферизованого виведення, оскільки результатиpcm,mulawіalawвід xAI є необробленим аудіо без заголовків. Буферизований синтез використовує пакетну 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.
- Вбудований транспорт приймає
Формати виведення OpenAI та ElevenLabs фіксовані для кожного каналу, як зазначено вище.
Поведінка автоматичного TTS
Коли messages.tts.auto увімкнено, OpenClaw:
- Пропускає TTS, якщо відповідь уже містить структуровані медіадані.
- Пропускає дуже короткі відповіді (менше ніж 10 символів).
- Підсумовує довгі відповіді, коли підсумовування ввімкнено, використовуючи
summaryModel(абоagents.defaults.model.primary). - Додає згенероване аудіо до відповіді.
- У
mode: "final"усе одно надсилає лише аудіо TTS для фінальних потокових відповідей після завершення текстового потоку; згенеровані медіадані проходять ту саму нормалізацію медіаданих каналу, що й звичайні вкладення відповіді.
Якщо відповідь перевищує maxLength, OpenClaw ніколи не пропускає аудіо повністю:
- Підсумовування ввімкнено (за замовчуванням) і модель підсумовування доступна: підсумовує
текст приблизно до
maxLengthсимволів, а потім синтезує підсумок. - Підсумовування вимкнено, підсумовування завершується помилкою або для
моделі підсумовування немає ключа API: скорочує текст до
maxLengthсимволів і синтезує скорочений текст.
Відповідь -> TTS увімкнено? ні -> надіслати текст так -> є медіадані / коротка? так -> надіслати текст ні -> довжина > обмеження? ні -> TTS -> додати аудіо так -> підсумовування ввімкнене й доступне? ні -> скоротити -> TTS -> додати аудіо так -> підсумувати -> TTS -> додати аудіоДовідник полів
Верхньорівневі messages.tts.*
auto"off" | "always" | "inbound" | "tagged"Режим автоматичного TTS. inbound надсилає аудіо лише після вхідного голосового повідомлення; tagged надсилає аудіо лише тоді, коли відповідь містить директиви [[tts:...]] або блок [[tts:text]].
enabledbooleanЗастарілий перемикач. openclaw doctor --fix переносить його до auto.
mode"final" | "all"default: final"all" включає відповіді інструментів/блоків на додачу до фінальних відповідей.
providerstringІдентифікатор провайдера мовлення. Якщо його не задано, OpenClaw використовує першого налаштованого провайдера відповідно до порядку автоматичного вибору в реєстрі. Застарілий provider: "edge" замінюється на "microsoft" за допомогою openclaw doctor --fix.
personastringІдентифікатор активної персони з personas. Нормалізується до нижнього регістру.
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InBlcnNvbmFzLjxpZA
" type="object">
Стабільна голосова ідентичність. Поля: label, description, provider, fallbackPolicy, prompt, providers.<provider>. Див. Персони.
summaryModelstringНедорога модель для автоматичного підсумовування; за замовчуванням agents.defaults.model.primary. Приймає provider/model або налаштований псевдонім моделі.
modelOverridesobjectДозволяє моделі створювати директиви TTS. Значення enabled за замовчуванням — true; значення allowProvider за замовчуванням — false.
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InByb3ZpZGVycy48aWQ
" type="object">
Налаштування, якими керує провайдер і які індексуються за ідентифікатором провайдера мовлення. Застарілі безпосередні блоки (messages.tts.openai, .elevenlabs, .microsoft, .edge) переписуються за допомогою openclaw doctor --fix; зберігайте лише messages.tts.providers.<id>.
maxTextLengthnumberdefault: 4096Жорстке обмеження кількості символів у вхідних даних TTS. /tts audio, tts.convert і tts.speak завершуються помилкою в разі перевищення.
timeoutMsnumberdefault: 30000Час очікування запиту в мілісекундах. Значення timeoutMs для окремого виклику (інструмент агента, Gateway) має пріоритет, якщо його задано; інакше явно налаштоване messages.tts.timeoutMs має пріоритет над будь-яким стандартним значенням провайдера, заданим плагіном.
prefsPathstringПеревизначає локальний шлях до JSON налаштувань (провайдер/обмеження/підсумовування). За замовчуванням ~/.openclaw/settings/tts.json.
Azure Speech
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg
Змінна середовища: AZURE_SPEECH_KEY, AZURE_SPEECH_API_KEY або SPEECH_KEY.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InJlZ2lvbiIgdHlwZT0ic3RyaW5nIg
Регіон Azure Speech (наприклад, eastus). Змінна середовища: AZURE_SPEECH_REGION або SPEECH_REGION.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImVuZHBvaW50IiB0eXBlPSJzdHJpbmci
Необов’язкове перевизначення кінцевої точки Azure Speech (псевдонім baseUrl).
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZSIgdHlwZT0ic3RyaW5nIg
ShortName голосу Azure. За замовчуванням en-US-JennyNeural. Застарілий псевдонім: voice.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImxhbmciIHR5cGU9InN0cmluZyI
Код мови SSML. За замовчуванням en-US.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im91dHB1dEZvcm1hdCIgdHlwZT0ic3RyaW5nIg
Azure X-Microsoft-OutputFormat для стандартного аудіо. За замовчуванням audio-24khz-48kbitrate-mono-mp3.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InZvaWNlTm90ZU91dHB1dEZvcm1hdCIgdHlwZT0ic3RyaW5nIg
Azure X-Microsoft-OutputFormat для виведення голосових повідомлень. За замовчуванням ogg-24khz-16bit-mono-opus.
OPENCLAW_DOCS_MARKER:paramClose:
ElevenLabs
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg
Як резерв використовує ELEVENLABS_API_KEY або XI_API_KEY.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im1vZGVsIiB0eXBlPSJzdHJpbmci
Ідентифікатор моделі. За замовчуванням eleven_multilingual_v2. Застарілі ідентифікатори eleven_turbo_v2_5/eleven_turbo_v2 нормалізуються до відповідної моделі flash.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZUlkIiB0eXBlPSJzdHJpbmci
Ідентифікатор голосу ElevenLabs. За замовчуванням pMsXgVXv3BLzUgSXRplE. Застарілий псевдонім: voiceId.
OPENCLAW_DOCS_MARKER:paramClose:
voiceSettingsobjectstability, similarityBoost, style (кожне 0..1, стандартні значення 0.5/0.75/0), useSpeakerBoost (true|false, стандартне значення true), speed (0.5..2.0, стандартне значення 1.0).
applyTextNormalization"auto" | "on" | "off"OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Imxhbmd1YWdlQ29kZSIgdHlwZT0ic3RyaW5nIg
Дволітерний код ISO 639-1 (наприклад, en, de).
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNlZWQiIHR5cGU9Im51bWJlciI
Ціле число 0..4294967295 для детермінованості за принципом докладання максимальних зусиль.
OPENCLAW_DOCS_MARKER:paramClose:
baseUrlstringGoogle Gemini
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg
Якщо значення не задано, використовуються GEMINI_API_KEY / GOOGLE_API_KEY. Якщо параметр пропущено, TTS може повторно використати models.providers.google.apiKey перед використанням змінної середовища.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im1vZGVsIiB0eXBlPSJzdHJpbmci
Модель Gemini TTS. Типове значення — gemini-3.1-flash-tts-preview.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZSIgdHlwZT0ic3RyaW5nIg
Назва готового голосу Gemini. Типове значення — Kore. Застарілі псевдоніми: voiceName, voice.
OPENCLAW_DOCS_MARKER:paramClose:
audioProfilestringspeakerNamestringOPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InByb21wdFRlbXBsYXRlIiB0eXBlPSciYXVkaW8tcHJvZmlsZS12MSIn
Установіть значення audio-profile-v1, щоб обгорнути активні поля запиту персони в детерміновану структуру запиту Gemini TTS.
OPENCLAW_DOCS_MARKER:paramClose:
personaPromptstringOPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI
Приймається лише https://generativelanguage.googleapis.com.
OPENCLAW_DOCS_MARKER:paramClose:
Gradium
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg
Змінна середовища: GRADIUM_API_KEY.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI
URL-адреса Gradium API через HTTPS на api.gradium.ai. Типове значення — https://api.gradium.ai.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZUlkIiB0eXBlPSJzdHJpbmci
Типове значення — Emma (YTpq7expH9539ERJ). Застарілий псевдонім: voiceId.
OPENCLAW_DOCS_MARKER:paramClose:
Inworld
Основний Inworld
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg
Змінна середовища: INWORLD_API_KEY.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI
Типове значення — https://api.inworld.ai.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im1vZGVsSWQiIHR5cGU9InN0cmluZyI
Типове значення — inworld-tts-1.5-max. Також: inworld-tts-1.5-mini, inworld-tts-1-max, inworld-tts-1.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZUlkIiB0eXBlPSJzdHJpbmci
Типове значення — Sarah. Застарілий псевдонім: voiceId.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InRlbXBlcmF0dXJlIiB0eXBlPSJudW1iZXIi
Температура вибірки 0..2 (за винятком 0).
OPENCLAW_DOCS_MARKER:paramClose:
Локальний CLI (tts-local-cli)
commandstringOPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFyZ3MiIHR5cGU9InN0cmluZ1tdIg
Аргументи команди. Підтримує заповнювачі {{Text}}, {{OutputPath}}, {{OutputDir}}, {{OutputBase}}.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im91dHB1dEZvcm1hdCIgdHlwZT0nIm1wMyIgfCAib3B1cyIgfCAid2F2Iic
Очікуваний формат виведення CLI. Типове значення для аудіовкладень — mp3.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InRpbWVvdXRNcyIgdHlwZT0ibnVtYmVyIg
Час очікування команди в мілісекундах. Типове значення — 120000.
OPENCLAW_DOCS_MARKER:paramClose:
cwdstringenv"Record<string,Стандартне виведення команди та створене або перетворене аудіо обмежені розміром 50 МіБ. Діагностичне стандартне виведення помилок обмежене розміром 1 МіБ. OpenClaw завершує команду та вважає синтез невдалим, якщо перевищено будь-яке з обмежень.
Microsoft (без ключа API)
enabledbooleandefault: trueOPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZSIgdHlwZT0ic3RyaW5nIg
Назва нейронного голосу Microsoft (наприклад, en-US-MichelleNeural). Застарілий псевдонім: voice. Якщо використовується типовий англійський голос, а в тексті відповіді переважають символи CJK, OpenClaw автоматично перемикається на zh-CN-XiaoxiaoNeural.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImxhbmciIHR5cGU9InN0cmluZyI
Код мови (наприклад, en-US).
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im91dHB1dEZvcm1hdCIgdHlwZT0ic3RyaW5nIg
Формат виведення Microsoft. Типове значення — audio-24khz-48kbitrate-mono-mp3. Вбудований транспорт на основі Edge підтримує не всі формати.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InJhdGUgLyBwaXRjaCAvIHZvbHVtZSIgdHlwZT0ic3RyaW5nIg
Рядки з відсотковими значеннями (наприклад, +10%, -5%).
OPENCLAW_DOCS_MARKER:paramClose:
saveSubtitlesbooleanproxystringtimeoutMsnumberOPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImVkZ2UuKiIgdHlwZT0ib2JqZWN0IiBkZXByZWNhdGVk
Застарілий псевдонім. Запустіть openclaw doctor --fix, щоб переписати збережену конфігурацію на providers.microsoft.
OPENCLAW_DOCS_MARKER:paramClose:
MiniMax
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg
Якщо значення не задано, використовується MINIMAX_API_KEY. Автентифікація Token Plan через MINIMAX_OAUTH_TOKEN, MINIMAX_CODE_PLAN_KEY або MINIMAX_CODING_API_KEY.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI
Типове значення — https://api.minimax.io. Змінна середовища: MINIMAX_API_HOST.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im1vZGVsIiB0eXBlPSJzdHJpbmci
Типове значення — speech-2.8-hd. Змінна середовища: MINIMAX_TTS_MODEL.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZUlkIiB0eXBlPSJzdHJpbmci
Типове значення — English_expressive_narrator. Змінна середовища: MINIMAX_TTS_VOICE_ID. Застарілий псевдонім: voiceId.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWVkIiB0eXBlPSJudW1iZXIi
0.5..2.0. Типове значення — 1.0.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InZvbCIgdHlwZT0ibnVtYmVyIg
(0, 10]. Типове значення — 1.0.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InBpdGNoIiB0eXBlPSJudW1iZXIi
Ціле число -12..12. Типове значення — 0. Дробові значення перед запитом відкидаються.
OPENCLAW_DOCS_MARKER:paramClose:
OpenAI
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg
Якщо значення не задано, використовується OPENAI_API_KEY.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im1vZGVsIiB0eXBlPSJzdHJpbmci
Ідентифікатор моделі OpenAI TTS. Типове значення — gpt-4o-mini-tts.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZSIgdHlwZT0ic3RyaW5nIg
Назва голосу (наприклад, alloy, cedar). Типове значення — coral. Застарілий псевдонім: voice.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Imluc3RydWN0aW9ucyIgdHlwZT0ic3RyaW5nIg
Явне поле OpenAI instructions. Якщо його задано, поля запиту персони не зіставляються автоматично.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImV4dHJhQm9keSAvIGV4dHJhX2JvZHkiIHR5cGU9IlJlY29yZDxzdHJpbmcsIHVua25vd24
">Додаткові поля JSON, які об’єднуються з тілами запитів /audio/speech після згенерованих полів OpenAI TTS. Використовуйте це для сумісних з OpenAI кінцевих точок, як-от Kokoro, що потребують специфічних для постачальника ключів на кшталт lang; небезпечні ключі прототипів ігноруються.
OPENCLAW_DOCS_MARKER:paramClose:
baseUrlstringПеревизначає кінцеву точку OpenAI TTS. Порядок визначення: конфігурація → OPENAI_TTS_BASE_URL → https://api.openai.com/v1. Нетипові значення розглядаються як сумісні з OpenAI кінцеві точки TTS, тому приймаються власні назви моделей і голосів, а для speed вимикається перевірка діапазону 0.25..4.0.
OpenRouter
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg
Змінна середовища: OPENROUTER_API_KEY. Може повторно використовувати models.providers.openrouter.apiKey.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI
Типове значення — https://openrouter.ai/api/v1. Застаріле значення https://openrouter.ai/v1 нормалізується.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im1vZGVsIiB0eXBlPSJzdHJpbmci
Типове значення — hexgrad/kokoro-82m. Псевдонім: modelId.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZSIgdHlwZT0ic3RyaW5nIg
Типове значення — af_alloy. Застарілі псевдоніми: voice, voiceId.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InJlc3BvbnNlRm9ybWF0IiB0eXBlPScibXAzIiB8ICJwY20iJw
Типове значення — mp3.
OPENCLAW_DOCS_MARKER:paramClose:
speednumberVolcengine (BytePlus Seed Speech)
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg
Змінна середовища: VOLCENGINE_TTS_API_KEY або BYTEPLUS_SEED_SPEECH_API_KEY.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InJlc291cmNlSWQiIHR5cGU9InN0cmluZyI
Типове значення — seed-tts-1.0. Змінна середовища: VOLCENGINE_TTS_RESOURCE_ID. Використовуйте seed-tts-2.0, якщо ваш проєкт має право на TTS 2.0.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwcEtleSIgdHlwZT0ic3RyaW5nIg
Заголовок ключа застосунку. Типове значення — aGjiRDfUWi. Змінна середовища: VOLCENGINE_TTS_APP_KEY.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI
Перевизначає кінцеву точку HTTP для Seed Speech TTS. Змінна середовища: VOLCENGINE_TTS_BASE_URL.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZSIgdHlwZT0ic3RyaW5nIg
Тип голосу. Типове значення — en_female_anna_mars_bigtts. Змінна середовища: VOLCENGINE_TTS_VOICE. Застарілий псевдонім: voice.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWVkUmF0aW8iIHR5cGU9Im51bWJlciI
Власний коефіцієнт швидкості постачальника, 0.2..3.
OPENCLAW_DOCS_MARKER:paramClose:
emotionstringOPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwcElkIC8gdG9rZW4gLyBjbHVzdGVyIiB0eXBlPSJzdHJpbmciIGRlcHJlY2F0ZWQ
Застарілі поля Volcengine Speech Console. Змінні середовища: VOLCENGINE_TTS_APPID, VOLCENGINE_TTS_TOKEN, VOLCENGINE_TTS_CLUSTER (типове значення — volcano_tts).
OPENCLAW_DOCS_MARKER:paramClose:
xAI
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg
Змінна середовища: XAI_API_KEY.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI
Типове значення — https://api.x.ai/v1. Змінна середовища: XAI_BASE_URL.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZUlkIiB0eXBlPSJzdHJpbmci
Типове значення — eve. За наявності автентифікації openclaw infer tts voices --provider xai отримує поточний вбудований каталог; без автентифікації виводить автономні резервні варіанти ara, eve, leo, rex і sal. Власні ідентифікатори голосів облікового запису передаються далі, навіть якщо їх немає у вбудованому списку. Застарілий псевдонім: voiceId.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Imxhbmd1YWdlIiB0eXBlPSJzdHJpbmci
Код мови BCP-47 або auto. Типове значення — en.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InJlc3BvbnNlRm9ybWF0IiB0eXBlPScibXAzIiB8ICJ3YXYiIHwgInBjbSIgfCAibXVsYXciIHwgImFsYXciJw
Типове значення — mp3.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWVkIiB0eXBlPSJudW1iZXIi
Власне перевизначення швидкості постачальника, 0.7..1.5.
OPENCLAW_DOCS_MARKER:paramClose:
Xiaomi MiMo
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg
Змінна середовища: XIAOMI_API_KEY.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI
Типове значення — https://api.xiaomimimo.com/v1. Змінна середовища: XIAOMI_BASE_URL.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im1vZGVsIiB0eXBlPSJzdHJpbmci
Типове значення — mimo-v2.5-tts. Змінна середовища: XIAOMI_TTS_MODEL. Також підтримує mimo-v2-tts і mimo-v2.5-tts-voicedesign.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZSIgdHlwZT0ic3RyaW5nIg
Типове значення для моделей із попередньо заданими голосами — mimo_default. Змінна середовища: XIAOMI_TTS_VOICE. Застарілий псевдонім: voice. Не надсилається для mimo-v2.5-tts-voicedesign.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImZvcm1hdCIgdHlwZT0nIm1wMyIgfCAid2F2Iic
Типове значення — mp3. Змінна середовища: XIAOMI_TTS_FORMAT.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InN0eWxlIiB0eXBlPSJzdHJpbmci
Необов’язкова інструкція щодо стилю природною мовою, яка надсилається як повідомлення користувача, але не озвучується. Для mimo-v2.5-tts-voicedesign це запит для створення голосу; якщо його пропущено, OpenClaw надає типове значення.
OPENCLAW_DOCS_MARKER:paramClose:
Інструмент агента
Інструмент 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
| Метод | Призначення |
|---|---|
tts.status |
Читання поточного стану TTS і останньої спроби. |
tts.enable |
Установлення локального параметра автоматичного режиму на always. |
tts.disable |
Установлення локального параметра автоматичного режиму на off. |
tts.convert |
Одноразове перетворення тексту → аудіо. |
tts.setProvider |
Установлення локального бажаного постачальника. |
tts.personas |
Перелік налаштованих персон і активної персони. |
tts.setPersona |
Установлення локальної бажаної персони. |
tts.providers |
Перелік налаштованих постачальників і їхнього стану. |
Посилання на сервіси
- Посібник 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