Tools

Metinden konuşmaya

OpenClaw, giden yanıtları 14 konuşma sağlayıcısı genelinde sese dönüştürebilir ve Feishu, Matrix, Telegram ve WhatsApp üzerinde yerel sesli mesajlar, diğer her yerde ses ekleri, telephony ve Talk için PCM/Ulaw akışları teslim edebilir.

TTS, Talk'ın stt-tts modunun konuşma çıktısı yarısıdır. Sağlayıcıya özgü realtime Talk oturumları, bu TTS yolunu çağırmak yerine konuşmayı realtime sağlayıcısının içinde sentezler; transcription oturumları ise bir asistan sesli yanıtı sentezlemez.

Hızlı başlangıç

  • Pick a provider

    OpenAI ve ElevenLabs en güvenilir barındırılan seçeneklerdir. Microsoft ve Local CLI bir API anahtarı olmadan çalışır. Tam liste için sağlayıcı matrisine bakın.

  • Set the API key

    Sağlayıcınız için env var'ı dışa aktarın (örneğin OPENAI_API_KEY, ELEVENLABS_API_KEY). Microsoft ve Local CLI anahtar gerektirmez.

  • Enable in config

    messages.tts.auto: "always" ve messages.tts.provider değerlerini ayarlayın:

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

    /tts status mevcut durumu gösterir. /tts audio Hello from OpenClaw tek seferlik bir sesli yanıt gönderir.

  • Desteklenen sağlayıcılar

    Sağlayıcı Kimlik doğrulama Notlar
    Azure Speech AZURE_SPEECH_KEY + AZURE_SPEECH_REGION (ayrıca AZURE_SPEECH_API_KEY, SPEECH_KEY, SPEECH_REGION) Yerel Ogg/Opus sesli not çıktısı ve telephony.
    DeepInfra DEEPINFRA_API_KEY OpenAI uyumlu TTS. Varsayılan olarak hexgrad/Kokoro-82M.
    ElevenLabs ELEVENLABS_API_KEY veya XI_API_KEY Ses klonlama, çok dilli, seed ile deterministik; Discord ses oynatma için akışlıdır.
    Google Gemini GEMINI_API_KEY veya GOOGLE_API_KEY Gemini API toplu TTS; promptTemplate: "audio-profile-v1" ile persona farkındalığı.
    Gradium GRADIUM_API_KEY Sesli not ve telephony çıktısı.
    Inworld INWORLD_API_KEY Akışlı TTS API. Yerel Opus sesli not ve PCM telephony.
    Local CLI yok Yapılandırılmış yerel bir TTS komutunu çalıştırır.
    Microsoft yok node-edge-tts üzerinden genel Edge neural TTS. En iyi çaba, SLA yok.
    MiniMax MINIMAX_API_KEY (veya Token Plan: MINIMAX_OAUTH_TOKEN, MINIMAX_CODE_PLAN_KEY, MINIMAX_CODING_API_KEY) T2A v2 API. Varsayılan olarak speech-2.8-hd.
    OpenAI OPENAI_API_KEY Otomatik özet için de kullanılır; persona instructions desteği vardır.
    OpenRouter OPENROUTER_API_KEY (models.providers.openrouter.apiKey yeniden kullanılabilir) Varsayılan model hexgrad/kokoro-82m.
    Volcengine VOLCENGINE_TTS_API_KEY veya BYTEPLUS_SEED_SPEECH_API_KEY (eski AppID/token: VOLCENGINE_TTS_APPID/_TOKEN) BytePlus Seed Speech HTTP API.
    Vydra VYDRA_API_KEY Paylaşılan görüntü, video ve konuşma sağlayıcısı.
    xAI XAI_API_KEY xAI toplu TTS. Yerel Opus sesli not desteklenmez.
    Xiaomi MiMo XIAOMI_API_KEY Xiaomi sohbet tamamlama üzerinden MiMo TTS.

    Birden fazla sağlayıcı yapılandırılmışsa, önce seçilen sağlayıcı kullanılır ve diğerleri fallback seçenekleri olur. Otomatik özet summaryModel (veya agents.defaults.model.primary) kullanır; bu nedenle özetleri etkin tutarsanız o sağlayıcının da kimliği doğrulanmış olmalıdır.

    Yapılandırma

    TTS config'i ~/.openclaw/openclaw.json içinde messages.tts altında bulunur. Bir preset seçin ve sağlayıcı bloğunu uyarlayın:

    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 için speakerVoice değerini atlayın ve style değerini ses tasarımı prompt'u olarak ayarlayın. OpenClaw bu prompt'u TTS user mesajı olarak gönderir ve voicedesign modeli için audio.voice göndermez.

    Agent başına ses geçersiz kılmaları

    agents.list[].tts değerini, bir ajanın farklı bir sağlayıcı, ses, model, persona veya otomatik TTS moduyla konuşması gerektiğinde kullanın. Ajan bloğu messages.tts üzerine derin birleştirme uygular, böylece sağlayıcı kimlik bilgileri global sağlayıcı yapılandırmasında kalabilir:

    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" },          },        },      },    ],  },}

    Ajan başına bir persona sabitlemek için sağlayıcı yapılandırmasının yanında agents.list[].tts.persona ayarlayın; bu, yalnızca o ajan için global messages.tts.persona değerini geçersiz kılar.

    Otomatik yanıtlar, /tts audio, /tts status ve tts ajan aracı için öncelik sırası:

    1. messages.tts
    2. etkin agents.list[].tts
    3. kanal channels.<channel>.tts desteklediğinde kanal geçersiz kılması
    4. kanal channels.<channel>.accounts.<id>.tts geçirdiğinde hesap geçersiz kılması
    5. bu ana makine için yerel /tts tercihleri
    6. model geçersiz kılmaları etkinleştirildiğinde satır içi [[tts:...]] yönergeleri

    Kanal ve hesap geçersiz kılmaları messages.tts ile aynı şekli kullanır ve önceki katmanların üzerine derin birleştirilir; böylece paylaşılan sağlayıcı kimlik bilgileri messages.tts içinde kalabilirken bir kanal veya bot hesabı yalnızca konuşmacı sesini, modeli, persona değerini veya otomatik modu değiştirebilir:

    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" },            },          },        },      },    },  },}

    Personalar

    Bir persona, sağlayıcılar arasında deterministik olarak uygulanabilen kararlı bir sözlü kimliktir. Bir sağlayıcıyı tercih edebilir, sağlayıcıdan bağımsız istem amacını tanımlayabilir ve sesler, modeller, istem şablonları, tohumlar ve ses ayarları için sağlayıcıya özel bağlamalar taşıyabilir.

    Minimal persona

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

    Tam persona (sağlayıcıdan bağımsız istem)

    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,              },            },          },        },      },    },  },}

    Persona çözümleme

    Etkin persona deterministik olarak seçilir:

    1. ayarlanmışsa /tts persona <id> yerel tercihi.
    2. ayarlanmışsa messages.tts.persona.
    3. Persona yok.

    Sağlayıcı seçimi açık olan öncelikli çalışır:

    1. Doğrudan geçersiz kılmalar (CLI, gateway, Talk, izin verilen TTS yönergeleri).
    2. /tts provider <id> yerel tercihi.
    3. Etkin personanın provider değeri.
    4. messages.tts.provider.
    5. Kayıt defteri otomatik seçimi.

    Her sağlayıcı denemesi için OpenClaw yapılandırmaları şu sırayla birleştirir:

    1. messages.tts.providers.<id>
    2. messages.tts.personas.<persona>.providers.<id>
    3. Güvenilir istek geçersiz kılmaları
    4. İzin verilen model tarafından yayımlanan TTS yönergesi geçersiz kılmaları

    Sağlayıcılar persona istemlerini nasıl kullanır

    Persona istem alanları (profile, scene, sampleContext, style, accent, pacing, constraints) sağlayıcıdan bağımsızdır. Her sağlayıcı bunları nasıl kullanacağına kendisi karar verir:

    Google Gemini

    Persona istem alanlarını yalnızca etkili Google sağlayıcı yapılandırması promptTemplate: "audio-profile-v1" veya personaPrompt ayarladığında bir Gemini TTS istem yapısına sarar. Eski audioProfile ve speakerName alanları hâlâ Google'a özel istem metni olarak başa eklenir. Bir [[tts:text]] bloğunun içindeki [whispers] veya [laughs] gibi satır içi ses etiketleri Gemini transkriptinin içinde korunur; OpenClaw bu etiketleri üretmez.

    OpenAI

    Persona istem alanlarını yalnızca açık bir OpenAI instructions yapılandırılmadığında isteğin instructions alanına eşler. Açık instructions her zaman önceliklidir.

    Diğer sağlayıcılar

    Yalnızca personas.<id>.providers.<provider> altındaki sağlayıcıya özel persona bağlamalarını kullanır. Sağlayıcı kendi persona istemi eşlemesini uygulamadıkça persona istem alanları yok sayılır.

    Geri dönüş ilkesi

    fallbackPolicy, bir personanın denenen sağlayıcı için bağlaması olmadığında davranışı denetler:

    İlke Davranış
    preserve-persona Varsayılan. Sağlayıcıdan bağımsız istem alanları kullanılabilir kalır; sağlayıcı bunları kullanabilir veya yok sayabilir.
    provider-defaults Bu deneme için persona istem hazırlığından çıkarılır; diğer sağlayıcılara geri dönüş sürerken sağlayıcı kendi nötr varsayılanlarını kullanır.
    fail Bu sağlayıcı denemesini reasonCode: "not_configured" ve personaBinding: "missing" ile atlar. Geri dönüş sağlayıcıları yine denenir.

    Tüm TTS isteği yalnızca denenen her sağlayıcı atlandığında veya başarısız olduğunda başarısız olur.

    Talk oturumu sağlayıcı seçimi oturum kapsamındadır. Bir Talk istemcisi sağlayıcı kimliklerini, model kimliklerini, ses kimliklerini ve yerel ayarları talk.catalog içinden seçmeli ve bunları Talk oturumu veya devir isteği üzerinden geçirmelidir. Bir ses oturumu açmak messages.tts veya global Talk sağlayıcı varsayılanlarını değiştirmemelidir.

    Model odaklı yönergeler

    Varsayılan olarak asistan, tek bir yanıt için sesi, modeli veya hızı geçersiz kılmak üzere [[tts:...]] yönergeleri ve yalnızca seste görünmesi gereken ifade ipuçları için isteğe bağlı bir [[tts:text]]...[[/tts:text]] bloğu yayabilir:

    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" olduğunda, sesi tetiklemek için yönergeler zorunludur. Akışlı blok teslimi, bitişik bloklara bölünmüş olsa bile kanal görmeden önce yönergeleri görünür metinden çıkarır.

    modelOverrides.allowProvider: true olmadıkça provider=... yok sayılır. Bir yanıt provider=... bildirdiğinde, o yönergedeki diğer anahtarlar yalnızca o sağlayıcı tarafından ayrıştırılır; desteklenmeyen anahtarlar çıkarılır ve TTS yönergesi uyarıları olarak bildirilir.

    Kullanılabilir yönerge anahtarları:

    • provider (kayıtlı sağlayıcı kimliği; allowProvider: true gerektirir)
    • speakerVoice / speakerVoiceId (eski takma adlar: voice, voiceName, voice_name, google_voice, voiceId)
    • model / google_model
    • stability, similarityBoost, style, speed, useSpeakerBoost
    • vol / volume (MiniMax ses düzeyi, 0-10)
    • pitch (MiniMax tam sayı perde, −12 ile 12; kesirli değerler kırpılır)
    • emotion (Volcengine duygu etiketi)
    • applyTextNormalization (auto|on|off)
    • languageCode (ISO 639-1)
    • seed

    Model geçersiz kılmalarını tamamen devre dışı bırakın:

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

    Diğer düğmeleri yapılandırılabilir tutarken sağlayıcı değiştirmeye izin verin:

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

    Eğik çizgi komutları

    Tek komut /tts. Discord üzerinde OpenClaw ayrıca /voice kaydeder çünkü /tts yerleşik bir Discord komutudur; metin /tts ... yine çalışır.

    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>

    Davranış notları:

    • /tts on, yerel TTS tercihini always olarak yazar; /tts off bunu off olarak yazar.
    • /tts chat on|off|default, geçerli sohbet için oturum kapsamlı bir otomatik TTS geçersiz kılması yazar.
    • /tts persona <id>, yerel persona tercihini yazar; /tts persona off bunu temizler.
    • /tts latest, geçerli oturum transkriptinden en son asistan yanıtını okur ve bunu bir kez ses olarak gönderir. Yinelenen ses gönderimlerini bastırmak için oturum girdisinde yalnızca o yanıtın karmasını saklar.
    • /tts audio, tek seferlik bir sesli yanıt üretir (TTS'yi açmaz).
    • limit ve summary, ana yapılandırmada değil yerel tercihlerde saklanır.
    • /tts status, en son deneme için geri dönüş tanılamalarını içerir: Fallback: <primary> -> <used>, Attempts: ... ve deneme başına ayrıntı (provider:outcome(reasonCode) latency).
    • /status, TTS etkinleştirildiğinde etkin TTS modunu ve yapılandırılmış sağlayıcı, model, ses ve temizlenmiş özel uç nokta meta verilerini gösterir.

    Kullanıcı başına tercihler

    Eğik çizgi komutları yerel geçersiz kılmaları prefsPath konumuna yazar. Varsayılan değer ~/.openclaw/settings/tts.json olur; OPENCLAW_TTS_PREFS ortam değişkeni veya messages.tts.prefsPath ile geçersiz kılın.

    Saklanan alan Etki
    auto Yerel otomatik TTS geçersiz kılması (always, off, …)
    provider Yerel birincil sağlayıcı geçersiz kılması
    persona Yerel persona geçersiz kılması
    maxLength Özet eşiği (varsayılan 1500 karakter)
    summarize Özet anahtarı (varsayılan true)

    Bunlar, bu ana makine için messages.tts ve etkin agents.list[].tts bloğundan gelen etkili yapılandırmayı geçersiz kılar.

    Çıktı biçimleri (sabit)

    TTS ses teslimi kanal yeteneklerine göre yönlendirilir. Kanal Plugin'leri, ses tarzı TTS'nin sağlayıcılardan yerel bir voice-note hedefi istemesi mi yoksa normal audio-file sentezini koruyup yalnızca uyumlu çıktıyı ses teslimi için işaretlemesi mi gerektiğini bildirir.

    • Sesli not destekli kanallar: sesli not yanıtları Opus'u tercih eder (ElevenLabs'ten opus_48000_64, OpenAI'den opus).
      • 48kHz / 64kbps, sesli mesaj için iyi bir denge sağlar.
    • Feishu / WhatsApp: bir sesli not yanıtı MP3/WebM/WAV/M4A veya başka bir olası ses dosyası olarak üretildiğinde, kanal plugin'i yerel sesli mesajı göndermeden önce bunu ffmpeg ile 48kHz Ogg/Opus biçimine dönüştürür. WhatsApp, sonucu Baileys audio yükü üzerinden ptt: true ve audio/ogg; codecs=opus ile gönderir. Dönüştürme başarısız olursa Feishu özgün dosyayı ek olarak alır; WhatsApp ise uyumsuz bir PTT yükü yayımlamak yerine gönderimi başarısız yapar.
    • Diğer kanallar: MP3 (ElevenLabs'ten mp3_44100_128, OpenAI'den mp3).
      • 44.1kHz / 128kbps, konuşma netliği için varsayılan dengedir.
    • MiniMax: normal ses ekleri için MP3 (speech-2.8-hd modeli, 32kHz örnekleme hızı). Kanalın duyurduğu sesli not hedefleri için, kanal dönüştürmeyi duyuruyorsa OpenClaw teslimden önce MiniMax MP3'ünü ffmpeg ile 48kHz Opus'a dönüştürür.
    • Xiaomi MiMo: varsayılan olarak MP3 veya yapılandırıldığında WAV. Kanalın duyurduğu sesli not hedefleri için, kanal dönüştürmeyi duyuruyorsa OpenClaw teslimden önce Xiaomi çıktısını ffmpeg ile 48kHz Opus'a dönüştürür.
    • Yerel CLI: yapılandırılmış outputFormat değerini kullanır. Sesli not hedefleri Ogg/Opus'a dönüştürülür ve telefon çıktısı ffmpeg ile ham 16 kHz mono PCM'ye dönüştürülür.
    • Google Gemini: Gemini API TTS ham 24kHz PCM döndürür. OpenClaw bunu ses ekleri için WAV olarak sarar, sesli not hedefleri için 48kHz Opus'a dönüştürür ve Talk/telefon için PCM'yi doğrudan döndürür.
    • Gradium: ses ekleri için WAV, sesli not hedefleri için Opus ve telefon için 8 kHz'de ulaw_8000.
    • Inworld: normal ses ekleri için MP3, sesli not hedefleri için yerel OGG_OPUS ve Talk/telefon için 22050 Hz'de ham PCM.
    • xAI: varsayılan olarak MP3; responseFormat mp3, wav, pcm, mulaw veya alaw olabilir. OpenClaw xAI'nin toplu REST TTS uç noktasını kullanır ve eksiksiz bir ses eki döndürür; xAI'nin akışlı TTS WebSocket'i bu sağlayıcı yolunda kullanılmaz. Yerel Opus sesli not biçimi bu yol tarafından desteklenmez.
    • Microsoft: microsoft.outputFormat değerini kullanır (varsayılan audio-24khz-48kbitrate-mono-mp3).
      • Paketlenmiş aktarım bir outputFormat kabul eder, ancak tüm biçimler hizmetten kullanılabilir değildir.
      • Çıktı biçimi değerleri Microsoft Speech çıktı biçimlerini izler (Ogg/WebM Opus dahil).
      • Telegram sendVoice OGG/MP3/M4A kabul eder; garantili Opus sesli mesajlara ihtiyacınız varsa OpenAI/ElevenLabs kullanın.
      • Yapılandırılmış Microsoft çıktı biçimi başarısız olursa OpenClaw MP3 ile yeniden dener.

    OpenAI/ElevenLabs çıktı biçimleri kanal başına sabittir (yukarıya bakın).

    Otomatik TTS davranışı

    messages.tts.auto etkinleştirildiğinde OpenClaw:

    • Yanıt zaten yapılandırılmış medya içeriyorsa TTS'yi atlar.
    • Çok kısa yanıtları atlar (10 karakterin altında).
    • Özetler etkinse uzun yanıtları summaryModel (veya agents.defaults.model.primary) kullanarak özetler.
    • Üretilen sesi yanıta ekler.
    • mode: "final" içinde, metin akışı tamamlandıktan sonra akışlı final yanıtları için yine yalnızca sesli TTS gönderir; üretilen medya, normal yanıt ekleriyle aynı kanal medya normalleştirmesinden geçer.

    Yanıt maxLength değerini aşarsa ve özet kapalıysa (veya özet modeli için API anahtarı yoksa), ses atlanır ve normal metin yanıtı gönderilir.

    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

    Kanala göre çıktı biçimleri

    Hedef Biçim
    Feishu / Matrix / Telegram / WhatsApp Sesli not yanıtları Opus'u tercih eder (ElevenLabs'ten opus_48000_64, OpenAI'den opus). 48 kHz / 64 kbps netlik ve boyutu dengeler.
    Diğer kanallar MP3 (ElevenLabs'ten mp3_44100_128, OpenAI'den mp3). Konuşma için varsayılan 44.1 kHz / 128 kbps.
    Talk / telefon Sağlayıcıya özgü PCM (Inworld 22050 Hz, Google 24 kHz) veya telefon için Gradium'dan ulaw_8000.

    Sağlayıcı başına notlar:

    • Feishu / WhatsApp dönüştürme: Bir sesli not yanıtı MP3/WebM/WAV/M4A olarak geldiğinde, kanal plugin'i ffmpeg ile 48 kHz Ogg/Opus'a dönüştürür. WhatsApp, Baileys üzerinden ptt: true ve audio/ogg; codecs=opus ile gönderir. Dönüştürme başarısız olursa: Feishu özgün dosyayı eklemeye geri döner; WhatsApp ise uyumsuz bir PTT yükü yayımlamak yerine gönderimi başarısız yapar.
    • MiniMax / Xiaomi MiMo: Varsayılan MP3 (MiniMax speech-2.8-hd için 32 kHz); ffmpeg aracılığıyla sesli not hedefleri için 48 kHz Opus'a dönüştürülür.
    • Yerel CLI: Yapılandırılmış outputFormat değerini kullanır. Sesli not hedefleri Ogg/Opus'a, telefon çıktısı ham 16 kHz mono PCM'ye dönüştürülür.
    • Google Gemini: Ham 24 kHz PCM döndürür. OpenClaw ekler için WAV olarak sarar, sesli not hedefleri için 48 kHz Opus'a dönüştürür, Talk/telefon için PCM'yi doğrudan döndürür.
    • Inworld: MP3 ekleri, yerel OGG_OPUS sesli not, Talk/telefon için ham PCM 22050 Hz.
    • xAI: Varsayılan olarak MP3; responseFormat mp3|wav|pcm|mulaw|alaw olabilir. xAI'nin toplu REST uç noktasını kullanır — akışlı WebSocket TTS kullanılmaz. Yerel Opus sesli not biçimi desteklenmez.
    • Microsoft: microsoft.outputFormat değerini kullanır (varsayılan audio-24khz-48kbitrate-mono-mp3). Telegram sendVoice OGG/MP3/M4A kabul eder; garantili Opus sesli mesajlara ihtiyacınız varsa OpenAI/ElevenLabs kullanın. Yapılandırılmış Microsoft biçimi başarısız olursa OpenClaw MP3 ile yeniden dener.

    OpenAI ve ElevenLabs çıktı biçimleri yukarıda listelendiği gibi kanal başına sabittir.

    Alan başvurusu

    Top-level messages.tts.*
    auto"off" | "always" | "inbound" | "tagged"

    Otomatik TTS modu. inbound yalnızca gelen bir sesli mesajdan sonra ses gönderir; tagged yalnızca yanıt [[tts:...]] yönergeleri veya bir [[tts:text]] bloğu içerdiğinde ses gönderir.

    enabledboolean

    Eski geçiş anahtarı. openclaw doctor --fix bunu auto değerine taşır.

    mode"final" | "all"default: final

    "all" final yanıtlara ek olarak araç/blok yanıtlarını da içerir.

    providerstring

    Konuşma sağlayıcısı kimliği. Ayarlanmadığında OpenClaw, kayıt otomatik seçim sırasındaki ilk yapılandırılmış sağlayıcıyı kullanır. Eski provider: "edge", openclaw doctor --fix tarafından "microsoft" olarak yeniden yazılır.

    personastring

    personas içinden etkin persona kimliği. Küçük harfe normalleştirilir.

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InBlcnNvbmFzLjxpZA " type="object"> Kararlı konuşulan kimlik. Alanlar: label, description, provider, fallbackPolicy, prompt, providers.<provider>. Bkz. Personalar.

    summaryModelstring

    Otomatik özet için ucuz model; varsayılan agents.defaults.model.primary. provider/model veya yapılandırılmış bir model takma adını kabul eder.

    modelOverridesobject

    Modelin TTS yönergeleri yaymasına izin verin. enabled varsayılan olarak true; allowProvider varsayılan olarak false.

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InByb3ZpZGVycy48aWQ " type="object"> Konuşma sağlayıcısı kimliğine göre anahtarlanmış sağlayıcıya ait ayarlar. Eski doğrudan bloklar (messages.tts.openai, .elevenlabs, .microsoft, .edge) openclaw doctor --fix tarafından yeniden yazılır; yalnızca messages.tts.providers.<id> kaydedin.

    maxTextLengthnumber

    TTS giriş karakterleri için kesin üst sınır. Aşılırsa /tts audio başarısız olur.

    timeoutMsnumber

    Milisaniye cinsinden istek zaman aşımı.

    prefsPathstring

    Yerel tercih JSON yolunu geçersiz kılın (sağlayıcı/sınır/özet). Varsayılan ~/.openclaw/settings/tts.json.

    Azure Speech

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg Ortam: AZURE_SPEECH_KEY, AZURE_SPEECH_API_KEY veya SPEECH_KEY. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InJlZ2lvbiIgdHlwZT0ic3RyaW5nIg Azure Speech bölgesi (ör. eastus). Ortam: AZURE_SPEECH_REGION veya SPEECH_REGION. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImVuZHBvaW50IiB0eXBlPSJzdHJpbmci İsteğe bağlı Azure Speech uç noktası geçersiz kılması (baseUrl takma adı). OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZSIgdHlwZT0ic3RyaW5nIg Azure ses ShortName. Varsayılan en-US-JennyNeural. Eski takma ad: voice. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImxhbmciIHR5cGU9InN0cmluZyI SSML dil kodu. Varsayılan en-US. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im91dHB1dEZvcm1hdCIgdHlwZT0ic3RyaW5nIg Standart ses için Azure X-Microsoft-OutputFormat. Varsayılan audio-24khz-48kbitrate-mono-mp3. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InZvaWNlTm90ZU91dHB1dEZvcm1hdCIgdHlwZT0ic3RyaW5nIg Sesli not çıktısı için Azure X-Microsoft-OutputFormat. Varsayılan ogg-24khz-16bit-mono-opus. OPENCLAW_DOCS_MARKER:paramClose:

    ElevenLabs

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg ELEVENLABS_API_KEY veya XI_API_KEY değerine geri döner. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im1vZGVsIiB0eXBlPSJzdHJpbmci Model kimliği (ör. eleven_multilingual_v2, eleven_v3). OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZUlkIiB0eXBlPSJzdHJpbmci ElevenLabs ses kimliği. Eski takma ad: voiceId. OPENCLAW_DOCS_MARKER:paramClose:

    voiceSettingsobject

    stability, similarityBoost, style (her biri 0..1), useSpeakerBoost (true|false), speed (0.5..2.0, 1.0 = normal).

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

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Imxhbmd1YWdlQ29kZSIgdHlwZT0ic3RyaW5nIg 2 harfli ISO 639-1 (ör. en, de). OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNlZWQiIHR5cGU9Im51bWJlciI En iyi çaba düzeyinde determinizm için 0..4294967295 tam sayısı. OPENCLAW_DOCS_MARKER:paramClose:

    baseUrlstring
    Google Gemini

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg GEMINI_API_KEY / GOOGLE_API_KEY değerine geri döner. Atlanırsa TTS, ortam geri dönüşünden önce models.providers.google.apiKey değerini yeniden kullanabilir. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im1vZGVsIiB0eXBlPSJzdHJpbmci Gemini TTS modeli. Varsayılan gemini-3.1-flash-tts-preview. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZSIgdHlwZT0ic3RyaW5nIg Gemini önceden oluşturulmuş ses adı. Varsayılan Kore. Eski takma adlar: voiceName, voice. OPENCLAW_DOCS_MARKER:paramClose:

    audioProfilestring
    speakerNamestring

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InByb21wdFRlbXBsYXRlIiB0eXBlPSciYXVkaW8tcHJvZmlsZS12MSIn Etkin persona istem alanlarını deterministik bir Gemini TTS istem yapısına sarmak için audio-profile-v1 olarak ayarlayın. OPENCLAW_DOCS_MARKER:paramClose:

    personaPromptstring

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI Yalnızca https://generativelanguage.googleapis.com kabul edilir. OPENCLAW_DOCS_MARKER:paramClose:

    Gradium

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg Ortam: GRADIUM_API_KEY. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI Varsayılan https://api.gradium.ai. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZUlkIiB0eXBlPSJzdHJpbmci Varsayılan Emma (YTpq7expH9539ERJ). Eski takma ad: voiceId. OPENCLAW_DOCS_MARKER:paramClose:

    Inworld

    Birincil Inworld

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg Ortam: INWORLD_API_KEY. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI Varsayılan https://api.inworld.ai. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im1vZGVsSWQiIHR5cGU9InN0cmluZyI Varsayılan inworld-tts-1.5-max. Ayrıca: inworld-tts-1.5-mini, inworld-tts-1-max, inworld-tts-1. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZUlkIiB0eXBlPSJzdHJpbmci Varsayılan Sarah. Eski takma ad: voiceId. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InRlbXBlcmF0dXJlIiB0eXBlPSJudW1iZXIi Örnekleme sıcaklığı 0..2. OPENCLAW_DOCS_MARKER:paramClose:

    Local CLI (tts-local-cli)
    commandstring

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFyZ3MiIHR5cGU9InN0cmluZ1tdIg Komut bağımsız değişkenleri. {{Text}}, {{OutputPath}}, {{OutputDir}}, {{OutputBase}} yer tutucularını destekler. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im91dHB1dEZvcm1hdCIgdHlwZT0nIm1wMyIgfCAib3B1cyIgfCAid2F2Iic Beklenen CLI çıktı biçimi. Ses ekleri için varsayılan mp3. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InRpbWVvdXRNcyIgdHlwZT0ibnVtYmVyIg Milisaniye cinsinden komut zaman aşımı. Varsayılan 120000. OPENCLAW_DOCS_MARKER:paramClose:

    cwdstring
    env"Record<string,
    Microsoft (no API key)
    enabledbooleandefault: true

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZSIgdHlwZT0ic3RyaW5nIg Microsoft neural voice adı (örn. en-US-MichelleNeural). Eski takma ad: voice. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImxhbmciIHR5cGU9InN0cmluZyI Dil kodu (örn. en-US). OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im91dHB1dEZvcm1hdCIgdHlwZT0ic3RyaW5nIg Microsoft çıktı biçimi. Varsayılan audio-24khz-48kbitrate-mono-mp3. Tüm biçimler paketlenmiş Edge destekli aktarım tarafından desteklenmez. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InJhdGUgLyBwaXRjaCAvIHZvbHVtZSIgdHlwZT0ic3RyaW5nIg Yüzde dizeleri (örn. +10%, -5%). OPENCLAW_DOCS_MARKER:paramClose:

    saveSubtitlesboolean
    proxystring
    timeoutMsnumber

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImVkZ2UuKiIgdHlwZT0ib2JqZWN0IiBkZXByZWNhdGVk Eski takma ad. Kalıcı yapılandırmayı providers.microsoft olarak yeniden yazmak için openclaw doctor --fix çalıştırın. OPENCLAW_DOCS_MARKER:paramClose:

    MiniMax

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg MINIMAX_API_KEY değerine geri döner. MINIMAX_OAUTH_TOKEN, MINIMAX_CODE_PLAN_KEY veya MINIMAX_CODING_API_KEY üzerinden Token Plan kimlik doğrulaması. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI Varsayılan https://api.minimax.io. Ortam: MINIMAX_API_HOST. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im1vZGVsIiB0eXBlPSJzdHJpbmci Varsayılan speech-2.8-hd. Ortam: MINIMAX_TTS_MODEL. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZUlkIiB0eXBlPSJzdHJpbmci Varsayılan English_expressive_narrator. Ortam: MINIMAX_TTS_VOICE_ID. Eski takma ad: voiceId. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWVkIiB0eXBlPSJudW1iZXIi 0.5..2.0. Varsayılan 1.0. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InZvbCIgdHlwZT0ibnVtYmVyIg (0, 10]. Varsayılan 1.0. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InBpdGNoIiB0eXBlPSJudW1iZXIi Tam sayı -12..12. Varsayılan 0. Kesirli değerler istekten önce kırpılır. OPENCLAW_DOCS_MARKER:paramClose:

    OpenAI

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg OPENAI_API_KEY değerine geri döner. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im1vZGVsIiB0eXBlPSJzdHJpbmci OpenAI TTS model kimliği (örn. gpt-4o-mini-tts). OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZSIgdHlwZT0ic3RyaW5nIg Ses adı (örn. alloy, cedar). Eski takma ad: voice. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Imluc3RydWN0aW9ucyIgdHlwZT0ic3RyaW5nIg Açık OpenAI instructions alanı. Ayarlandığında persona prompt alanları otomatik olarak eşlenmez. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImV4dHJhQm9keSAvIGV4dHJhX2JvZHkiIHR5cGU9IlJlY29yZDxzdHJpbmcsIHVua25vd24 ">Oluşturulan OpenAI TTS alanlarından sonra /audio/speech istek gövdelerine birleştirilen ek JSON alanları. Bunu, lang gibi sağlayıcıya özgü anahtarlar gerektiren Kokoro gibi OpenAI uyumlu uç noktalar için kullanın; güvenli olmayan prototype anahtarları yok sayılır. OPENCLAW_DOCS_MARKER:paramClose:

    baseUrlstring

    OpenAI TTS uç noktasını geçersiz kılın. Çözüm sırası: yapılandırma → OPENAI_TTS_BASE_URLhttps://api.openai.com/v1. Varsayılan olmayan değerler OpenAI uyumlu TTS uç noktaları olarak ele alınır; bu nedenle özel model ve ses adları kabul edilir.

    OpenRouter

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg Ortam: OPENROUTER_API_KEY. models.providers.openrouter.apiKey yeniden kullanılabilir. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI Varsayılan https://openrouter.ai/api/v1. Eski https://openrouter.ai/v1 normalleştirilir. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im1vZGVsIiB0eXBlPSJzdHJpbmci Varsayılan hexgrad/kokoro-82m. Takma ad: modelId. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZSIgdHlwZT0ic3RyaW5nIg Varsayılan af_alloy. Eski takma adlar: voice, voiceId. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InJlc3BvbnNlRm9ybWF0IiB0eXBlPScibXAzIiB8ICJwY20iJw Varsayılan mp3. OPENCLAW_DOCS_MARKER:paramClose:

    speednumber
    Volcengine (BytePlus Seed Speech)

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg Ortam: VOLCENGINE_TTS_API_KEY veya BYTEPLUS_SEED_SPEECH_API_KEY. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InJlc291cmNlSWQiIHR5cGU9InN0cmluZyI Varsayılan seed-tts-1.0. Ortam: VOLCENGINE_TTS_RESOURCE_ID. Projenizin TTS 2.0 yetkisi olduğunda seed-tts-2.0 kullanın. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwcEtleSIgdHlwZT0ic3RyaW5nIg Uygulama anahtarı üst bilgisi. Varsayılan aGjiRDfUWi. Ortam: VOLCENGINE_TTS_APP_KEY. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI Seed Speech TTS HTTP uç noktasını geçersiz kılın. Ortam: VOLCENGINE_TTS_BASE_URL. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZSIgdHlwZT0ic3RyaW5nIg Ses türü. Varsayılan en_female_anna_mars_bigtts. Ortam: VOLCENGINE_TTS_VOICE. Eski takma ad: voice. OPENCLAW_DOCS_MARKER:paramClose:

    speedRationumber
    emotionstring

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwcElkIC8gdG9rZW4gLyBjbHVzdGVyIiB0eXBlPSJzdHJpbmciIGRlcHJlY2F0ZWQ Eski Volcengine Speech Console alanları. Ortam: VOLCENGINE_TTS_APPID, VOLCENGINE_TTS_TOKEN, VOLCENGINE_TTS_CLUSTER (varsayılan volcano_tts). OPENCLAW_DOCS_MARKER:paramClose:

    xAI

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg Ortam: XAI_API_KEY. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI Varsayılan https://api.x.ai/v1. Ortam: XAI_BASE_URL. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZUlkIiB0eXBlPSJzdHJpbmci Varsayılan eve. Canlı sesler: ara, eve, leo, rex, sal, una. Eski takma ad: voiceId. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Imxhbmd1YWdlIiB0eXBlPSJzdHJpbmci BCP-47 dil kodu veya auto. Varsayılan en. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InJlc3BvbnNlRm9ybWF0IiB0eXBlPScibXAzIiB8ICJ3YXYiIHwgInBjbSIgfCAibXVsYXciIHwgImFsYXciJw Varsayılan mp3. OPENCLAW_DOCS_MARKER:paramClose:

    speednumber
    Xiaomi MiMo

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg Ortam: XIAOMI_API_KEY. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI Varsayılan https://api.xiaomimimo.com/v1. Ortam: XIAOMI_BASE_URL. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im1vZGVsIiB0eXBlPSJzdHJpbmci Varsayılan mimo-v2.5-tts. Ortam: XIAOMI_TTS_MODEL. mimo-v2-tts ve mimo-v2.5-tts-voicedesign seçeneklerini de destekler. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZSIgdHlwZT0ic3RyaW5nIg Hazır ses modelleri için varsayılan mimo_default. Ortam: XIAOMI_TTS_VOICE. Eski takma ad: voice. mimo-v2.5-tts-voicedesign için gönderilmez. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImZvcm1hdCIgdHlwZT0nIm1wMyIgfCAid2F2Iic Varsayılan mp3. Ortam: XIAOMI_TTS_FORMAT. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InN0eWxlIiB0eXBlPSJzdHJpbmci Kullanıcı mesajı olarak gönderilen isteğe bağlı doğal dil stil talimatı; seslendirilmez. mimo-v2.5-tts-voicedesign için bu, ses tasarımı promptudur; atlanırsa OpenClaw bir varsayılan sağlar. OPENCLAW_DOCS_MARKER:paramClose:

    Agent aracı

    tts aracı metni konuşmaya dönüştürür ve yanıt teslimi için bir ses eki döndürür. Feishu, Matrix, Telegram ve WhatsApp üzerinde ses, dosya eki yerine sesli mesaj olarak teslim edilir. Feishu ve WhatsApp, ffmpeg kullanılabilir olduğunda bu yolda Opus olmayan TTS çıktısını dönüştürebilir.

    WhatsApp, sesi Baileys üzerinden PTT ses notu olarak (audio ile ptt: true) gönderir ve istemciler ses notlarında altyazıları tutarlı şekilde işlemediği için görünür metni PTT sesinden ayrı olarak gönderir.

    Araç isteğe bağlı channel ve timeoutMs alanlarını kabul eder; timeoutMs, milisaniye cinsinden çağrı başına sağlayıcı istek zaman aşımıdır. Çağrı başına değerler messages.tts.timeoutMs değerini geçersiz kılar; yapılandırılmış TTS zaman aşımları, Plugin tarafından yazılmış sağlayıcı varsayılanlarını geçersiz kılar.

    Gateway RPC

    Yöntem Amaç
    tts.status Geçerli TTS durumunu ve son denemeyi oku.
    tts.enable Yerel otomatik tercihi always olarak ayarla.
    tts.disable Yerel otomatik tercihi off olarak ayarla.
    tts.convert Tek seferlik metin → ses.
    tts.setProvider Yerel sağlayıcı tercihini ayarla.
    tts.setPersona Yerel persona tercihini ayarla.
    tts.providers Yapılandırılmış sağlayıcıları ve durumu listele.

    Hizmet bağlantıları

    İlgili

    Was this useful?
    On this page

    On this page