Tools

Перетворення тексту на мовлення

OpenClaw може перетворювати вихідні відповіді на аудіо через 14 провайдерів мовлення і доставляти нативні голосові повідомлення у Feishu, Matrix, Telegram і WhatsApp, аудіовкладення всюди інде, а також PCM/Ulaw-потоки для телефонії та Talk.

TTS — це половина виводу мовлення для режиму stt-tts у Talk. Провайдер-нативні сеанси Talk realtime синтезують мовлення всередині realtime-провайдера замість виклику цього TTS-шляху, тоді як сеанси transcription не синтезують голосову відповідь асистента.

Швидкий старт

  • Pick a provider

    OpenAI і ElevenLabs — найнадійніші хостингові варіанти. Microsoft і Local CLI працюють без API-ключа. Повний список див. у матриці провайдерів.

  • Set the API key

    Експортуйте env var для свого провайдера (наприклад OPENAI_API_KEY, ELEVENLABS_API_KEY). Microsoft і Local CLI не потребують ключа.

  • Enable in config

    Встановіть messages.tts.auto: "always" і messages.tts.provider:

    json5
    {  messages: {    tts: {      auto: "always",      provider: "elevenlabs",    },  },}
  • Try it in chat

    /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 Потоковий 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) T2A v2 API. За замовчуванням speech-2.8-hd.
    OpenAI OPENAI_API_KEY Також використовується для автозведення; підтримує persona instructions.
    OpenRouter OPENROUTER_API_KEY (може повторно використовувати models.providers.openrouter.apiKey) Модель за замовчуванням hexgrad/kokoro-82m.
    Volcengine VOLCENGINE_TTS_API_KEY або BYTEPLUS_SEED_SPEECH_API_KEY (legacy AppID/token: VOLCENGINE_TTS_APPID/_TOKEN) BytePlus Seed Speech HTTP API.
    Vydra VYDRA_API_KEY Спільний провайдер зображень, відео та мовлення.
    xAI XAI_API_KEY Пакетний TTS xAI. Нативна голосова нотатка Opus не підтримується.
    Xiaomi MiMo XIAOMI_API_KEY MiMo TTS через чат-завершення Xiaomi.

    Якщо налаштовано кількох провайдерів, спершу використовується вибраний, а інші є резервними варіантами. Автозведення використовує summaryModel (або agents.defaults.model.primary), тому цей провайдер також має бути автентифікований, якщо ви залишаєте зведення ввімкненими.

    Конфігурація

    Конфігурація TTS міститься в messages.tts у ~/.openclaw/openclaw.json. Виберіть пресет і адаптуйте блок провайдера:

    Azure Speech

    json5
    {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

    json5
    {messages: {tts: {  auto: "always",  provider: "elevenlabs",  providers: {    elevenlabs: {      apiKey: "${ELEVENLABS_API_KEY}",      model: "eleven_multilingual_v2",      speakerVoiceId: "EXAVITQu4vr4xnSDxMaL",    },  },},},}

    Google Gemini

    json5
    {messages: {tts: {  auto: "always",  provider: "google",  providers: {    google: {      apiKey: "${GEMINI_API_KEY}",      model: "gemini-3.1-flash-tts-preview",      speakerVoice: "Kore",      // Optional natural-language style prompts:      // audioProfile: "Speak in a calm, podcast-host tone.",      // speakerName: "Alex",    },  },},},}

    Gradium

    json5
    {messages: {tts: {  auto: "always",  provider: "gradium",  providers: {    gradium: {      apiKey: "${GRADIUM_API_KEY}",      speakerVoiceId: "YTpq7expH9539ERJ",    },  },},},}

    Inworld

    json5
    {messages: {tts: {  auto: "always",  provider: "inworld",  providers: {    inworld: {      apiKey: "${INWORLD_API_KEY}",      modelId: "inworld-tts-1.5-max",      speakerVoiceId: "Sarah",      temperature: 0.7,    },  },},},}

    Local CLI

    json5
    {messages: {tts: {  auto: "always",  provider: "tts-local-cli",  providers: {    "tts-local-cli": {      command: "say",      args: ["-o", "{{OutputPath}}", "{{Text}}"],      outputFormat: "wav",      timeoutMs: 120000,    },  },},},}

    Microsoft (no key)

    json5
    {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

    json5
    {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

    json5
    {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

    json5
    {messages: {tts: {  auto: "always",  provider: "openrouter",  providers: {    openrouter: {      apiKey: "${OPENROUTER_API_KEY}",      model: "hexgrad/kokoro-82m",      speakerVoice: "af_alloy",      responseFormat: "mp3",    },  },},},}

    Volcengine

    json5
    {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

    json5
    {messages: {tts: {  auto: "always",  provider: "xai",  providers: {    xai: {      apiKey: "${XAI_API_KEY}",      speakerVoiceId: "eve",      language: "en",      responseFormat: "mp3",    },  },},},}

    Xiaomi MiMo

    json5
    {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 у prompt для дизайну голосу. OpenClaw надсилає цей prompt як TTS-повідомлення user і не надсилає audio.voice для моделі voicedesign.

    Перевизначення голосу для окремого агента

    Використовуйте agents.list[].tts, коли один агент має говорити з іншим провайдером, голосом, моделлю, персоною або режимом автоматичного TTS. Блок агента виконує глибоке злиття поверх messages.tts, тому облікові дані провайдера можуть залишатися в глобальній конфігурації провайдера:

    json5
    {  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:

    1. messages.tts
    2. активне agents.list[].tts
    3. перевизначення каналу, коли канал підтримує channels.<channel>.tts
    4. перевизначення облікового запису, коли канал передає channels.<channel>.accounts.<id>.tts
    5. локальні налаштування /tts для цього хоста
    6. вбудовані директиви [[tts:...]], коли ввімкнено перевизначення моделлю

    Перевизначення каналу й облікового запису використовують ту саму форму, що й messages.tts, і виконують глибоке злиття поверх попередніх шарів, тому спільні облікові дані провайдера можуть залишатися в messages.tts, тоді як канал або обліковий запис бота змінює лише голос мовця, модель, персону або автоматичний режим:

    json5
    {  messages: {    tts: {      provider: "openai",      providers: {        openai: { apiKey: "${OPENAI_API_KEY}", model: "gpt-4o-mini-tts" },      },    },  },  channels: {    feishu: {      accounts: {        english: {          tts: {            providers: {              openai: { speakerVoice: "shimmer" },            },          },        },      },    },  },}

    Персони

    Персона — це стабільна мовна ідентичність, яку можна детерміновано застосовувати між провайдерами. Вона може надавати перевагу одному провайдеру, визначати нейтральний до провайдера намір промпта та містити прив’язки для конкретних провайдерів для голосів, моделей, шаблонів промптів, seed і налаштувань голосу.

    Мінімальна персона

    json5
    {  messages: {    tts: {      auto: "always",      persona: "narrator",      personas: {        narrator: {          label: "Narrator",          provider: "elevenlabs",          providers: {            elevenlabs: {              speakerVoiceId: "EXAVITQu4vr4xnSDxMaL",              modelId: "eleven_multilingual_v2",            },          },        },      },    },  },}

    Повна персона (нейтральний до провайдера промпт)

    json5
    {  messages: {    tts: {      auto: "always",      persona: "alfred",      personas: {        alfred: {          label: "Alfred",          description: "Dry, warm British butler narrator.",          provider: "google",          fallbackPolicy: "preserve-persona",          prompt: {            profile: "A brilliant British butler. Dry, witty, warm, charming, emotionally expressive, never generic.",            scene: "A quiet late-night study. Close-mic narration for a trusted operator.",            sampleContext: "The speaker is answering a private technical request with concise confidence and dry warmth.",            style: "Refined, understated, lightly amused.",            accent: "British English.",            pacing: "Measured, with short dramatic pauses.",            constraints: ["Do not read configuration values aloud.", "Do not explain the persona."],          },          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,              },            },          },        },      },    },  },}

    Визначення персони

    Активна персона вибирається детерміновано:

    1. Локальне налаштування /tts persona <id>, якщо задано.
    2. messages.tts.persona, якщо задано.
    3. Без персони.

    Вибір провайдера виконується з пріоритетом явних значень:

    1. Прямі перевизначення (CLI, Gateway, Talk, дозволені директиви TTS).
    2. Локальне налаштування /tts provider <id>.
    3. provider активної персони.
    4. messages.tts.provider.
    5. Автовибір із реєстру.

    Для кожної спроби провайдера OpenClaw зливає конфігурації в такому порядку:

    1. messages.tts.providers.<id>
    2. messages.tts.personas.<persona>.providers.<id>
    3. Довірені перевизначення запиту
    4. Дозволені перевизначення директив 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]] для виразних підказок, які мають з’являтися лише в аудіо:

    text
    Here you go. [[tts:speakerVoiceId=pMsXgVXv3BLzUgSXRplE model=eleven_v3 speed=1.1]][[tts:text]](laughs) Read the song once more.[[/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_model
    • stability, similarityBoost, style, speed, useSpeakerBoost
    • vol / volume (гучність MiniMax, 0–10)
    • pitch (цілочисельна висота тону MiniMax, −12 до 12; дробові значення обрізаються)
    • emotion (тег емоції Volcengine)
    • applyTextNormalization (auto|on|off)
    • languageCode (ISO 639-1)
    • seed

    Повністю вимкнути перевизначення моделлю:

    json5
    { messages: { tts: { modelOverrides: { enabled: false } } } }

    Дозволити перемикання провайдера, залишивши інші регулятори налаштовуваними:

    json5
    { messages: { tts: { modelOverrides: { enabled: true, allowProvider: true, allowSeed: false } } } }

    Slash-команди

    Одна команда /tts. У Discord OpenClaw також реєструє /voice, тому що /tts є вбудованою командою Discord — текстова /tts ... усе ще працює.

    text
    /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).
    • limit і summary зберігаються в локальних налаштуваннях, а не в основній конфігурації.
    • /tts status містить діагностику резервного переходу для останньої спроби — Fallback: <primary> -> <used>, Attempts: ... і деталі для кожної спроби (provider:outcome(reasonCode) latency).
    • /status показує активний режим TTS, а також налаштовані провайдер, модель, голос і очищені метадані користувацької кінцевої точки, коли TTS увімкнено.

    Налаштування для кожного користувача

    Slash-команди записують локальні перевизначення в prefsPath. Типове значення — ~/.openclaw/settings/tts.json; перевизначте його змінною середовища OPENCLAW_TTS_PREFS або messages.tts.prefsPath.

    Збережене поле Ефект
    auto Локальне перевизначення 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 надсилає результат через payload audio Baileys із ptt: true та audio/ogg; codecs=opus. Якщо конвертація завершується невдало, Feishu отримує оригінальний файл як вкладення; надсилання WhatsApp завершується помилкою, замість публікації несумісного PTT payload.
    • Інші канали: MP3 (mp3_44100_128 від ElevenLabs, mp3 від OpenAI).
      • 44,1 кГц / 128 кбіт/с — стандартний баланс для чіткості мовлення.
    • MiniMax: MP3 (модель speech-2.8-hd, частота дискретизації 32 кГц) для звичайних аудіовкладень. Для цілей голосових нотаток, оголошених каналом, OpenClaw транскодує MiniMax MP3 у 48 кГц Opus за допомогою ffmpeg перед доставкою, коли канал оголошує транскодування.
    • Xiaomi MiMo: MP3 за замовчуванням або WAV, якщо налаштовано. Для цілей голосових нотаток, оголошених каналом, OpenClaw транскодує вивід Xiaomi у 48 кГц Opus за допомогою ffmpeg перед доставкою, коли канал оголошує транскодування.
    • Локальний CLI: використовує налаштований outputFormat. Цілі голосових нотаток конвертуються в Ogg/Opus, а телефонний вивід конвертується в сирий моно PCM 16 кГц за допомогою ffmpeg.
    • Google Gemini: Gemini API TTS повертає сирий PCM 24 кГц. OpenClaw обгортає його як WAV для аудіовкладень, транскодує його у 48 кГц Opus для цілей голосових нотаток і повертає PCM напряму для Talk/телефонії.
    • Gradium: WAV для аудіовкладень, Opus для цілей голосових нотаток і ulaw_8000 на 8 кГц для телефонії.
    • Inworld: MP3 для звичайних аудіовкладень, нативний OGG_OPUS для цілей голосових нотаток і сирий PCM на 22050 Гц для Talk/телефонії.
    • xAI: MP3 за замовчуванням; responseFormat може бути mp3, wav, pcm, mulaw або alaw. OpenClaw використовує batch REST TTS endpoint xAI і повертає повне аудіовкладення; streaming TTS WebSocket 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.

    Формати виводу OpenAI/ElevenLabs фіксовані для кожного каналу (див. вище).

    Поведінка Auto-TTS

    Коли messages.tts.auto увімкнено, OpenClaw:

    • Пропускає TTS, якщо відповідь уже містить структуровані медіа.
    • Пропускає дуже короткі відповіді (менше 10 символів).
    • Узагальнює довгі відповіді, коли узагальнення ввімкнено, використовуючи summaryModel (або agents.defaults.model.primary).
    • Додає згенероване аудіо до відповіді.
    • У mode: "final" все одно надсилає аудіо-only TTS для потокових фінальних відповідей після завершення текстового потоку; згенеровані медіа проходять ту саму нормалізацію медіа каналу, що й звичайні вкладення відповіді.

    Якщо відповідь перевищує maxLength, а узагальнення вимкнено (або немає API-ключа для моделі узагальнення), аудіо пропускається, і надсилається звичайна текстова відповідь.

    text
    Reply -> TTS enabled?  no  -> send text  yes -> has media / short?          yes -> send text          no  -> length > limit?                   no  -> TTS -> attach audio                   yes -> summary enabled?                            no  -> send text                            yes -> summarize -> TTS -> attach audio

    Формати виводу за каналами

    Ціль Формат
    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 для голосових нотаток, сирий PCM 22050 Гц для Talk/телефонії.
    • xAI: MP3 за замовчуванням; responseFormat може бути mp3|wav|pcm|mulaw|alaw. Використовує пакетний REST-ендпоінт xAI — потоковий WebSocket TTS не використовується. Нативний формат голосових нотаток Opus не підтримується.
    • Microsoft: Використовує microsoft.outputFormat (за замовчуванням audio-24khz-48kbitrate-mono-mp3). Telegram sendVoice приймає OGG/MP3/M4A; використовуйте OpenAI/ElevenLabs, якщо вам потрібні гарантовані голосові повідомлення Opus. Якщо налаштований формат Microsoft дає збій, OpenClaw повторює спробу з MP3.

    Формати виводу OpenAI і ElevenLabs фіксовані для кожного каналу, як зазначено вище.

    Довідник полів

    Верхньорівневі messages.tts.*
    auto"off" | "always" | "inbound" | "tagged"

    Режим Auto-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>.

    maxTextLengthnumber

    Жорстке обмеження на кількість символів у вхідних даних TTS. /tts audio завершується помилкою, якщо його перевищено.

    timeoutMsnumber

    Тайм-аут запиту в мілісекундах.

    prefsPathstring

    Перевизначає локальний шлях JSON налаштувань (provider/limit/summary). За замовчуванням ~/.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_v3). OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZUlkIiB0eXBlPSJzdHJpbmci Ідентифікатор голосу ElevenLabs. Застарілий псевдонім: voiceId. OPENCLAW_DOCS_MARKER:paramClose:

    voiceSettingsobject

    stability, similarityBoost, style (кожне 0..1), useSpeakerBoost (true|false), speed (0.5..2.0, 1.0 = нормальна).

    applyTextNormalization"auto" | "on" | "off"

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Imxhbmd1YWdlQ29kZSIgdHlwZT0ic3RyaW5nIg 2-літерний ISO 639-1 (наприклад, en, de). OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNlZWQiIHR5cGU9Im51bWJlciI Ціле число 0..4294967295 для детермінізму за принципом best-effort. OPENCLAW_DOCS_MARKER:paramClose:

    baseUrlstring
    Google Gemini

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg Повертається до GEMINI_API_KEY / GOOGLE_API_KEY. Якщо пропущено, TTS може повторно використати models.providers.google.apiKey перед fallback до змінних середовища. 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:

    audioProfilestring
    speakerNamestring

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InByb21wdFRlbXBsYXRlIiB0eXBlPSciYXVkaW8tcHJvZmlsZS12MSIn Установіть audio-profile-v1, щоб обгорнути поля підказки активної персони в детерміновану структуру підказки Gemini TTS. OPENCLAW_DOCS_MARKER:paramClose:

    personaPromptstring

    OPENCLAW_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 За замовчуванням 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. OPENCLAW_DOCS_MARKER:paramClose:

    Локальний CLI (tts-local-cli)
    commandstring

    OPENCLAW_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:

    cwdstring
    env"Record<string,
    Microsoft (без ключа API)
    enabledbooleandefault: true

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZSIgdHlwZT0ic3RyaW5nIg Назва нейронного голосу Microsoft (наприклад, en-US-MichelleNeural). Застарілий псевдонім: voice. 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:

    saveSubtitlesboolean
    proxystring
    timeoutMsnumber

    OPENCLAW_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). Застарілий псевдонім: 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_URLhttps://api.openai.com/v1. Нестандартні значення вважаються сумісними з OpenAI кінцевими точками TTS, тому користувацькі назви моделей і голосів приймаються.

    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:

    speednumber
    Volcengine (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:

    speedRationumber
    emotionstring

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwcElkIC8gdG9rZW4gLyBjbHVzdGVyIiB0eXBlPSJzdHJpbmciIGRlcHJlY2F0ZWQ Застарілі поля консолі Volcengine Speech. Змінні середовища: 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. Доступні голоси: ara, eve, leo, rex, sal, una. Застарілий псевдонім: 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:

    speednumber
    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 перевизначають будь-яке стандартне значення провайдера, задане Plugin.

    Gateway RPC

    Метод Призначення
    tts.status Читати поточний стан TTS і останню спробу.
    tts.enable Установити локальну автоматичну перевагу на always.
    tts.disable Установити локальну автоматичну перевагу на off.
    tts.convert Одноразове перетворення текст → аудіо.
    tts.setProvider Установити локальну перевагу провайдера.
    tts.setPersona Установити локальну перевагу персони.
    tts.providers Перелічити налаштованих провайдерів і статус.

    Посилання на сервіси

    Пов’язане

    Was this useful?
    On this page

    On this page