Tools
Metinden sese dönüştürme
OpenClaw, giden yanıtları 14 konuşma sağlayıcısı üzerinden sese dönüştürebilir ve Feishu, Matrix, Telegram ve WhatsApp üzerinde yerel sesli mesajlar, diğer tüm yerlerde ses ekleri, telefon ve Talk için PCM/Ulaw akışları sunabilir.
TTS, Talk'ın stt-tts modunun konuşma çıktısı tarafıdır. Sağlayıcıya özgü
realtime Talk oturumları, bu TTS yolunu çağırmak yerine konuşmayı gerçek zamanlı sağlayıcının içinde sentezler; transcription oturumları ise
asistanın sesli yanıtını sentezlemez.
Hızlı başlangıç
Bir sağlayıcı seçin
OpenAI ve ElevenLabs en güvenilir barındırılan seçeneklerdir. Microsoft ve Yerel CLI bir 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 için env var değerini dışa aktarın (örneğin OPENAI_API_KEY,
ELEVENLABS_API_KEY). Microsoft ve Yerel CLI anahtar gerektirmez.
Yapılandırmada etkinleştirin
messages.tts.auto: "always" ve messages.tts.provider değerlerini ayarlayın:
{
messages: {
tts: {
auto: "always",
provider: "elevenlabs",
},
},
}
Sohbette deneyin
/tts status geçerli 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. |
| DeepInfra | DEEPINFRA_API_KEY |
OpenAI uyumlu TTS. Varsayılanı hexgrad/Kokoro-82M. |
| ElevenLabs | ELEVENLABS_API_KEY veya XI_API_KEY |
Ses klonlama, çok dilli, seed ile deterministik. |
| Google Gemini | GEMINI_API_KEY veya GOOGLE_API_KEY |
Gemini API TTS; promptTemplate: "audio-profile-v1" ile personaya duyarlı. |
| Gradium | GRADIUM_API_KEY |
Sesli not ve telefon çıktısı. |
| Inworld | INWORLD_API_KEY |
Akış TTS API'si. Yerel Opus sesli not ve PCM telefon. |
| Yerel CLI | yok | Yapılandırılmış bir yerel TTS komutu çalıştırır. |
| Microsoft | yok | node-edge-tts üzerinden herkese açık Edge nöral TTS. En iyi çaba esaslı, SLA yok. |
| 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; persona instructions 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 |
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 tamamlamaları üzerinden MiMo TTS. |
Birden çok sağlayıcı yapılandırılmışsa, önce seçilen sağlayıcı kullanılır ve
diğerleri yedek seçenekler olur. Otomatik özet summaryModel (veya
agents.defaults.model.primary) kullanır; bu nedenle özetleri etkin bırakırsanız
o sağlayıcının da kimliğinin doğrulanmış olması gerekir.
Yapılandırma
TTS yapılandırması ~/.openclaw/openclaw.json içinde messages.tts altında bulunur. Bir
ön ayar seçin ve sağlayıcı bloğunu uyarlayın:
Azure Speech
{
messages: {
tts: {
auto: "always",
provider: "azure-speech",
providers: {
"azure-speech": {
apiKey: "${AZURE_SPEECH_KEY}",
region: "eastus",
voice: "en-US-JennyNeural",
lang: "en-US",
outputFormat: "audio-24khz-48kbitrate-mono-mp3",
voiceNoteOutputFormat: "ogg-24khz-16bit-mono-opus",
},
},
},
},
}
ElevenLabs
{
messages: {
tts: {
auto: "always",
provider: "elevenlabs",
providers: {
elevenlabs: {
apiKey: "${ELEVENLABS_API_KEY}",
model: "eleven_multilingual_v2",
voiceId: "EXAVITQu4vr4xnSDxMaL",
},
},
},
},
}
Google Gemini
{
messages: {
tts: {
auto: "always",
provider: "google",
providers: {
google: {
apiKey: "${GEMINI_API_KEY}",
model: "gemini-3.1-flash-tts-preview",
voiceName: "Kore",
// Optional natural-language style prompts:
// audioProfile: "Speak in a calm, podcast-host tone.",
// speakerName: "Alex",
},
},
},
},
}
Gradium
{
messages: {
tts: {
auto: "always",
provider: "gradium",
providers: {
gradium: {
apiKey: "${GRADIUM_API_KEY}",
voiceId: "YTpq7expH9539ERJ",
},
},
},
},
}
Inworld
{
messages: {
tts: {
auto: "always",
provider: "inworld",
providers: {
inworld: {
apiKey: "${INWORLD_API_KEY}",
modelId: "inworld-tts-1.5-max",
voiceId: "Sarah",
temperature: 0.7,
},
},
},
},
}
Yerel CLI
{
messages: {
tts: {
auto: "always",
provider: "tts-local-cli",
providers: {
"tts-local-cli": {
command: "say",
args: ["-o", "{{OutputPath}}", "{{Text}}"],
outputFormat: "wav",
timeoutMs: 120000,
},
},
},
},
}
Microsoft (anahtar yok)
{
messages: {
tts: {
auto: "always",
provider: "microsoft",
providers: {
microsoft: {
enabled: true,
voice: "en-US-MichelleNeural",
lang: "en-US",
outputFormat: "audio-24khz-48kbitrate-mono-mp3",
rate: "+0%",
pitch: "+0%",
},
},
},
},
}
MiniMax
{
messages: {
tts: {
auto: "always",
provider: "minimax",
providers: {
minimax: {
apiKey: "${MINIMAX_API_KEY}",
model: "speech-2.8-hd",
voiceId: "English_expressive_narrator",
speed: 1.0,
vol: 1.0,
pitch: 0,
},
},
},
},
}
OpenAI + ElevenLabs
{
messages: {
tts: {
auto: "always",
provider: "openai",
summaryModel: "openai/gpt-4.1-mini",
modelOverrides: { enabled: true },
providers: {
openai: {
apiKey: "${OPENAI_API_KEY}",
model: "gpt-4o-mini-tts",
voice: "alloy",
},
elevenlabs: {
apiKey: "${ELEVENLABS_API_KEY}",
model: "eleven_multilingual_v2",
voiceId: "EXAVITQu4vr4xnSDxMaL",
voiceSettings: { stability: 0.5, similarityBoost: 0.75, style: 0.0, useSpeakerBoost: true, speed: 1.0 },
applyTextNormalization: "auto",
languageCode: "en",
},
},
},
},
}
OpenRouter
{
messages: {
tts: {
auto: "always",
provider: "openrouter",
providers: {
openrouter: {
apiKey: "${OPENROUTER_API_KEY}",
model: "hexgrad/kokoro-82m",
voice: "af_alloy",
responseFormat: "mp3",
},
},
},
},
}
Volcengine
{
messages: {
tts: {
auto: "always",
provider: "volcengine",
providers: {
volcengine: {
apiKey: "${VOLCENGINE_TTS_API_KEY}",
resourceId: "seed-tts-1.0",
voice: "en_female_anna_mars_bigtts",
},
},
},
},
}
xAI
{
messages: {
tts: {
auto: "always",
provider: "xai",
providers: {
xai: {
apiKey: "${XAI_API_KEY}",
voiceId: "eve",
language: "en",
responseFormat: "mp3",
},
},
},
},
}
Xiaomi MiMo
{
messages: {
tts: {
auto: "always",
provider: "xiaomi",
providers: {
xiaomi: {
apiKey: "${XIAOMI_API_KEY}",
model: "mimo-v2.5-tts",
voice: "mimo_default",
format: "mp3",
},
},
},
},
}
Ajan başına ses geçersiz kılmaları
Bir ajanın farklı bir sağlayıcı, ses, model, persona veya Auto-TTS modu ile
konuşması gerektiğinde agents.list[].tts kullanın. Ajan bloğu
messages.tts üzerine derin birleştirme uygular; böylece sağlayıcı kimlik bilgileri
genel sağlayıcı yapılandırmasında kalabilir:
{
messages: {
tts: {
auto: "always",
provider: "elevenlabs",
providers: {
elevenlabs: { apiKey: "${ELEVENLABS_API_KEY}", model: "eleven_multilingual_v2" },
},
},
},
agents: {
list: [
{
id: "reader",
tts: {
providers: {
elevenlabs: { voiceId: "EXAVITQu4vr4xnSDxMaL" },
},
},
},
],
},
}
Ajan başına personayı 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 agent aracı için
öncelik sırası:
messages.tts- etkin
agents.list[].tts - kanal
channels.<channel>.ttsdesteklediğinde kanal geçersiz kılması - kanal
channels.<channel>.accounts.<id>.ttsilettiğinde hesap geçersiz kılması - bu host için yerel
/ttstercihleri - 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 üzerinde derin birleştirme yapar; böylece paylaşılan sağlayıcı
kimlik bilgileri messages.tts içinde kalabilirken bir kanal veya bot hesabı
yalnızca sesi, modeli, personayı veya otomatik modu değiştirebilir:
{
messages: {
tts: {
provider: "openai",
providers: {
openai: { apiKey: "${OPENAI_API_KEY}", model: "gpt-4o-mini-tts" },
},
},
},
channels: {
feishu: {
accounts: {
english: {
tts: {
providers: {
openai: { voice: "shimmer" },
},
},
},
},
},
},
}
Personalar
Bir persona, sağlayıcılar arasında deterministik olarak uygulanabilen kararlı bir konuşma kimliğidir. Bir sağlayıcıyı tercih edebilir, sağlayıcıdan bağımsız prompt niyetini tanımlayabilir ve sesler, modeller, prompt şablonları, seed'ler ve ses ayarları için sağlayıcıya özel bağlamalar taşıyabilir.
Minimal persona
{
messages: {
tts: {
auto: "always",
persona: "narrator",
personas: {
narrator: {
label: "Narrator",
provider: "elevenlabs",
providers: {
elevenlabs: { voiceId: "EXAVITQu4vr4xnSDxMaL", modelId: "eleven_multilingual_v2" },
},
},
},
},
},
}
Tam persona (sağlayıcıdan bağımsız prompt)
{
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",
voiceName: "Algieba",
promptTemplate: "audio-profile-v1",
},
openai: { model: "gpt-4o-mini-tts", voice: "cedar" },
elevenlabs: {
voiceId: "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:
- Ayarlanmışsa
/tts persona <id>yerel tercihi. - Ayarlanmışsa
messages.tts.persona. - Persona yok.
Sağlayıcı seçimi önce açık tercih yaklaşımıyla çalışır:
- Doğrudan geçersiz kılmalar (CLI, Gateway, Talk, izin verilen TTS yönergeleri).
/tts provider <id>yerel tercihi.- Etkin personanın
providerdeğeri. messages.tts.provider.- Kayıt defteri otomatik seçimi.
Her sağlayıcı denemesinde OpenClaw yapılandırmaları şu sırayla birleştirir:
messages.tts.providers.<id>messages.tts.personas.<persona>.providers.<id>- Güvenilen istek geçersiz kılmaları
- İzin verilen model kaynaklı TTS yönergesi geçersiz kılmaları
Sağlayıcılar persona promptlarını nasıl kullanır
Persona prompt 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
Etkin Google sağlayıcı yapılandırması promptTemplate: "audio-profile-v1"
veya personaPrompt ayarladığında persona prompt alanlarını bir Gemini TTS
prompt yapısına yalnızca bu durumda sarar. Eski audioProfile ve
speakerName alanları hâlâ Google'a özel prompt 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
Açık bir OpenAI instructions yapılandırılmadığında persona prompt alanlarını
istek instructions alanına yalnızca bu durumda 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-prompt eşlemesini
uygulamadığı sürece persona prompt alanları yok sayılır.
Geri dönüş politikası
fallbackPolicy, bir personanın denenen sağlayıcı için hiç bağlaması
olmadığında davranışı kontrol eder:
| Politika | Davranış |
|---|---|
preserve-persona |
Varsayılan. Sağlayıcıdan bağımsız prompt alanları kullanılabilir kalır; sağlayıcı bunları kullanabilir veya yok sayabilir. |
provider-defaults |
Bu deneme için persona prompt 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 atlar. Geri dönüş sağlayıcıları yine de 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 yerelleri talk.catalog
üzerinden seçmeli ve bunları Talk oturumu veya handoff isteği aracılığıyla
iletmelidir. Bir ses oturumu açmak messages.tts değerini 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
yayınlayabilir:
Here you go.
[[tts:voiceId=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ış blok teslimi, bitişik bloklara bölünmüş olsalar bile kanal
bunları 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, 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önerge uyarıları olarak raporlanır.
Kullanılabilir yönerge anahtarları:
provider(kayıtlı sağlayıcı kimliği;allowProvider: truegerektirir)voice/voiceName/voice_name/google_voice/voiceIdmodel/google_modelstability,similarityBoost,style,speed,useSpeakerBoostvol/volume(MiniMax ses düzeyi, 0-10)pitch(MiniMax tam sayı perde değeri, −12 ile 12 arası; 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 } } } }
Slash komutları
Tek komut /tts. Discord'da OpenClaw ayrıca /voice kaydeder çünkü /tts
yerleşik bir Discord komutudur; metin olarak /tts ... yine de ç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 onyerel TTS tercihinialwaysolarak yazar;/tts offbunuoffolarak yazar./tts chat on|off|defaultgeç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 latestgeçerli oturum transkriptinden en son asistan yanıtını okur ve bir kez ses olarak gönderir. Yinelenen ses gönderimlerini bastırmak için oturum girdisinde yalnızca bu yanıtın hash değerini saklar./tts audiotek seferlik bir ses yanıtı üretir (TTS'yi açmaz).limitvesummary, ana yapılandırmada değil yerel tercihlerde saklanır./tts status, 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 etkin olduğunda 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
Slash komutları yerel geçersiz kılmaları prefsPath konumuna yazar. Varsayılan
~/.openclaw/settings/tts.json değeridir; OPENCLAW_TTS_PREFS env var 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, messages.tts ve o host için etkin agents.list[].tts bloğundan gelen
etkin yapılandırmayı geçersiz kılar.
Çıktı biçimleri (sabit)
TTS ses teslimi kanal yeteneğine göre belirlenir. 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 (
opus_48000_64ElevenLabs’ten,opusOpenAI’dan).- 48kHz / 64kbps sesli mesajlar için iyi bir dengedir.
- 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
ffmpegile 48kHz Ogg/Opus’a dönüştürür. WhatsApp, sonucu Baileysaudioyükü üzerindenptt: trueveaudio/ogg; codecs=opusile 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ü göndermek yerine gönderimde başarısız olur. - BlueBubbles: sağlayıcı sentezini normal ses dosyası yolunda tutar; MP3 ve CAF çıktıları iMessage sesli not teslimi için işaretlenir.
- Diğer kanallar: MP3 (
mp3_44100_128ElevenLabs’ten,mp3OpenAI’dan).- 44.1kHz / 128kbps konuşma netliği için varsayılan dengedir.
- MiniMax: normal ses ekleri için MP3 (
speech-2.8-hdmodeli, 32kHz örnekleme hızı). Kanal tarafından bildirilen sesli not hedefleri için, kanal dönüştürme bildirdiğinde OpenClaw teslimattan önce MiniMax MP3’üffmpegile 48kHz Opus’a dönüştürür. - Xiaomi MiMo: varsayılan olarak MP3 veya yapılandırıldığında WAV. Kanal tarafından bildirilen sesli not hedefleri için, kanal dönüştürme bildirdiğinde OpenClaw teslimattan önce Xiaomi çıktısını
ffmpegile 48kHz Opus’a dönüştürür. - Yerel CLI: yapılandırılmış
outputFormatdeğerini kullanır. Sesli not hedefleri Ogg/Opus’a dönüştürülür ve telefon çıktısıffmpegile 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_OPUSve Talk/telefon için 22050 Hz’de hamPCM. - xAI: varsayılan olarak MP3;
responseFormatmp3,wav,pcm,mulawveyaalawolabilir. OpenClaw, xAI’nin toplu REST TTS uç noktasını kullanır ve eksiksiz bir ses eki döndürür; xAI’nin akış TTS WebSocket’i bu sağlayıcı yolunda kullanılmaz. Yerel Opus sesli not biçimi bu yol tarafından desteklenmez. - Microsoft:
microsoft.outputFormatkullanır (varsayılanaudio-24khz-48kbitrate-mono-mp3).- Paketli taşıma bir
outputFormatkabul eder, ancak tüm biçimler hizmetten kullanılamaz. - Çıkış biçimi değerleri Microsoft Speech çıkış biçimlerini izler (Ogg/WebM Opus dahil).
- Telegram
sendVoiceOGG/MP3/M4A kabul eder; garantili Opus sesli mesajlara ihtiyacınız varsa OpenAI/ElevenLabs kullanın. - Yapılandırılmış Microsoft çıkış biçimi başarısız olursa OpenClaw MP3 ile yeniden dener.
- Paketli taşıma bir
OpenAI/ElevenLabs çıkış biçimleri kanal başına sabittir (yukarıya bakın).
Otomatik TTS davranışı
messages.tts.auto etkinleştirildiğinde OpenClaw:
- Yanıt zaten medya veya bir
MEDIA:yönergesi içeriyorsa TTS’yi atlar. - Çok kısa yanıtları atlar (10 karakterin altında).
- Özetler etkinleştirildiğinde uzun yanıtları
summaryModel(veyaagents.defaults.model.primary) kullanarak özetler. - Üretilen sesi yanıta ekler.
mode: "final"içinde, metin akışı tamamlandıktan sonra akışla gelen final yanıtları için yine yalnızca ses 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.
Reply -> TTS enabled?
no -> send text
yes -> has media / 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 çıkış biçimleri
| Hedef | Biçim |
|---|---|
| Feishu / Matrix / Telegram / WhatsApp | Sesli not yanıtları Opus’u tercih eder (opus_48000_64 ElevenLabs’ten, opus OpenAI’dan). 48 kHz / 64 kbps netlik ve boyutu dengeler. |
| Diğer kanallar | MP3 (mp3_44100_128 ElevenLabs’ten, mp3 OpenAI’dan). 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
ffmpegile 48 kHz Ogg/Opus’a dönüştürür. WhatsApp, Baileys üzerindenptt: trueveaudio/ogg; codecs=opusile gönderir. Dönüştürme başarısız olursa: Feishu özgün dosyayı ek olarak göndermeye geri döner; WhatsApp uyumsuz bir PTT yükü göndermek yerine gönderimde başarısız olur. - MiniMax / Xiaomi MiMo: Varsayılan MP3 (MiniMax
speech-2.8-hdiçin 32 kHz); sesli not hedefleri içinffmpegaracılığıyla 48 kHz Opus’a dönüştürülür. - Yerel CLI: Yapılandırılmış
outputFormatdeğ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_OPUSsesli not, Talk/telefon için hamPCM22050 Hz. - xAI: Varsayılan olarak MP3;
responseFormatmp3|wav|pcm|mulaw|alawolabilir. xAI’nin toplu REST uç noktasını kullanır — akış WebSocket TTS kullanılmaz. Yerel Opus sesli not biçimi desteklenmez. - Microsoft:
microsoft.outputFormatkullanır (varsayılanaudio-24khz-48kbitrate-mono-mp3). TelegramsendVoiceOGG/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 çıkış 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.
enabledbooleanEski anahtar. openclaw doctor --fix bunu auto değerine geçirir.
mode"final" | "all""all" final yanıtlara ek olarak araç/blok yanıtlarını içerir.
providerstringKonuşma sağlayıcısı kimliği. Ayarlanmadığında OpenClaw, kayıt defteri 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ç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.
summaryModelstringOtomatik ö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.
modelOverridesobjectModelin TTS yönergeleri yaymasına izin ver. enabled varsayılan olarak true; allowProvider varsayılan olarak false.
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InByb3ZpZGVycy48aWQ
" type="object">
Konuşma sağlayıcısı kimliğiyle anahtarlanan, sağlayıcının sahip olduğu 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.
maxTextLengthnumberTTS giriş karakterleri için kesin üst sınır. Aşılırsa /tts audio başarısız olur.
timeoutMsnumberİstek zaman aşımı, milisaniye cinsinden.
prefsPathstringYerel tercih JSON yolunu geçersiz kıl (sağlayıcı/sınır/özet). Varsayılan ~/.openclaw/settings/tts.json.
Azure Speech
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg
Env: AZURE_SPEECH_KEY, AZURE_SPEECH_API_KEY veya SPEECH_KEY.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InJlZ2lvbiIgdHlwZT0ic3RyaW5nIg
Azure Speech bölgesi (örn. eastus). Env: 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:IHBhdGg9InZvaWNlIiB0eXBlPSJzdHJpbmci
Azure ses ShortName. Varsayılan en-US-JennyNeural.
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 (örn. eleven_multilingual_v2, eleven_v3).
OPENCLAW_DOCS_MARKER:paramClose:
voiceIdstringvoiceSettingsobjectstability, 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 (örn. en, de).
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNlZWQiIHR5cGU9Im51bWJlciI
En iyi çaba determinismi için 0..4294967295 tamsayısı.
OPENCLAW_DOCS_MARKER:paramClose:
baseUrlstringGoogle Gemini
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg
GEMINI_API_KEY / GOOGLE_API_KEY değerine geri döner. Atlanırsa TTS, env 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:IHBhdGg9InZvaWNlTmFtZSIgdHlwZT0ic3RyaW5nIg
Gemini önceden oluşturulmuş ses adı. Varsayılan Kore. Takma ad: voice.
OPENCLAW_DOCS_MARKER:paramClose:
audioProfilestringspeakerNamestringOPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InByb21wdFRlbXBsYXRlIiB0eXBlPSciYXVkaW8tcHJvZmlsZS12MSIn
Etkin persona istem alanlarını deterministik bir Gemini TTS istem yapısıyla sarmak 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: 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:IHBhdGg9InZvaWNlSWQiIHR5cGU9InN0cmluZyI
Varsayılan Emma (YTpq7expH9539ERJ).
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:IHBhdGg9InZvaWNlSWQiIHR5cGU9InN0cmluZyI
Varsayılan Sarah.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InRlbXBlcmF0dXJlIiB0eXBlPSJudW1iZXIi
Örnekleme sıcaklığı 0..2.
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
Komut zaman aşımı, milisaniye cinsinden. Varsayılan 120000.
OPENCLAW_DOCS_MARKER:paramClose:
cwdstringenv"Record<string,Microsoft (API anahtarı yok)
enabledbooleanOPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InZvaWNlIiB0eXBlPSJzdHJpbmci
Microsoft neural voice adı (örn. en-US-MichelleNeural).
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, paketle gelen 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:
saveSubtitlesbooleanproxystringtimeoutMsnumberOPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImVkZ2UuKiIgdHlwZT0ib2JqZWN0IiBkZXByZWNhdGVk
Eski diğer 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. Token Plan kimlik doğrulaması MINIMAX_OAUTH_TOKEN, MINIMAX_CODE_PLAN_KEY veya MINIMAX_CODING_API_KEY üzerinden yapılır.
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:IHBhdGg9InZvaWNlSWQiIHR5cGU9InN0cmluZyI
Varsayılan English_expressive_narrator. Ortam: MINIMAX_TTS_VOICE_ID.
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 (örn. gpt-4o-mini-tts).
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InZvaWNlIiB0eXBlPSJzdHJpbmci
Ses adı (örn. alloy, cedar).
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 özel anahtarlar gerektiren Kokoro benzeri 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 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 normalize edilir.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im1vZGVsIiB0eXBlPSJzdHJpbmci
Varsayılan hexgrad/kokoro-82m. Diğer ad: modelId.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InZvaWNlIiB0eXBlPSJzdHJpbmci
Varsayılan af_alloy. Diğer ad: 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: 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. Projenizde 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:IHBhdGg9InZvaWNlIiB0eXBlPSJzdHJpbmci
Ses türü. Varsayılan en_female_anna_mars_bigtts. Ortam: VOLCENGINE_TTS_VOICE.
OPENCLAW_DOCS_MARKER:paramClose:
speedRationumberemotionstringOPENCLAW_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:IHBhdGg9InZvaWNlSWQiIHR5cGU9InN0cmluZyI
Varsayılan eve. Canlı sesler: ara, eve, leo, rex, sal, una.
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:
speednumberXiaomi 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. Ayrıca mimo-v2-tts destekler.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InZvaWNlIiB0eXBlPSJzdHJpbmci
Varsayılan mimo_default. Ortam: XIAOMI_TTS_VOICE.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImZvcm1hdCIgdHlwZT0nIm1wMyIgfCAid2F2Iic
Varsayılan mp3. Ortam: XIAOMI_TTS_FORMAT.
OPENCLAW_DOCS_MARKER:paramClose:
stylestringAjan 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 ve ptt: true ile) gönderir ve görünür metni PTT sesinden ayrı gönderir, çünkü istemciler ses notlarında altyazıları tutarlı biçimde işlemez.
Araç isteğe bağlı channel ve timeoutMs alanlarını kabul eder; timeoutMs, çağrı başına sağlayıcı istek zaman aşımıdır ve milisaniye cinsindendir.
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 durumlarını listele. |
Hizmet bağlantıları
- OpenAI metinden konuşmaya kılavuzu
- OpenAI Audio API başvurusu
- Azure Speech REST metinden konuşmaya
- Azure Speech sağlayıcısı
- ElevenLabs metinden konuşmaya
- 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 çıktı biçimleri
- xAI metinden konuşmaya