Tools
Text-to-Speech
OpenClaw wandelt ausgehende Antworten über 14 Sprach-Provider in Audio um: native Sprachnachrichten auf Feishu, Matrix, Telegram und WhatsApp; Audioanhänge überall sonst; sowie PCM-/Ulaw-Streams für Telefonie und Talk.
TTS ist die Sprachausgabehälfte des stt-tts-Modus von Talk (talk.speak verwendet
denselben Synthesepfad). Provider-native realtime-Talk-Sitzungen synthetisieren
Sprache stattdessen innerhalb des Echtzeit-Providers; transcription-Sitzungen
synthetisieren niemals eine gesprochene Assistentenantwort.
Schnellstart
Provider auswählen
OpenAI und ElevenLabs sind die zuverlässigsten gehosteten Optionen. Microsoft und die lokale CLI funktionieren ohne API-Schlüssel. Die vollständige Liste finden Sie in der Provider-Matrix.
API-Schlüssel festlegen
Exportieren Sie die Umgebungsvariable für Ihren Provider (zum Beispiel OPENAI_API_KEY,
ELEVENLABS_API_KEY). Microsoft und die lokale CLI benötigen keinen Schlüssel.
In der Konfiguration aktivieren
Legen Sie tts.auto: "always" und tts.provider fest:
{ tts: { auto: "always", provider: "elevenlabs", },}Im Chat ausprobieren
/tts status zeigt den aktuellen Status an. /tts audio Hello from OpenClaw
sendet eine einmalige Audioantwort.
Unterstützte Provider
| Provider | Authentifizierung | Hinweise |
|---|---|---|
| Azure Speech | AZURE_SPEECH_KEY + AZURE_SPEECH_REGION (auch AZURE_SPEECH_API_KEY, SPEECH_KEY, SPEECH_REGION) |
Native Ogg-/Opus-Ausgabe für Sprachnachrichten und Telefonie. |
| DeepInfra | DEEPINFRA_API_KEY |
OpenAI-kompatibles TTS. Verwendet standardmäßig hexgrad/Kokoro-82M. |
| ElevenLabs | ELEVENLABS_API_KEY oder XI_API_KEY |
Stimmenklonen, mehrsprachig, deterministisch über seed; gestreamt für die Sprachwiedergabe in Discord. |
| Google Gemini | GEMINI_API_KEY oder GOOGLE_API_KEY |
Batch-TTS der Gemini API; berücksichtigt die Persona über promptTemplate: "audio-profile-v1". |
| Gradium | GRADIUM_API_KEY |
Ausgabe für Sprachnachrichten und Telefonie. |
| Inworld | INWORLD_API_KEY |
Streaming-TTS-API. Native Opus-Sprachnachrichten und PCM-Telefonie. |
| Lokale CLI | keine | Führt einen konfigurierten lokalen TTS-Befehl aus. |
| Microsoft | keine | Öffentliches neuronales Edge-TTS über node-edge-tts. Nach bestem Bemühen, ohne SLA. |
| MiniMax | MINIMAX_API_KEY (oder Token-Plan: MINIMAX_OAUTH_TOKEN, MINIMAX_CODE_PLAN_KEY, MINIMAX_CODING_API_KEY) |
T2A-v2-API. Verwendet standardmäßig speech-2.8-hd. |
| OpenAI | OPENAI_API_KEY |
Wird auch für automatische Zusammenfassungen verwendet; unterstützt die Persona instructions. |
| OpenRouter | OPENROUTER_API_KEY (kann models.providers.openrouter.apiKey wiederverwenden) |
Standardmodell hexgrad/kokoro-82m. |
| Volcengine | VOLCENGINE_TTS_API_KEY oder BYTEPLUS_SEED_SPEECH_API_KEY (veraltete AppID/Token: VOLCENGINE_TTS_APPID/_TOKEN) |
BytePlus Seed Speech HTTP-API. |
| Vydra | VYDRA_API_KEY |
Gemeinsamer Provider für Bilder, Videos und Sprache. |
| xAI | XAI_API_KEY |
xAI-Batch-TTS. Native Opus-Sprachnachrichten werden nicht unterstützt. |
| Xiaomi MiMo | XIAOMI_API_KEY |
MiMo-TTS über Xiaomi-Chatvervollständigungen. |
Wenn mehrere Provider konfiguriert sind, wird zuerst der ausgewählte verwendet und die
anderen dienen als Fallback-Optionen. Die automatische Zusammenfassung verwendet summaryModel (oder
agents.defaults.model.primary); daher muss dieser Provider ebenfalls authentifiziert sein,
wenn Zusammenfassungen aktiviert bleiben.
Konfiguration
Die TTS-Konfiguration befindet sich unter tts in ~/.openclaw/openclaw.json. Wählen Sie eine
Voreinstellung aus und passen Sie den Provider-Block an. Die unten dargestellten Felder
speakerVoice/speakerVoiceId sind kanonisch; die providerspezifischen Feldnamen
voice/voiceId/voiceName funktionieren weiterhin als veraltete Aliasse.
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", // Optionale Stilvorgaben in natürlicher Sprache: // audioProfile: "Sprechen Sie in einem ruhigen Tonfall wie ein Podcast-Moderator.", // 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, },},},}Lokale CLI
{tts: {auto: "always",provider: "tts-local-cli",providers: { "tts-local-cli": { command: "say", args: ["-o", "{{OutputPath}}", "{{Text}}"], outputFormat: "wav", timeoutMs: 120000, },},},}Microsoft (kein Schlüssel)
{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", },},},}Lassen Sie für Xiaomi mimo-v2.5-tts-voicedesign den Wert speakerVoice weg und legen Sie style auf
die Vorgabe für den Stimmentwurf fest. OpenClaw sendet diese Vorgabe als TTS-Nachricht user
und sendet für das Voicedesign-Modell kein audio.voice.
Agent-spezifische Stimmenüberschreibungen
Verwenden Sie agents.entries.*.tts, wenn ein Agent mit einem anderen Provider,
einer anderen Stimme, einem anderen Modell, einer anderen Persona oder einem anderen Auto-TTS-Modus sprechen soll. Der Agent-Block wird rekursiv mit
tts zusammengeführt, sodass die Provider-Anmeldedaten in der globalen Provider-Konfiguration verbleiben können:
{ tts: { auto: "always", provider: "elevenlabs", providers: { elevenlabs: { apiKey: "${ELEVENLABS_API_KEY}", model: "eleven_multilingual_v2" }, }, }, agents: { list: [ { id: "reader", tts: { providers: { elevenlabs: { speakerVoiceId: "EXAVITQu4vr4xnSDxMaL" }, }, }, }, ], },}Um eine Persona für einen einzelnen Agenten festzulegen, setzen Sie agents.entries.*.tts.persona zusammen mit der Provider-
Konfiguration — dies überschreibt das globale tts.persona ausschließlich für diesen Agenten.
Prioritätsreihenfolge für automatische Antworten, /tts audio, /tts status und das
Agentenwerkzeug tts:
tts- aktives
agents.entries.*.tts - Kanalüberschreibung, wenn der Kanal
channels.<channel>.ttsunterstützt - Kontoüberschreibung, wenn der Kanal
channels.<channel>.accounts.<id>.ttsübergibt - lokale
/tts-Einstellungen für diesen Host - eingebettete
[[tts:...]]-Direktiven, wenn modellgesteuerte Überschreibungen aktiviert sind
Kanal- und Kontoüberschreibungen verwenden dieselbe Struktur wie tts und
werden rekursiv über die vorherigen Ebenen zusammengeführt. Dadurch können gemeinsam genutzte Provider-Anmeldedaten in
tts verbleiben, während ein Kanal oder Bot-Konto nur Sprecherstimme, Modell, Persona
oder Automatikmodus ändert:
{ tts: { provider: "openai", providers: { openai: { apiKey: "${OPENAI_API_KEY}", model: "gpt-4o-mini-tts" }, }, }, channels: { feishu: { accounts: { english: { tts: { providers: { openai: { speakerVoice: "shimmer" }, }, }, }, }, }, },}Personas
Eine Persona ist eine stabile gesprochene Identität, die deterministisch Provider-übergreifend angewendet werden kann. Sie kann einen Provider bevorzugen, Provider-neutrale Prompt-Absichten definieren und Provider-spezifische Zuordnungen für Stimmen, Modelle, Prompt- Vorlagen, Seeds und Stimmeinstellungen enthalten.
Minimale Persona
{ tts: { auto: "always", persona: "narrator", personas: { narrator: { label: "Erzähler", provider: "elevenlabs", providers: { elevenlabs: { speakerVoiceId: "EXAVITQu4vr4xnSDxMaL", modelId: "eleven_multilingual_v2", }, }, }, }, },}Vollständige Persona (Provider-spezifische Ausgestaltung)
{ tts: { auto: "always", persona: "alfred", personas: { alfred: { label: "Alfred", description: "Trockener, warmherziger britischer Butler-Erzähler.", 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-Auflösung
Die aktive Persona wird deterministisch ausgewählt:
- lokale
/tts persona <id>-Einstellung, sofern festgelegt. tts.persona, sofern festgelegt.- Keine Persona.
Die Provider-Auswahl erfolgt mit Vorrang für explizite Angaben:
- Direkte Überschreibungen (CLI, Gateway, Talk, zulässige TTS-Direktiven).
- Lokale
/tts provider <id>-Einstellung. providerder aktiven Persona.tts.provider.- Automatische Auswahl aus der Registry.
Für jeden Provider-Versuch führt OpenClaw Konfigurationen in dieser Reihenfolge zusammen:
tts.providers.<id>tts.personas.<persona>.providers.<id>- Vertrauenswürdige Anforderungsüberschreibungen
- Zulässige, vom Modell ausgegebene Überschreibungen durch TTS-Direktiven
Benutzerdefinierte Persona-Ausgestaltung
Die Provider-neutrale personas.<id>.prompt.*-Konfiguration wird nicht mehr verwendet. Doctor entfernt
diese Felder und verweist auf die Schnittstelle des Sprach-Providers. Legen Sie integrierte Provider-
Einstellungen unter personas.<id>.providers.<provider> ab (beispielsweise Google-
personaPrompt oder OpenAI-instructions). Implementieren Sie für eine benutzerdefinierte Ausgestaltung ein
Sprach-Provider-Plugin mit prepareSynthesis(ctx) und geben Sie angepassten Text,
eine Provider-Konfiguration oder Überschreibungen zurück, bevor synthesize() ausgeführt wird. Dadurch verbleibt die ausdrucksstarke
Prompt-Erstellung im Provider-Code, in dem die Semantik der Anforderungen bekannt ist.
Fallback-Richtlinie
fallbackPolicy steuert das Verhalten, wenn eine Persona keine Zuordnung für den
versuchten Provider besitzt:
| Richtlinie | Verhalten |
|---|---|
preserve-persona |
Standard. Provider-neutrale Prompt-Felder bleiben verfügbar; der Provider kann sie verwenden oder ignorieren. |
provider-defaults |
Die Persona wird bei diesem Versuch aus der Prompt-Vorbereitung ausgelassen; der Provider verwendet seine neutralen Standardwerte, während der Fallback auf andere Provider fortgesetzt wird. |
fail |
Überspringt diesen Provider-Versuch mit reasonCode: "not_configured" und personaBinding: "missing". Fallback-Provider werden weiterhin versucht. |
Die gesamte TTS-Anforderung schlägt nur fehl, wenn jeder versuchte Provider übersprungen wird oder fehlschlägt.
Die Provider-Auswahl einer Talk-Sitzung gilt nur für diese Sitzung. Ein Talk-Client sollte
Provider-IDs, Modell-IDs, Stimmen-IDs und Gebietsschemas aus talk.catalog auswählen und
sie über die Talk-Sitzungs- oder Übergabeanforderung übergeben. Das Öffnen einer Sprachsitzung sollte
weder tts noch die globalen Standardwerte des Talk-Providers verändern.
Modellgesteuerte Direktiven
Standardmäßig kann der Assistent [[tts:...]]-Direktiven ausgeben, um
Stimme, Modell oder Geschwindigkeit für eine einzelne Antwort zu überschreiben, sowie optional einen
[[tts:text]]...[[/tts:text]]-Block für ausdrucksbezogene Hinweise, die ausschließlich im
Audio erscheinen sollen:
Bitte sehr. [[tts:speakerVoiceId=pMsXgVXv3BLzUgSXRplE model=eleven_v3 speed=1.1]][[tts:text]](lacht) Lesen Sie das Lied noch einmal vor.[[/tts:text]]Wenn tts.auto den Wert "tagged" hat, sind Direktiven erforderlich, um
Audio auszulösen. Bei der blockweisen Streaming-Auslieferung werden Direktiven aus dem sichtbaren Text entfernt, bevor der
Kanal ihn empfängt, selbst wenn sie auf benachbarte Blöcke verteilt sind.
provider=... wird ignoriert, sofern nicht modelOverrides.allowProvider: true. Wenn eine
Antwort provider=... deklariert, werden die anderen Schlüssel in dieser Direktive
ausschließlich von diesem Provider ausgewertet; nicht unterstützte Schlüssel werden entfernt und als Warnungen zu TTS-
Direktiven gemeldet.
Verfügbare Direktiven-Schlüssel:
provider(registrierte Provider-ID; erfordertallowProvider: true)speakerVoice/speakerVoiceId(veraltete Aliase:voice,voiceName,voice_name,google_voice,voiceId)model/google_modelstability,similarityBoost,style,speed,useSpeakerBoostvol/volume(MiniMax-Lautstärke,(0, 10])pitch(ganzzahlige MiniMax-Tonhöhe, −12 bis 12; Nachkommastellen werden abgeschnitten)emotion(Volcengine-Emotions-Tag)applyTextNormalization(auto|on|off)languageCode(ISO 639-1)seed
Modellüberschreibungen vollständig deaktivieren:
{ messages: { tts: { modelOverrides: { enabled: false } } } }Provider-Wechsel zulassen, während andere Einstellungen konfigurierbar bleiben:
{ messages: { tts: { modelOverrides: { enabled: true, allowProvider: true, allowSeed: false } } } }Slash-Befehle
Einzelner Befehl /tts. Auf Discord registriert OpenClaw außerdem /voice, da
/tts ein integrierter Discord-Befehl ist — der Textbefehl /tts ... funktioniert weiterhin.
/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>Hinweise zum Verhalten:
/tts onschreibt die lokale TTS-Einstellung nachalways;/tts offschreibt sie nachoff./tts chat on|off|defaultschreibt für den aktuellen Chat eine sitzungsbezogene Auto-TTS-Überschreibung./tts persona <id>schreibt die lokale Persona-Einstellung;/tts persona offlöscht sie./tts latestliest die neueste Assistentenantwort aus dem Transkript der aktuellen Sitzung und sendet sie einmalig als Audio. Im Sitzungseintrag wird nur ein Hash dieser Antwort gespeichert, um doppelte Sprachausgaben zu unterdrücken./tts audioerzeugt eine einmalige Audioantwort (aktiviert TTS nicht dauerhaft)./tts limit <chars>akzeptiert 100–4096 (4096 ist das Telegram-Maximum für Bildunterschriften/Nachrichten); Werte außerhalb dieses Bereichs werden abgelehnt.limitundsummarywerden in lokalen Einstellungen und nicht in der Hauptkonfiguration gespeichert./tts statusenthält Fallback-Diagnosen für den letzten Versuch —Fallback: <primary> -> <used>,Attempts: ...und Details pro Versuch (provider:outcome(reasonCode) latency)./statuszeigt bei aktiviertem TTS den aktiven TTS-Modus sowie den konfigurierten Provider, das Modell, die Stimme und bereinigte Metadaten des benutzerdefinierten Endpunkts an.
Benutzerspezifische Einstellungen
Slash-Befehle schreiben lokale Überschreibungen in den Pfad für TTS-Einstellungen. Der Standardwert lautet
~/.openclaw/settings/tts.json; überschreiben Sie ihn mit OPENCLAW_TTS_PREFS. Doctor
verschiebt den nicht mehr verwendeten globalen Wert tts.prefsPath in den gemeinsamen Maschinenstatus.
Fortgeschrittene Multi-Agent-Konfigurationen können weiterhin agents.entries.<id>.tts.prefsPath
festlegen, wenn Agenten absichtlich getrennte Einstellungsspeicher verwenden.
| Gespeichertes Feld | Auswirkung |
|---|---|
auto |
Lokale Auto-TTS-Überschreibung (always, off, …) |
provider |
Lokale Überschreibung des primären Providers |
persona |
Lokale Persona-Überschreibung |
maxLength |
Schwellenwert für Zusammenfassung/Kürzung (standardmäßig 1500 Zeichen, Bereich /tts limit 100–4096) |
summarize |
Umschalter für Zusammenfassungen (standardmäßig true) |
Diese überschreiben die wirksame Konfiguration aus tts sowie den aktiven
agents.entries.*.tts-Block für diesen Host.
Ausgabeformate
Die TTS-Sprachausgabe richtet sich nach den Fähigkeiten des Kanals. Kanal-Plugins geben an,
ob TTS im Sprachstil von Providern ein natives voice-note-Zielformat anfordern oder
die normale audio-file-Synthese beibehalten soll und ob der Kanal
nicht native Ausgaben vor dem Senden transkodiert.
| Ziel | Format |
|---|---|
| Feishu / Matrix / Telegram / WhatsApp | Sprachnachrichten-Antworten bevorzugen Opus (opus_48000_64 von ElevenLabs, opus von OpenAI). 48 kHz / 64 kbps bietet ein ausgewogenes Verhältnis zwischen Klarheit und Größe. |
| Andere Kanäle | MP3 (mp3_44100_128 von ElevenLabs, mp3 von OpenAI). 44.1 kHz / 128 kbps ist die standardmäßige Balance für Sprache. |
| Talk / Telefonie | Provider-natives PCM (Inworld 22050 Hz, Google 24 kHz) oder ulaw_8000 von Gradium für Telefonie. |
Hinweise pro Provider:
- Feishu-/WhatsApp-Transkodierung: Wenn eine Sprachnachrichten-Antwort als MP3/WebM/WAV/M4A oder andere wahrscheinliche Audiodatei vorliegt, transkodiert das Kanal-Plugin sie vor dem Senden der nativen Sprachnachricht mit
ffmpeg(libopus, 64 kbps) in Ogg/Opus mit 48 kHz. WhatsApp sendet das Ergebnis über die Baileys-audio-Nutzlast mitptt: trueundaudio/ogg; codecs=opus. Bei einem Transkodierungsfehler: Feishu fängt den Fehler ab und sendet ersatzweise die Originaldatei als normalen Anhang; WhatsApp bietet keinen Fallback, sodass der Sendevorgang selbst fehlschlägt, statt eine inkompatible PTT-Nutzlast zu veröffentlichen. - MiniMax: MP3 (
speech-2.8-hd-Modell, Abtastrate 32 kHz) für normale Audioanhänge; für vom Kanal als Sprachnachrichten-Ziele ausgewiesene Ziele wird mitffmpegin Opus mit 48 kHz transkodiert. - Xiaomi MiMo: Standardmäßig MP3 oder bei entsprechender Konfiguration WAV; für vom Kanal als Sprachnachrichten-Ziele ausgewiesene Ziele wird mit
ffmpegin Opus mit 48 kHz transkodiert. - Lokale CLI: Verwendet das konfigurierte
outputFormat. Sprachnachrichten-Ziele werden in Ogg/Opus und Telefonieausgaben mitffmpegin rohes Mono-PCM mit 16 kHz konvertiert. - Google Gemini: Gibt rohes PCM mit 24 kHz zurück. OpenClaw verpackt es für Audioanhänge als WAV, transkodiert es für Sprachnachrichten-Ziele in Opus mit 48 kHz und gibt PCM für Talk/Telefonie direkt zurück.
- Gradium: WAV für Audioanhänge, Opus für Sprachnachrichten-Ziele und
ulaw_8000mit 8 kHz für Telefonie. - Inworld: MP3 für normale Audioanhänge, natives
OGG_OPUSfür Sprachnachrichten-Ziele und rohesPCMmit 22050 Hz für Talk/Telefonie. - xAI: Standardmäßig MP3; die Audiodateisynthese kann
mp3,wav,pcm,mulawoderalawsowohl für gepufferte als auch für Streaming-Ausgaben verwenden. Sprachnachrichten-Ziele verwenden MP3 für Streaming und den gepufferten Fallback, da die Ausgabenpcm,mulawundalawvon xAI headerlose Rohaudiodaten sind. Die gepufferte Synthese verwendet den Batch-REST-Endpunkt/v1/ttsvon xAI;textToSpeechStreamverwendet nativeswss://api.x.ai/v1/tts. Dies ist nicht der Echtzeit-Sprachvertrag. Das native Opus-Sprachnachrichtenformat wird nicht unterstützt. - Microsoft: Verwendet
microsoft.outputFormat(Standardwertaudio-24khz-48kbitrate-mono-mp3).- Der gebündelte Transport akzeptiert ein
outputFormat, aber nicht alle Formate sind über den Dienst verfügbar. - Ausgabeformatwerte entsprechen den Microsoft-Speech-Ausgabeformaten (einschließlich Ogg/WebM Opus).
- Telegram
sendVoiceakzeptiert OGG/MP3/M4A; verwenden Sie OpenAI/ElevenLabs, wenn Sie garantierte Opus-Sprachnachrichten benötigen. - Wenn das konfigurierte Microsoft-Ausgabeformat fehlschlägt, versucht OpenClaw es erneut mit MP3.
- Wenn keine explizite Stimmenüberschreibung festgelegt ist und die englische Standardstimme verwendet wird, wechselt OpenClaw automatisch zu einer chinesischen neuronalen Stimme (
zh-CN-XiaoxiaoNeural, Gebietsschemazh-CN), falls der Antworttext überwiegend aus CJK-Zeichen besteht.
- Der gebündelte Transport akzeptiert ein
Die Ausgabeformate von OpenAI und ElevenLabs sind wie oben aufgeführt je Kanal festgelegt.
Verhalten von Auto-TTS
Wenn tts.auto aktiviert ist, führt OpenClaw Folgendes aus:
- Überspringt TTS, wenn die Antwort bereits strukturierte Medien enthält.
- Überspringt sehr kurze Antworten (unter 10 Zeichen).
- Fasst lange Antworten zusammen, wenn Zusammenfassungen aktiviert sind, und verwendet dabei
summaryModel(oderagents.defaults.model.primary). - Fügt das erzeugte Audio der Antwort hinzu.
- Sendet in
mode: "final"nach Abschluss des Textstreams weiterhin reine TTS-Audioausgaben für gestreamte endgültige Antworten; die erzeugten Medien durchlaufen dieselbe Kanalmedien-Normalisierung wie normale Antwortanhänge.
Wenn die Antwort maxLength überschreitet, überspringt OpenClaw die Audioausgabe niemals vollständig:
- Zusammenfassung aktiviert (Standard) und ein Zusammenfassungsmodell ist verfügbar: Fasst den
Text auf ungefähr
maxLengthZeichen zusammen und synthetisiert anschließend die Zusammenfassung. - Zusammenfassung deaktiviert, die Zusammenfassung schlägt fehl oder für das
Zusammenfassungsmodell ist kein API-Schlüssel verfügbar: Kürzt den Text auf
maxLengthZeichen und synthetisiert den gekürzten Text.
Antwort -> TTS aktiviert? nein -> Text senden ja -> enthält Medien / kurz? ja -> Text senden nein -> Länge > Grenzwert? nein -> TTS -> Audio anhängen ja -> Zusammenfassung aktiviert und verfügbar? nein -> kürzen -> TTS -> Audio anhängen ja -> zusammenfassen -> TTS -> Audio anhängenFeldreferenz
TTS auf oberster Ebene: tts.*
auto"off" | "always" | "inbound" | "tagged"Auto-TTS-Modus. inbound sendet Audio nur nach einer eingehenden Sprachnachricht; tagged sendet Audio nur, wenn die Antwort [[tts:...]]-Direktiven oder einen [[tts:text]]-Block enthält.
enabledbooleanVeralteter Umschalter. openclaw doctor --fix migriert diesen zu auto.
mode"final" | "all"default: final"all" schließt zusätzlich zu endgültigen Antworten auch Werkzeug-/Blockantworten ein.
providerstringID des Sprach-Providers. Wenn nicht festgelegt, verwendet OpenClaw den ersten konfigurierten Provider gemäß der automatischen Auswahlreihenfolge der Registry. Das veraltete provider: "edge" wird von openclaw doctor --fix in "microsoft" umgeschrieben.
personastringID der aktiven Persona aus personas. Wird in Kleinbuchstaben normalisiert.
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InBlcnNvbmFzLjxpZA
" type="object">
Stabile gesprochene Identität. Felder: label, description, provider, fallbackPolicy, prompt, providers.<provider>. Siehe Personas.
summaryModelstringKostengünstiges Modell für automatische Zusammenfassungen; standardmäßig agents.defaults.model.primary. Akzeptiert provider/model oder einen konfigurierten Modellalias.
modelOverridesobjectErlaubt dem Modell, TTS-Direktiven auszugeben. enabled ist standardmäßig true; allowProvider ist standardmäßig false.
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InByb3ZpZGVycy48aWQ
" type="object">
Provider-eigene Einstellungen, nach der ID des Sprach-Providers verschlüsselt. Veraltete direkte Blöcke (tts.openai, .elevenlabs, .microsoft, .edge) werden von openclaw doctor --fix umgeschrieben; schreiben Sie ausschließlich tts.providers.<id> fest.
maxTextLengthnumberdefault: 4096Harte Obergrenze für TTS-Eingabezeichen. /tts audio, tts.convert und tts.speak schlagen bei einer Überschreitung fehl.
timeoutMsnumberdefault: 30000Anfragezeitlimit in Millisekunden. Ein timeoutMs pro Aufruf (Agentenwerkzeug, Gateway) hat Vorrang, wenn es festgelegt ist; andernfalls hat ein explizit konfiguriertes tts.timeoutMs Vorrang vor jedem vom Plugin definierten Provider-Standardwert.
Die apiKey-Felder des Providers können Rohzeichenfolgen oder SecretRefs sein. Beim Kaltstart des Gateways
bewirkt eine nicht verfügbare TTS-SecretRef, dass die integrierte TTS-Funktion
als konfiguriert, aber nicht verfügbar markiert wird, statt das Gateway anzuhalten. tts.speak gibt dann
UNAVAILABLE mit dem Grund SECRET_SURFACE_UNAVAILABLE zurück, und es wird keine Provider-Anfrage
gesendet. Status und Doctor führen den beeinträchtigten TTS-Eigentümer und seine Konfigurationspfade auf. Die
expliziten Referenzen verbleiben im Laufzeit-Snapshot, sodass Umgebungs- oder Profil-
Anmeldedaten nicht stillschweigend ein anderes Konto auswählen können. Neuladungen und die Vorabprüfung
beim Schreiben der Konfiguration wenden die eigentümerbezogene Beeinträchtigungsrichtlinie an: Ein unveränderter berechtigter TTS-
Eigentümer darf seine zuletzt als funktionsfähig bekannten Anmeldedaten als veraltet beibehalten, während ein neuer oder geänderter
Fehler kalt wird, ohne funktionierende Eigentümer zu blockieren. Strukturell ungültige Referenzen
und aufgelöste Werte lassen den Start weiterhin fehlschlagen beziehungsweise führen weiterhin zur Ablehnung der Aktualisierung.
Azure Speech
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg
Umgebung: AZURE_SPEECH_KEY, AZURE_SPEECH_API_KEY oder SPEECH_KEY.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InJlZ2lvbiIgdHlwZT0ic3RyaW5nIg
Azure-Speech-Region (z. B. eastus). Umgebung: AZURE_SPEECH_REGION oder SPEECH_REGION.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImVuZHBvaW50IiB0eXBlPSJzdHJpbmci
Optionale Überschreibung des Azure-Speech-Endpunkts (Alias baseUrl).
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZSIgdHlwZT0ic3RyaW5nIg
ShortName der Azure-Stimme. Standardwert en-US-JennyNeural. Veralteter Alias: voice.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImxhbmciIHR5cGU9InN0cmluZyI
SSML-Sprachcode. Standardwert en-US.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im91dHB1dEZvcm1hdCIgdHlwZT0ic3RyaW5nIg
Azure-X-Microsoft-OutputFormat für Standardaudio. Standardwert audio-24khz-48kbitrate-mono-mp3.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InZvaWNlTm90ZU91dHB1dEZvcm1hdCIgdHlwZT0ic3RyaW5nIg
Azure-X-Microsoft-OutputFormat für Sprachnachrichtenausgaben. Standardwert ogg-24khz-16bit-mono-opus.
OPENCLAW_DOCS_MARKER:paramClose:
ElevenLabs
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg
Greift ersatzweise auf ELEVENLABS_API_KEY oder XI_API_KEY zurück.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im1vZGVsIiB0eXBlPSJzdHJpbmci
Modell-ID. Standardwert eleven_multilingual_v2. Veraltete IDs eleven_turbo_v2_5/eleven_turbo_v2 werden zum entsprechenden flash-Modell normalisiert.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZUlkIiB0eXBlPSJzdHJpbmci
ElevenLabs-Stimmen-ID. Standardwert pMsXgVXv3BLzUgSXRplE. Veralteter Alias: voiceId.
OPENCLAW_DOCS_MARKER:paramClose:
voiceSettingsobjectstability, similarityBoost, style (jeweils 0..1, Standardwerte 0.5/0.75/0), useSpeakerBoost (true|false, Standardwert true), speed (0.5..2.0, Standardwert 1.0).
applyTextNormalization"auto" | "on" | "off"OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Imxhbmd1YWdlQ29kZSIgdHlwZT0ic3RyaW5nIg
Zweistelliger ISO-639-1-Code (z. B. en, de).
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNlZWQiIHR5cGU9Im51bWJlciI
Ganzzahliges 0..4294967295 für bestmöglichen Determinismus.
OPENCLAW_DOCS_MARKER:paramClose:
baseUrlstringGoogle Gemini
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg
Fällt auf GEMINI_API_KEY / GOOGLE_API_KEY zurück. Falls nicht angegeben, kann TTS vor dem Rückgriff auf die Umgebungsvariable models.providers.google.apiKey wiederverwenden.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im1vZGVsIiB0eXBlPSJzdHJpbmci
Gemini-TTS-Modell. Standardwert: gemini-3.1-flash-tts-preview.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZSIgdHlwZT0ic3RyaW5nIg
Name der vordefinierten Gemini-Stimme. Standardwert: Kore. Veraltete Aliasse: voiceName, voice.
OPENCLAW_DOCS_MARKER:paramClose:
audioProfilestringspeakerNamestringOPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InByb21wdFRlbXBsYXRlIiB0eXBlPSciYXVkaW8tcHJvZmlsZS12MSIn
Auf audio-profile-v1 setzen, um aktive Persona-Anweisungsfelder in eine deterministische Gemini-TTS-Anweisungsstruktur einzubetten.
OPENCLAW_DOCS_MARKER:paramClose:
personaPromptstringOPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI
Nur https://generativelanguage.googleapis.com wird akzeptiert.
OPENCLAW_DOCS_MARKER:paramClose:
Gradium
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg
Umgebungsvariable: GRADIUM_API_KEY.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI
HTTPS-URL der Gradium-API unter api.gradium.ai. Standardwert: https://api.gradium.ai.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZUlkIiB0eXBlPSJzdHJpbmci
Standardwert: Emma (YTpq7expH9539ERJ). Veralteter Alias: voiceId.
OPENCLAW_DOCS_MARKER:paramClose:
Inworld
Primäres Inworld
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg
Umgebungsvariable: INWORLD_API_KEY.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI
Standardwert: https://api.inworld.ai.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im1vZGVsSWQiIHR5cGU9InN0cmluZyI
Standardwert: inworld-tts-1.5-max. Außerdem: inworld-tts-1.5-mini, inworld-tts-1-max, inworld-tts-1.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZUlkIiB0eXBlPSJzdHJpbmci
Standardwert: Sarah. Veralteter Alias: voiceId.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InRlbXBlcmF0dXJlIiB0eXBlPSJudW1iZXIi
Sampling-Temperatur 0..2 (0 ausgeschlossen).
OPENCLAW_DOCS_MARKER:paramClose:
Lokale CLI (tts-local-cli)
commandstringOPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFyZ3MiIHR5cGU9InN0cmluZ1tdIg
Befehlsargumente. Unterstützt die Platzhalter {{Text}}, {{OutputPath}}, {{OutputDir}}, {{OutputBase}}.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im91dHB1dEZvcm1hdCIgdHlwZT0nIm1wMyIgfCAib3B1cyIgfCAid2F2Iic
Erwartetes CLI-Ausgabeformat. Standardwert für Audioanhänge: mp3.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InRpbWVvdXRNcyIgdHlwZT0ibnVtYmVyIg
Zeitüberschreitung des Befehls in Millisekunden. Standardwert: 120000.
OPENCLAW_DOCS_MARKER:paramClose:
cwdstringenv"Record<string,Die Standardausgabe des Befehls sowie erzeugte oder konvertierte Audiodaten sind auf 50 MiB begrenzt. Die diagnostische Standardfehlerausgabe ist auf 1 MiB begrenzt. OpenClaw beendet den Befehl und lässt die Synthese fehlschlagen, wenn eines der Limits überschritten wird.
Microsoft (kein API-Schlüssel)
enabledbooleandefault: trueOPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZSIgdHlwZT0ic3RyaW5nIg
Name der neuronalen Microsoft-Stimme (z. B. en-US-MichelleNeural). Veralteter Alias: voice. Wenn die englische Standardstimme aktiv ist und der Antworttext überwiegend aus CJK-Zeichen besteht, wechselt OpenClaw automatisch zu zh-CN-XiaoxiaoNeural.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImxhbmciIHR5cGU9InN0cmluZyI
Sprachcode (z. B. en-US).
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im91dHB1dEZvcm1hdCIgdHlwZT0ic3RyaW5nIg
Microsoft-Ausgabeformat. Standardwert: audio-24khz-48kbitrate-mono-mp3. Der enthaltene Edge-basierte Transport unterstützt nicht alle Formate.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InJhdGUgLyBwaXRjaCAvIHZvbHVtZSIgdHlwZT0ic3RyaW5nIg
Prozentzeichenfolgen (z. B. +10%, -5%).
OPENCLAW_DOCS_MARKER:paramClose:
saveSubtitlesbooleanproxystringtimeoutMsnumberOPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImVkZ2UuKiIgdHlwZT0ib2JqZWN0IiBkZXByZWNhdGVk
Veralteter Alias. Führen Sie openclaw doctor --fix aus, um die persistierte Konfiguration in providers.microsoft umzuschreiben.
OPENCLAW_DOCS_MARKER:paramClose:
MiniMax
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg
Fällt auf MINIMAX_API_KEY zurück. Token-Plan-Authentifizierung über MINIMAX_OAUTH_TOKEN, MINIMAX_CODE_PLAN_KEY oder MINIMAX_CODING_API_KEY.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI
Standardwert: https://api.minimax.io. Umgebungsvariable: MINIMAX_API_HOST.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im1vZGVsIiB0eXBlPSJzdHJpbmci
Standardwert: speech-2.8-hd. Umgebungsvariable: MINIMAX_TTS_MODEL.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZUlkIiB0eXBlPSJzdHJpbmci
Standardwert: English_expressive_narrator. Umgebungsvariable: MINIMAX_TTS_VOICE_ID. Veralteter Alias: voiceId.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWVkIiB0eXBlPSJudW1iZXIi
0.5..2.0. Standardwert: 1.0.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InZvbCIgdHlwZT0ibnVtYmVyIg
(0, 10]. Standardwert: 1.0.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InBpdGNoIiB0eXBlPSJudW1iZXIi
Ganzzahl -12..12. Standardwert: 0. Nachkommastellen werden vor der Anfrage abgeschnitten.
OPENCLAW_DOCS_MARKER:paramClose:
OpenAI
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg
Fällt auf OPENAI_API_KEY zurück.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im1vZGVsIiB0eXBlPSJzdHJpbmci
OpenAI-TTS-Modell-ID. Standardwert: gpt-4o-mini-tts.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZSIgdHlwZT0ic3RyaW5nIg
Stimmenname (z. B. alloy, cedar). Standardwert: coral. Veralteter Alias: voice.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Imluc3RydWN0aW9ucyIgdHlwZT0ic3RyaW5nIg
Explizites OpenAI-Feld instructions. Wenn es festgelegt ist, werden Persona-Anweisungsfelder nicht automatisch zugeordnet.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImV4dHJhQm9keSAvIGV4dHJhX2JvZHkiIHR5cGU9IlJlY29yZDxzdHJpbmcsIHVua25vd24
">Zusätzliche JSON-Felder, die nach den generierten OpenAI-TTS-Feldern in die Anfragetexte von /audio/speech eingefügt werden. Verwenden Sie dies für OpenAI-kompatible Endpunkte wie Kokoro, die Provider-spezifische Schlüssel wie lang benötigen; unsichere Prototypschlüssel werden ignoriert.
OPENCLAW_DOCS_MARKER:paramClose:
baseUrlstringDen OpenAI-TTS-Endpunkt überschreiben. Auflösungsreihenfolge: Konfiguration → OPENAI_TTS_BASE_URL → https://api.openai.com/v1. Nicht standardmäßige Werte werden als OpenAI-kompatible TTS-Endpunkte behandelt. Daher werden benutzerdefinierte Modell- und Stimmennamen akzeptiert, und für speed entfällt die Bereichsprüfung 0.25..4.0.
OpenRouter
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg
Umgebungsvariable: OPENROUTER_API_KEY. Kann models.providers.openrouter.apiKey wiederverwenden.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI
Standardwert: https://openrouter.ai/api/v1. Das veraltete https://openrouter.ai/v1 wird normalisiert.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im1vZGVsIiB0eXBlPSJzdHJpbmci
Standardwert: hexgrad/kokoro-82m. Alias: modelId.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZSIgdHlwZT0ic3RyaW5nIg
Standardwert: af_alloy. Veraltete Aliasse: voice, voiceId.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InJlc3BvbnNlRm9ybWF0IiB0eXBlPScibXAzIiB8ICJwY20iJw
Standardwert: mp3.
OPENCLAW_DOCS_MARKER:paramClose:
speednumberVolcengine (BytePlus Seed Speech)
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg
Umgebungsvariable: VOLCENGINE_TTS_API_KEY oder BYTEPLUS_SEED_SPEECH_API_KEY.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InJlc291cmNlSWQiIHR5cGU9InN0cmluZyI
Standardwert: seed-tts-1.0. Umgebungsvariable: VOLCENGINE_TTS_RESOURCE_ID. Verwenden Sie seed-tts-2.0, wenn Ihr Projekt zur Nutzung von TTS 2.0 berechtigt ist.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwcEtleSIgdHlwZT0ic3RyaW5nIg
App-Schlüssel-Header. Standardwert: aGjiRDfUWi. Umgebungsvariable: VOLCENGINE_TTS_APP_KEY.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI
Den HTTP-Endpunkt für Seed-Speech-TTS überschreiben. Umgebungsvariable: VOLCENGINE_TTS_BASE_URL.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZSIgdHlwZT0ic3RyaW5nIg
Stimmtyp. Standardwert: en_female_anna_mars_bigtts. Umgebungsvariable: VOLCENGINE_TTS_VOICE. Veralteter Alias: voice.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWVkUmF0aW8iIHR5cGU9Im51bWJlciI
Provider-natives Geschwindigkeitsverhältnis, 0.2..3.
OPENCLAW_DOCS_MARKER:paramClose:
emotionstringOPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwcElkIC8gdG9rZW4gLyBjbHVzdGVyIiB0eXBlPSJzdHJpbmciIGRlcHJlY2F0ZWQ
Veraltete Felder der Volcengine Speech Console. Umgebungsvariablen: VOLCENGINE_TTS_APPID, VOLCENGINE_TTS_TOKEN, VOLCENGINE_TTS_CLUSTER (Standardwert: volcano_tts).
OPENCLAW_DOCS_MARKER:paramClose:
xAI
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg
Umgebungsvariable: XAI_API_KEY.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI
Standardwert: https://api.x.ai/v1. Umgebungsvariable: XAI_BASE_URL.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZUlkIiB0eXBlPSJzdHJpbmci
Standardwert: eve. Mit Authentifizierung ruft openclaw infer tts voices --provider xai den aktuellen integrierten Katalog ab; ohne Authentifizierung werden die Offline-Ersatzwerte ara, eve, leo, rex und sal aufgeführt. Benutzerdefinierte Stimmen-IDs des Kontos werden auch dann weitergeleitet, wenn sie nicht in der integrierten Liste enthalten sind. Veralteter Alias: voiceId.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Imxhbmd1YWdlIiB0eXBlPSJzdHJpbmci
BCP-47-Sprachcode oder auto. Standardwert: en.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InJlc3BvbnNlRm9ybWF0IiB0eXBlPScibXAzIiB8ICJ3YXYiIHwgInBjbSIgfCAibXVsYXciIHwgImFsYXciJw
Standardwert: mp3.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWVkIiB0eXBlPSJudW1iZXIi
Provider-native Überschreibung der Geschwindigkeit, 0.7..1.5.
OPENCLAW_DOCS_MARKER:paramClose:
Xiaomi MiMo
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg
Umgebungsvariable: XIAOMI_API_KEY.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI
Standardwert: https://api.xiaomimimo.com/v1. Umgebungsvariable: XIAOMI_BASE_URL.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im1vZGVsIiB0eXBlPSJzdHJpbmci
Standardwert: mimo-v2.5-tts. Umgebungsvariable: XIAOMI_TTS_MODEL. Unterstützt außerdem mimo-v2.5-tts-voicedesign.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZSIgdHlwZT0ic3RyaW5nIg
Standardwert für Modelle mit voreingestellten Stimmen: mimo_default. Umgebungsvariable: XIAOMI_TTS_VOICE. Veralteter Alias: voice. Wird für mimo-v2.5-tts-voicedesign nicht gesendet.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImZvcm1hdCIgdHlwZT0nIm1wMyIgfCAid2F2Iic
Standardwert: mp3. Umgebungsvariable: XIAOMI_TTS_FORMAT.
OPENCLAW_DOCS_MARKER:paramClose:
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InN0eWxlIiB0eXBlPSJzdHJpbmci
Optionale natürlichsprachliche Stilanweisung, die als Benutzernachricht gesendet und nicht gesprochen wird. Für mimo-v2.5-tts-voicedesign ist dies die Anweisung zur Stimmgestaltung; OpenClaw stellt einen Standardwert bereit, wenn sie nicht angegeben ist.
OPENCLAW_DOCS_MARKER:paramClose:
Agentenwerkzeug
Das Werkzeug tts wandelt Text in Sprache um und gibt einen Audioanhang für die Zustellung der Antwort zurück. Bei Feishu, Matrix, Telegram und WhatsApp wird das Audio als Sprachnachricht statt als Dateianhang zugestellt. Feishu und WhatsApp können auf diesem Pfad TTS-Ausgaben, die nicht im Opus-Format vorliegen, transkodieren, wenn ffmpeg verfügbar ist.
WhatsApp sendet Audiodaten über Baileys als PTT-Sprachnachricht (audio mit ptt: true) und sendet sichtbaren Text getrennt vom PTT-Audio, da Clients Untertitel bei Sprachnachrichten nicht einheitlich darstellen.
Das Werkzeug akzeptiert die optionalen Felder channel und timeoutMs; timeoutMs ist eine Provider-Anfragezeitüberschreitung pro Aufruf in Millisekunden. Werte pro Aufruf überschreiben tts.timeoutMs; konfigurierte TTS-Zeitüberschreitungen überschreiben alle vom Plugin definierten Provider-Standardwerte.
Gateway-RPC
| Methode | Zweck |
|---|---|
tts.status |
Aktuellen TTS-Status und letzten Versuch auslesen. |
tts.enable |
Lokale automatische Einstellung auf always setzen. |
tts.disable |
Lokale automatische Einstellung auf off setzen. |
tts.convert |
Einmalige Umwandlung von Text → Audio. |
tts.setProvider |
Lokale Provider-Einstellung festlegen. |
tts.personas |
Konfigurierte Personas und die aktive auflisten. |
tts.setPersona |
Lokale Persona-Einstellung festlegen. |
tts.providers |
Konfigurierte Provider und ihren Status auflisten. |
Service-Links
- OpenAI-Leitfaden zur Text-zu-Sprache-Umwandlung
- OpenAI-Audio-API-Referenz
- Azure Speech REST-Text-zu-Sprache
- Azure-Speech-Provider
- ElevenLabs Text-zu-Sprache
- ElevenLabs-Authentifizierung
- Gradium
- Inworld-TTS-API
- MiniMax-T2A-v2-API
- Volcengine-TTS-HTTP-API
- Xiaomi-MiMo-Sprachsynthese
- node-edge-tts
- Microsoft-Speech-Ausgabeformate
- xAI Text-zu-Sprache