Tools
Metinden konuşmaya
OpenClaw, giden yanıtları 14 konuşma sağlayıcısı üzerinden sese dönüştürür: Feishu, Matrix, Telegram ve WhatsApp'ta yerel sesli mesajlar; diğer her yerde ses ekleri; telefon ve Talk için PCM/Ulaw akışları.
TTS, Talk'ın stt-tts modunun konuşma çıktısı yarısıdır (talk.speak çağrıları da
aynı sentez yolunu kullanır). Sağlayıcıya özgü realtime Talk oturumları konuşmayı
gerçek zamanlı sağlayıcının içinde sentezler; transcription oturumları ise hiçbir zaman
sesli bir asistan yanıtı sentezlemez.
Hızlı başlangıç
Bir sağlayıcı seçin
OpenAI ve ElevenLabs, barındırılan seçenekler arasında en güvenilir olanlardır. Microsoft ve Yerel CLI, API anahtarı olmadan çalışır. Tam liste için sağlayıcı matrisine bakın.
API anahtarını ayarlayın
Sağlayıcınızın ortam değişkenini dışa aktarın (örneğin OPENAI_API_KEY,
ELEVENLABS_API_KEY). Microsoft ve Yerel CLI anahtar gerektirmez.
Yapılandırmada etkinleştirin
tts.auto: "always" ve tts.provider değerlerini ayarlayın:
{ tts: { auto: "always", provider: "elevenlabs", },}Sohbette deneyin
/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 telefon desteği. |
| DeepInfra | DEEPINFRA_API_KEY |
OpenAI uyumlu TTS. Varsayılanı hexgrad/Kokoro-82M. |
| ElevenLabs | ELEVENLABS_API_KEY veya XI_API_KEY |
Ses klonlama, çok dillilik, seed aracılığıyla deterministik çalışma; Discord sesli oynatımı için akış halinde iletilir. |
| Google Gemini | GEMINI_API_KEY veya GOOGLE_API_KEY |
Gemini API toplu TTS; promptTemplate: "audio-profile-v1" aracılığıyla kişiliğe duyarlıdır. |
| Gradium | GRADIUM_API_KEY |
Sesli not ve telefon çıktısı. |
| Inworld | INWORLD_API_KEY |
Akışlı TTS API'si. Yerel Opus sesli not ve PCM telefon desteği. |
| Yerel CLI | yok | Yapılandırılmış yerel bir TTS komutunu çalıştırır. |
| Microsoft | yok | node-edge-tts üzerinden herkese açık Edge sinirsel TTS. En iyi çaba esaslıdır, SLA yoktur. |
| MiniMax | MINIMAX_API_KEY (veya Token Planı: MINIMAX_OAUTH_TOKEN, MINIMAX_CODE_PLAN_KEY, MINIMAX_CODING_API_KEY) |
T2A v2 API'si. Varsayılanı speech-2.8-hd. |
| OpenAI | OPENAI_API_KEY |
Otomatik özet için de kullanılır; instructions kişiliğini destekler. |
| 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'si. |
| Vydra | VYDRA_API_KEY |
Ortak 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 tamamlamaları üzerinden MiMo TTS. |
Birden fazla sağlayıcı yapılandırılmışsa önce seçilen sağlayıcı kullanılır,
diğerleri ise yedek seçeneklerdir. Otomatik özet summaryModel (veya
agents.defaults.model.primary) kullanır; bu nedenle özetleri etkin tutarsanız
bu sağlayıcının kimlik doğrulamasının da yapılması gerekir.
Yapılandırma
TTS yapılandırması, ~/.openclaw/openclaw.json içindeki tts altında bulunur. Bir
ön ayar seçip sağlayıcı bloğunu uyarlayın. Aşağıda gösterilen speakerVoice/speakerVoiceId
alanları standarttır; her sağlayıcının kendi voice/voiceId/
voiceName alan adları eski takma adlar olarak çalışmaya devam eder.
Azure Speech
{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
{tts: {auto: "always",provider: "elevenlabs",providers: { elevenlabs: { apiKey: "${ELEVENLABS_API_KEY}", model: "eleven_multilingual_v2", speakerVoiceId: "EXAVITQu4vr4xnSDxMaL", },},},}Google Gemini
{tts: {auto: "always",provider: "google",providers: { google: { apiKey: "${GEMINI_API_KEY}", model: "gemini-3.1-flash-tts-preview", speakerVoice: "Kore", // İsteğe bağlı doğal dil stil istemleri: // audioProfile: "Sakin bir podcast sunucusu tonuyla konuş.", // speakerName: "Alex", },},},}Gradium
{tts: {auto: "always",provider: "gradium",providers: { gradium: { apiKey: "${GRADIUM_API_KEY}", speakerVoiceId: "YTpq7expH9539ERJ", },},},}Inworld
{tts: {auto: "always",provider: "inworld",providers: { inworld: { apiKey: "${INWORLD_API_KEY}", modelId: "inworld-tts-1.5-max", speakerVoiceId: "Sarah", temperature: 0.7, },},},}Yerel CLI
{tts: {auto: "always",provider: "tts-local-cli",providers: { "tts-local-cli": { command: "say", args: ["-o", "{{OutputPath}}", "{{Text}}"], outputFormat: "wav", timeoutMs: 120000, },},},}Microsoft (anahtarsız)
{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
{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
{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
{tts: {auto: "always",provider: "openrouter",providers: { openrouter: { apiKey: "${OPENROUTER_API_KEY}", model: "hexgrad/kokoro-82m", speakerVoice: "af_alloy", responseFormat: "mp3", },},},}Volcengine
{tts: {auto: "always",provider: "volcengine",providers: { volcengine: { apiKey: "${VOLCENGINE_TTS_API_KEY}", resourceId: "seed-tts-1.0", speakerVoice: "en_female_anna_mars_bigtts", },},},}xAI
{tts: {auto: "always",provider: "xai",providers: { xai: { apiKey: "${XAI_API_KEY}", speakerVoiceId: "eve", language: "en", responseFormat: "mp3", },},},}Xiaomi MiMo
{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 alanını atlayın ve style değerini
ses tasarımı istemi olarak ayarlayın. OpenClaw bu istemi TTS user mesajı olarak gönderir
ve voicedesign modeli için audio.voice göndermez.
Agent başına ses geçersiz kılmaları
Bir agent'ın farklı bir sağlayıcı, ses, model, kişilik veya otomatik TTS moduyla konuşması
gerektiğinde agents.entries.*.tts kullanın. Agent bloğu tts üzerine
derin birleştirme uygular; böylece sağlayıcı kimlik bilgileri genel sağlayıcı yapılandırmasında kalabilir:
{ tts: { auto: "always", provider: "elevenlabs", providers: { elevenlabs: { apiKey: "${ELEVENLABS_API_KEY}", model: "eleven_multilingual_v2" }, }, }, agents: { list: [ { id: "reader", tts: { providers: { elevenlabs: { speakerVoiceId: "EXAVITQu4vr4xnSDxMaL" }, }, }, }, ], },}Aracı başına bir personayı sabitlemek için sağlayıcı yapılandırmasının yanında
agents.entries.*.tts.persona ayarını yapın — bu ayar yalnızca söz konusu aracı için genel tts.persona ayarını geçersiz kılar.
Otomatik yanıtlar, /tts audio, /tts status ve
tts aracı aracı için öncelik sırası:
tts- etkin
agents.entries.*.tts - kanal
channels.<channel>.ttsdesteklediğinde kanal geçersiz kılması - kanal
channels.<channel>.accounts.<id>.ttsilettiğinde hesap geçersiz kılması - bu ana makineye ait yerel
/ttstercihleri - model geçersiz kılmaları etkinleştirildiğinde satır içi
[[tts:...]]yönergeleri
Kanal ve hesap geçersiz kılmaları, tts ile aynı yapıyı kullanır ve
önceki katmanların üzerine derin birleştirme uygular; böylece paylaşılan sağlayıcı kimlik bilgileri
tts içinde kalabilirken bir kanal veya bot hesabı yalnızca konuşmacı sesini, modeli, personayı
ya da otomatik modu değiştirebilir:
{ 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 belirlenimsel olarak uygulanabilen kararlı bir sözlü kimliktir. Belirli bir sağlayıcıyı tercih edebilir, sağlayıcıdan bağımsız istem amacını tanımlayabilir ve sesler, modeller, istem şablonları, seed değerleri ve ses ayarları için sağlayıcıya özgü bağlamalar taşıyabilir.
Minimal persona
{ tts: { auto: "always", persona: "narrator", personas: { narrator: { label: "Narrator", provider: "elevenlabs", providers: { elevenlabs: { speakerVoiceId: "EXAVITQu4vr4xnSDxMaL", modelId: "eleven_multilingual_v2", }, }, }, }, },}Tam persona (sağlayıcıya özgü şekillendirme)
{ tts: { auto: "always", persona: "alfred", personas: { alfred: { label: "Alfred", description: "Dry, warm British butler narrator.", provider: "google", fallbackPolicy: "preserve-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 belirlenimsel olarak seçilir:
- ayarlanmışsa yerel
/tts persona <id>tercihi. - ayarlanmışsa
tts.persona. - Persona yok.
Sağlayıcı seçimi, açık seçimlere öncelik vererek çalışır:
- Doğrudan geçersiz kılmalar (CLI, Gateway, Talk, izin verilen TTS yönergeleri).
- Yerel
/tts provider <id>tercihi. - Etkin personanın
providerdeğeri. tts.provider.- Kayıt defterinden otomatik seçim.
OpenClaw, her sağlayıcı denemesinde yapılandırmaları şu sırayla birleştirir:
tts.providers.<id>tts.personas.<persona>.providers.<id>- Güvenilir istek geçersiz kılmaları
- İzin verilen, model tarafından yayımlanmış TTS yönergesi geçersiz kılmaları
Özel persona şekillendirme
Sağlayıcıdan bağımsız personas.<id>.prompt.* yapılandırması kullanımdan kaldırılmıştır. Doctor bu
alanları kaldırır ve konuşma sağlayıcısı bağlantı noktasına yönlendirir. Yerleşik sağlayıcı
ayarlarını personas.<id>.providers.<provider> altına yerleştirin (örneğin Google
personaPrompt veya OpenAI instructions). Özel şekillendirme için prepareSynthesis(ctx) içeren bir
konuşma sağlayıcısı plugini uygulayın ve synthesize() çalışmadan önce ayarlanmış metni,
sağlayıcı yapılandırmasını veya geçersiz kılmaları döndürün. Bu yaklaşım, etkileyici
istem oluşturmayı istek semantiğinin bilindiği sağlayıcı kodunda tutar.
Geri dönüş politikası
fallbackPolicy, bir personanın denenen sağlayıcı için bağlaması olmadığında
davranışı denetler:
| Politika | 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 |
Persona, bu denemenin istem hazırlığından çıkarılır; diğer sağlayıcılara geri dönüş devam ederken sağlayıcı kendi nötr varsayılanlarını kullanır. |
fail |
Bu sağlayıcı denemesini reasonCode: "not_configured" ve personaBinding: "missing" ile atlayın. Geri dönüş sağlayıcıları yine denenir. |
TTS isteğinin tamamı yalnızca denenen tüm sağlayıcılar 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 iletmelidir. Bir ses oturumunun açılması
tts ya da genel Talk sağlayıcı varsayılanlarını değiştirmemelidir.
Model güdümlü 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 etkileyici ipuçları için isteğe bağlı bir [[tts:text]]...[[/tts:text]] bloğu yayımlayabilir:
Buyurun. [[tts:speakerVoiceId=pMsXgVXv3BLzUgSXRplE model=eleven_v3 speed=1.1]][[tts:text]](güler) Şarkıyı bir kez daha oku.[[/tts:text]]tts.auto, "tagged" olduğunda sesi tetiklemek için yönergeler zorunludur.
Akışlı blok teslimi, bitişik bloklara bölünmüş olsalar bile kanal görmeden önce
yönergeleri görünür metinden çıkarır.
provider=..., modelOverrides.allowProvider: true olmadığı sürece yok sayılır. Bir
yanıt provider=... bildirdiğinde, bu yönergedeki diğer anahtarlar
yalnızca söz konusu 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: truegerektirir)speakerVoice/speakerVoiceId(eski diğer adlar:voice,voiceName,voice_name,google_voice,voiceId)model/google_modelstability,similarityBoost,style,speed,useSpeakerBoostvol/volume(MiniMax ses düzeyi,(0, 10])pitch(MiniMax tam sayı perde değeri, −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ırakma:
{ messages: { tts: { modelOverrides: { enabled: false } } } }Diğer ayarları yapılandırılabilir tutarken sağlayıcı değiştirmeye izin verme:
{ 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 olarak /tts ... yine çalışır.
/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 tercihinialwayskonumuna yazar;/tts offiseoffkonumuna 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 offbunu temizler./tts latest, geçerli oturum dökümündeki en son asistan yanıtını okur ve bir kez ses olarak gönderir. Yinelenen ses gönderimlerini önlemek için oturum girdisinde yalnızca bu yanıtın karmasını saklar./tts audio, tek seferlik bir sesli yanıt oluşturur (TTS'yi etkinleştirmez)./tts limit <chars>, 100–4096 aralığını kabul eder (4096, Telegram açıklama/mesaj üst sınırıdır); bu aralığın dışındaki değerler reddedilir.limitvesummary, ana yapılandırmada değil yerel tercihlerde saklanır./tts status, son denemeye ait 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 yapılandırılmış sağlayıcı, model, ses ve temizlenmiş özel uç nokta meta verileriyle birlikte etkin TTS modunu gösterir.
Kullanıcı başına tercihler
Eğik çizgi komutları, yerel geçersiz kılmaları TTS tercihleri yoluna yazar. Varsayılan değer
~/.openclaw/settings/tts.json; bunu OPENCLAW_TTS_PREFS ile geçersiz kılın. Doctor,
kullanımdan kaldırılmış genel tts.prefsPath değerini paylaşılan makine durumuna taşır.
Gelişmiş çok aracılı kurulumlarda aracılar kasıtlı olarak ayrı tercih depoları kullandığında
agents.entries.<id>.tts.prefsPath ayarı yine yapılabilir.
| 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 |
Özetleme/kırpma eşiği (varsayılan 1500 karakter, /tts limit aralığı 100–4096) |
summarize |
Özetleme açma/kapama ayarı (varsayılan true) |
Bunlar, tts ile söz konusu ana makinenin etkin
agents.entries.*.tts bloğundan elde edilen etkili yapılandırmayı geçersiz kılar.
Çıktı biçimleri
TTS ses teslimi kanal yetenekleri tarafından yönlendirilir. Kanal pluginleri,
ses tarzı TTS'nin sağlayıcılardan yerel bir voice-note hedefi istemesi mi
yoksa normal audio-file sentezini sürdürmesi mi gerektiğini ve kanalın
yerel olmayan çıktıyı göndermeden önce dönüştürüp dönüştürmediğini bildirir.
| Hedef | Biçim |
|---|---|
| Feishu / Matrix / Telegram / WhatsApp | Sesli not yanıtlarında tercihen Opus kullanılır (ElevenLabs için opus_48000_64, OpenAI için opus). 48 kHz / 64 kbps, netlik ile boyut arasında denge sağlar. |
| Diğer kanallar | MP3 (ElevenLabs için mp3_44100_128, OpenAI için mp3). 44.1 kHz / 128 kbps, konuşma için varsayılan dengeyi sağlar. |
| 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ıya özgü notlar:
- Feishu / WhatsApp kod dönüştürme: Sesli not yanıtı MP3/WebM/WAV/M4A veya başka bir olası ses dosyası olarak geldiğinde, kanal Plugin'i yerel sesli mesajı göndermeden önce dosyayı
ffmpeg(libopus, 64 kbps) ile 48 kHz Ogg/Opus biçimine dönüştürür. WhatsApp, sonucuptt: trueveaudio/ogg; codecs=opusile Baileysaudioyükü üzerinden gönderir. Kod dönüştürme başarısız olduğunda: Feishu hatayı yakalar ve özgün dosyayı düz bir ek olarak göndermeye geri döner; WhatsApp'ta geri dönüş yoktur, bu nedenle uyumsuz bir PTT yükü yayımlamak yerine gönderimin kendisi başarısız olur. - MiniMax: Normal ses ekleri için MP3 (
speech-2.8-hdmodeli, 32 kHz örnekleme hızı); kanalın sesli not desteği bildirdiği hedefler içinffmpegile 48 kHz Opus biçimine dönüştürülür. - Xiaomi MiMo: Varsayılan olarak MP3 veya yapılandırıldığında WAV; kanalın sesli not desteği bildirdiği hedefler için
ffmpegile 48 kHz Opus biçimine dönüştürülür. - Yerel CLI: Yapılandırılmış
outputFormatdeğerini kullanır. Sesli not hedefleri Ogg/Opus biçimine, telefon çıktısı iseffmpegile ham 16 kHz mono PCM biçimine dönüştürülür. - Google Gemini: Ham 24 kHz PCM döndürür. OpenClaw, ses ekleri için bunu WAV olarak sarmalar, sesli not hedefleri için 48 kHz Opus biçimine dönüştürür ve Talk/telefon için doğrudan PCM 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_OPUSve Talk/telefon için 22050 Hz'de hamPCM. - xAI: Varsayılan olarak MP3; ses dosyası sentezi, hem arabelleğe alınan hem de akış çıktısı için
mp3,wav,pcm,mulawveyaalawkullanabilir. xAI'ınpcm,mulawvealawçıktıları başlıksız ham ses olduğundan, sesli not hedefleri akış için MP3 ve arabelleğe alınan geri dönüş için MP3 kullanır. Arabelleğe alınan sentez, xAI'ın toplu REST/v1/ttsuç noktasını kullanır;textToSpeechStreamyerelwss://api.x.ai/v1/ttskullanır. Bu, gerçek zamanlı ses sözleşmesi değildir. Yerel Opus sesli not biçimi desteklenmez. - Microsoft:
microsoft.outputFormatkullanır (varsayılanaudio-24khz-48kbitrate-mono-mp3).- Paketle birlikte gelen taşıma, bir
outputFormatkabul eder ancak hizmette tüm biçimler kullanılamaz. - Çıktı biçimi değerleri Microsoft Speech çıktı biçimlerini izler (Ogg/WebM Opus dâhil).
- Telegram
sendVoice, OGG/MP3/M4A kabul eder; Opus sesli mesajlarının garanti edilmesi gerekiyorsa OpenAI/ElevenLabs kullanın. - Yapılandırılmış Microsoft çıktı biçimi başarısız olursa OpenClaw MP3 ile yeniden dener.
- Açık bir ses geçersiz kılması ayarlanmadığında ve varsayılan İngilizce ses kullanıldığında, yanıt metninde CJK karakterleri baskınsa OpenClaw otomatik olarak Çince bir sinirsel sese (
zh-CN-XiaoxiaoNeural,zh-CNyerel ayarı) geçer.
- Paketle birlikte gelen taşıma, bir
OpenAI ve ElevenLabs çıktı biçimleri, yukarıda listelendiği şekilde kanal başına sabittir.
Otomatik TTS davranışı
tts.auto etkinleştirildiğinde OpenClaw:
- Yanıt zaten yapılandırılmış medya içeriyorsa TTS'yi atlar.
- Çok kısa yanıtları (10 karakterden az) atlar.
- Özetler etkinleştirildiğinde uzun yanıtları
summaryModel(veyaagents.defaults.model.primary) kullanarak özetler. - Oluşturulan sesi yanıta ekler.
mode: "final"içinde, metin akışı tamamlandıktan sonra akışla iletilen son yanıtlar için yine de yalnızca ses içeren TTS gönderir; oluşturulan medya, normal yanıt ekleriyle aynı kanal medya normalleştirmesinden geçer.
Yanıt maxLength değerini aşarsa OpenClaw sesi hiçbir zaman tamamen atlamaz:
- Özet açık (varsayılan) ve bir özet modeli kullanılabiliyorsa: metni
yaklaşık
maxLengthkaraktere özetler, ardından özeti sentezler. - Özet kapalıysa, özetleme başarısız olursa veya özet modeli için API anahtarı
yoksa: metni
maxLengthkaraktere kısaltır ve kısaltılmış metni sentezler.
Yanıt -> TTS etkin mi? hayır -> metni gönder evet -> medya içeriyor mu / kısa mı? evet -> metni gönder hayır -> uzunluk > sınır mı? hayır -> TTS -> sesi ekle evet -> özet etkin ve kullanılabilir mi? hayır -> kısalt -> TTS -> sesi ekle evet -> özetle -> TTS -> sesi ekleAlan başvurusu
Üst düzey 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.
enabledbooleanEski anahtar. openclaw doctor --fix bunu auto değerine geçirir.
mode"final" | "all"default: final"all", son yanıtlara ek olarak araç/blok yanıtlarını da içerir.
providerstringKonuşma sağlayıcısı kimliği. Ayarlanmadığında OpenClaw, kayıt defterinin 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.
personastringpersonas içindeki etkin persona kimliği. Küçük harfe normalleştirilir.
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InBlcnNvbmFzLjxpZA
" type="object">
Kararlı sözlü kimlik. Alanlar: label, description, provider, fallbackPolicy, prompt, providers.<provider>. Bkz. Personalar.
summaryModelstringOtomatik özet için düşük maliyetli model; varsayılanı agents.defaults.model.primary. provider/model veya yapılandırılmış bir model diğer adını kabul eder.
modelOverridesobjectModelin TTS yönergeleri üretmesine izin verir. enabled varsayılan olarak true; allowProvider varsayılan olarak false değerini kullanır.
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InByb3ZpZGVycy48aWQ
" type="object">
Konuşma sağlayıcısı kimliğine göre anahtarlanan, sağlayıcıya ait ayarlar. Eski doğrudan bloklar (tts.openai, .elevenlabs, .microsoft, .edge) openclaw doctor --fix tarafından yeniden yazılır; yalnızca tts.providers.<id> işleyin.
maxTextLengthnumberdefault: 4096TTS giriş karakterleri için kesin üst sınır. Aşılırsa /tts audio, tts.convert ve tts.speak başarısız olur.
timeoutMsnumberdefault: 30000Milisaniye cinsinden istek zaman aşımı. Çağrı başına timeoutMs (ajan aracı, Gateway) ayarlanmışsa önceliklidir; aksi takdirde açıkça yapılandırılmış tts.timeoutMs, Plugin tarafından tanımlanmış sağlayıcı varsayılanlarına göre önceliklidir.
Sağlayıcı apiKey alanları ham dizeler veya SecretRef'ler olabilir. Soğuk Gateway
başlatması sırasında kullanılamayan bir TTS SecretRef, Gateway'i durdurmak yerine
yerleşik TTS yeteneğini yapılandırılmış-kullanılamaz olarak işaretler. Ardından tts.speak,
SECRET_SURFACE_UNAVAILABLE nedeniyle UNAVAILABLE döndürür ve hiçbir sağlayıcı isteği
gönderilmez. Durum ve doctor, performansı düşmüş TTS sahibini ve yapılandırma yollarını listeler.
Açık başvurular çalışma zamanı anlık görüntüsünde kalır; böylece ortam veya profil
kimlik bilgileri sessizce farklı bir hesap seçemez. Yeniden yüklemeler ve yapılandırma yazma
ön denetimi, sahip farkındalığı olan performans düşürme politikasını uygular: değişmemiş ve uygun bir TTS
sahibi, son çalıştığı bilinen kimlik bilgilerini eski olarak koruyabilirken yeni veya değiştirilmiş bir
başarısızlık, sağlıklı sahipleri engellemeden soğuk duruma geçer. Yapısal olarak geçersiz başvurular
ve çözümlenmiş değerler yine başlatmanın başarısız olmasına veya güncellemenin reddedilmesine neden olur.
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ı (diğer adı baseUrl).
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZSIgdHlwZT0ic3RyaW5nIg
Azure ses ShortName değeri. Varsayılan en-US-JennyNeural. Eski diğer 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. Varsayılan eleven_multilingual_v2. Eski eleven_turbo_v2_5/eleven_turbo_v2 kimlikleri, eşleşen flash modeline normalleştirilir.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZUlkIiB0eXBlPSJzdHJpbmci
ElevenLabs ses kimliği. Varsayılan pMsXgVXv3BLzUgSXRplE. Eski diğer ad: voiceId.
OPENCLAW_DOCS_MARKER:paramClose:
voiceSettingsobjectstability, similarityBoost, style (her biri 0..1, varsayılanlar 0.5/0.75/0), useSpeakerBoost (true|false, varsayılan true), speed (0.5..2.0, varsayılan 1.0).
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 çabayla belirlenimlilik için tamsayı 0..4294967295.
OPENCLAW_DOCS_MARKER:paramClose:
baseUrlstringGoogle Gemini
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg
GEMINI_API_KEY / GOOGLE_API_KEY değerlerine geri döner. Belirtilmezse TTS, ortam değişkenine geri dönmeden ö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 hazır ses adı. Varsayılan: Kore. Eski takma adlar: voiceName, voice.
OPENCLAW_DOCS_MARKER:paramClose:
audioProfilestringspeakerNamestringOPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InByb21wdFRlbXBsYXRlIiB0eXBlPSciYXVkaW8tcHJvZmlsZS12MSIn
Etkin persona istemi alanlarını deterministik bir Gemini TTS istem yapısıyla sarmalamak için audio-profile-v1 olarak ayarlayın.
OPENCLAW_DOCS_MARKER:paramClose:
personaPromptstringOPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI
Yalnızca https://generativelanguage.googleapis.com kabul edilir.
OPENCLAW_DOCS_MARKER:paramClose:
Gradium
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg
Ortam değişkeni: GRADIUM_API_KEY.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI
api.gradium.ai üzerindeki HTTPS Gradium API URL'si. 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 değişkeni: 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. Diğerleri: 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 (0 hariç).
OPENCLAW_DOCS_MARKER:paramClose:
Yerel CLI (tts-local-cli)
commandstringOPENCLAW_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:
cwdstringenv"Record<string,Komutun standart çıktısı ile oluşturulan veya dönüştürülen ses 50 MiB ile sınırlıdır. Tanılama amaçlı standart hata çıktısı 1 MiB ile sınırlıdır. Sınırlardan biri aşıldığında OpenClaw komutu sonlandırır ve sentezi başarısız sayar.
Microsoft (API anahtarı yok)
enabledbooleandefault: trueOPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZSIgdHlwZT0ic3RyaW5nIg
Microsoft nöral ses adı (ör. en-US-MichelleNeural). Eski takma ad: voice. Varsayılan İngilizce ses etkinse ve yanıt metninde CJK karakterleri baskınsa OpenClaw otomatik olarak zh-CN-XiaoxiaoNeural değerine geçer.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImxhbmciIHR5cGU9InN0cmluZyI
Dil kodu (ör. 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, paketle birlikte sunulan Edge tabanlı aktarım tarafından desteklenmez.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InJhdGUgLyBwaXRjaCAvIHZvbHVtZSIgdHlwZT0ic3RyaW5nIg
Yüzde dizeleri (ör. +10%, -5%).
OPENCLAW_DOCS_MARKER:paramClose:
saveSubtitlesbooleanproxystringtimeoutMsnumberOPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImVkZ2UuKiIgdHlwZT0ib2JqZWN0IiBkZXByZWNhdGVk
Eski takma ad. Kalıcı yapılandırmayı providers.microsoft olarak yeniden yazmak için openclaw doctor --fix komutunu ç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 aracılığıyla Token Plan kimlik doğrulaması.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI
Varsayılan: https://api.minimax.io. Ortam değişkeni: MINIMAX_API_HOST.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im1vZGVsIiB0eXBlPSJzdHJpbmci
Varsayılan: speech-2.8-hd. Ortam değişkeni: MINIMAX_TTS_MODEL.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZUlkIiB0eXBlPSJzdHJpbmci
Varsayılan: English_expressive_narrator. Ortam değişkeni: 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 kesilir.
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. Varsayılan: gpt-4o-mini-tts.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZSIgdHlwZT0ic3RyaW5nIg
Ses adı (ör. alloy, cedar). Varsayılan: coral. Eski takma ad: voice.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Imluc3RydWN0aW9ucyIgdHlwZT0ic3RyaW5nIg
Açık OpenAI instructions alanı. Ayarlandığında persona istemi 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övdeleriyle 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 prototip anahtarları yok sayılır.
OPENCLAW_DOCS_MARKER:paramClose:
baseUrlstringOpenAI TTS uç noktasını geçersiz kılın. Çözümleme sırası: yapılandırma → OPENAI_TTS_BASE_URL → https://api.openai.com/v1. Varsayılan olmayan değerler OpenAI uyumlu TTS uç noktaları olarak değerlendirilir; bu nedenle özel model ve ses adları kabul edilir ve speed, 0.25..4.0 aralık denetimini kaybeder.
OpenRouter
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg
Ortam değişkeni: 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:
speednumberVolcengine (BytePlus Seed Speech)
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg
Ortam değişkeni: 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 değişkeni: VOLCENGINE_TTS_RESOURCE_ID. Projeniz TTS 2.0 yetkisine sahipse seed-tts-2.0 kullanın.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwcEtleSIgdHlwZT0ic3RyaW5nIg
Uygulama anahtarı üstbilgisi. Varsayılan: aGjiRDfUWi. Ortam değişkeni: 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 değişkeni: VOLCENGINE_TTS_BASE_URL.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZSIgdHlwZT0ic3RyaW5nIg
Ses türü. Varsayılan: en_female_anna_mars_bigtts. Ortam değişkeni: VOLCENGINE_TTS_VOICE. Eski takma ad: voice.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWVkUmF0aW8iIHR5cGU9Im51bWJlciI
Sağlayıcıya özgü hız oranı, 0.2..3.
OPENCLAW_DOCS_MARKER:paramClose:
emotionstringOPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwcElkIC8gdG9rZW4gLyBjbHVzdGVyIiB0eXBlPSJzdHJpbmciIGRlcHJlY2F0ZWQ
Eski Volcengine Speech Console alanları. Ortam değişkenleri: VOLCENGINE_TTS_APPID, VOLCENGINE_TTS_TOKEN, VOLCENGINE_TTS_CLUSTER (varsayılan: volcano_tts).
OPENCLAW_DOCS_MARKER:paramClose:
xAI
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg
Ortam değişkeni: XAI_API_KEY.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI
Varsayılan: https://api.x.ai/v1. Ortam değişkeni: XAI_BASE_URL.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZUlkIiB0eXBlPSJzdHJpbmci
Varsayılan: eve. Kimlik doğrulamasıyla openclaw infer tts voices --provider xai güncel yerleşik kataloğu getirir; kimlik doğrulaması olmadan çevrimdışı geri dönüş seçenekleri olan ara, eve, leo, rex ve sal listelenir. Hesaba özel ses kimlikleri, yerleşik listede bulunmasalar bile iletilir. 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:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWVkIiB0eXBlPSJudW1iZXIi
Sağlayıcıya özgü hız geçersiz kılma değeri, 0.7..1.5.
OPENCLAW_DOCS_MARKER:paramClose:
Xiaomi MiMo
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg
Ortam değişkeni: XIAOMI_API_KEY.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI
Varsayılan: https://api.xiaomimimo.com/v1. Ortam değişkeni: XIAOMI_BASE_URL.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im1vZGVsIiB0eXBlPSJzdHJpbmci
Varsayılan: mimo-v2.5-tts. Ortam değişkeni: XIAOMI_TTS_MODEL. mimo-v2.5-tts-voicedesign değerini de destekler.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZSIgdHlwZT0ic3RyaW5nIg
Hazır ses modelleri için varsayılan: mimo_default. Ortam değişkeni: 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 değişkeni: XIAOMI_TTS_FORMAT.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InN0eWxlIiB0eXBlPSJzdHJpbmci
Kullanıcı mesajı olarak gönderilen, isteğe bağlı doğal dilde stil talimatı; seslendirilmez. mimo-v2.5-tts-voicedesign için bu, ses tasarımı istemidir; belirtilmezse OpenClaw varsayılan bir değer sağlar.
OPENCLAW_DOCS_MARKER:paramClose:
Agent aracı
tts aracı, metni konuşmaya dönüştürür ve yanıtın
iletilmesi için bir ses eki döndürür. Feishu, Matrix, Telegram ve WhatsApp'ta ses,
dosya eki yerine sesli mesaj olarak iletilir. Feishu ve
WhatsApp, ffmpeg kullanılabiliyorsa bu yolda Opus olmayan TTS çıktısının
kodunu dönüştürebilir.
WhatsApp, sesi Baileys üzerinden PTT sesli notu olarak gönderir (audio ve
ptt: true) ve istemciler sesli notlardaki altyazıları tutarlı biçimde
göstermediğ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,
çağrı başına milisaniye cinsinden sağlayıcı isteği zaman aşımıdır. Çağrı başına değerler
tts.timeoutMs değerini geçersiz kılar; yapılandırılmış TTS zaman aşımları, Plugin tarafından
belirlenen tüm sağlayıcı varsayılanlarını geçersiz kılar.
Gateway RPC
| Yöntem | Amaç |
|---|---|
tts.status |
Geçerli TTS durumunu ve son denemeyi okuyun. |
tts.enable |
Yerel otomatik tercihi always olarak ayarlayın. |
tts.disable |
Yerel otomatik tercihi off olarak ayarlayın. |
tts.convert |
Tek seferlik metin → ses dönüştürme. |
tts.setProvider |
Yerel sağlayıcı tercihini ayarlayın. |
tts.personas |
Yapılandırılmış personaları ve etkin olanı listeleyin. |
tts.setPersona |
Yerel persona tercihini ayarlayın. |
tts.providers |
Yapılandırılmış sağlayıcıları ve durumlarını listeleyin. |
Hizmet bağlantıları
- OpenAI metinden sese dönüştürme kılavuzu
- OpenAI Audio API referansı
- Azure Speech REST metinden sese dönüştürme
- Azure Speech sağlayıcısı
- ElevenLabs Metinden Sese Dönüştürme
- ElevenLabs Kimlik Doğrulaması
- Gradium
- Inworld TTS API
- MiniMax T2A v2 API
- Volcengine TTS HTTP API
- Xiaomi MiMo konuşma sentezi
- node-edge-tts
- Microsoft Speech çıkış biçimleri
- xAI metinden sese dönüştürme