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:

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

    json5
    {tts: {auto: "always",provider: "azure-speech",providers: {  "azure-speech": {    apiKey: "${AZURE_SPEECH_KEY}",    region: "eastus",    speakerVoice: "en-US-JennyNeural",    lang: "en-US",    outputFormat: "audio-24khz-48kbitrate-mono-mp3",    voiceNoteOutputFormat: "ogg-24khz-16bit-mono-opus",  },},},}

    ElevenLabs

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

    Google Gemini

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

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

    Inworld

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

    Lokale CLI

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

    json5
    {tts: {auto: "always",provider: "microsoft",providers: {  microsoft: {    enabled: true,    speakerVoice: "en-US-MichelleNeural",    lang: "en-US",    outputFormat: "audio-24khz-48kbitrate-mono-mp3",    rate: "+0%",    pitch: "+0%",  },},},}

    MiniMax

    json5
    {tts: {auto: "always",provider: "minimax",providers: {  minimax: {    apiKey: "${MINIMAX_API_KEY}",    model: "speech-2.8-hd",    speakerVoiceId: "English_expressive_narrator",    speed: 1.0,    vol: 1.0,    pitch: 0,  },},},}

    OpenAI + ElevenLabs

    json5
    {tts: {auto: "always",provider: "openai",summaryModel: "openai/gpt-4.1-mini",modelOverrides: { enabled: true },providers: {  openai: {    apiKey: "${OPENAI_API_KEY}",    model: "gpt-4o-mini-tts",    speakerVoice: "alloy",  },  elevenlabs: {    apiKey: "${ELEVENLABS_API_KEY}",    model: "eleven_multilingual_v2",    speakerVoiceId: "EXAVITQu4vr4xnSDxMaL",    voiceSettings: { stability: 0.5, similarityBoost: 0.75, style: 0.0, useSpeakerBoost: true, speed: 1.0 },    applyTextNormalization: "auto",    languageCode: "en",  },},},}

    OpenRouter

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

    Volcengine

    json5
    {tts: {auto: "always",provider: "volcengine",providers: {  volcengine: {    apiKey: "${VOLCENGINE_TTS_API_KEY}",    resourceId: "seed-tts-1.0",    speakerVoice: "en_female_anna_mars_bigtts",  },},},}

    xAI

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

    Xiaomi MiMo

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

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

    1. tts
    2. aktives agents.entries.*.tts
    3. Kanalüberschreibung, wenn der Kanal channels.<channel>.tts unterstützt
    4. Kontoüberschreibung, wenn der Kanal channels.<channel>.accounts.<id>.tts übergibt
    5. lokale /tts-Einstellungen für diesen Host
    6. 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:

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

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

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

    1. lokale /tts persona <id>-Einstellung, sofern festgelegt.
    2. tts.persona, sofern festgelegt.
    3. Keine Persona.

    Die Provider-Auswahl erfolgt mit Vorrang für explizite Angaben:

    1. Direkte Überschreibungen (CLI, Gateway, Talk, zulässige TTS-Direktiven).
    2. Lokale /tts provider <id>-Einstellung.
    3. provider der aktiven Persona.
    4. tts.provider.
    5. Automatische Auswahl aus der Registry.

    Für jeden Provider-Versuch führt OpenClaw Konfigurationen in dieser Reihenfolge zusammen:

    1. tts.providers.<id>
    2. tts.personas.<persona>.providers.<id>
    3. Vertrauenswürdige Anforderungsüberschreibungen
    4. 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:

    text
    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; erfordert allowProvider: true)
    • speakerVoice / speakerVoiceId (veraltete Aliase: voice, voiceName, voice_name, google_voice, voiceId)
    • model / google_model
    • stability, similarityBoost, style, speed, useSpeakerBoost
    • vol / 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:

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

    Provider-Wechsel zulassen, während andere Einstellungen konfigurierbar bleiben:

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

    text
    /tts off | on | status/tts chat on | off | default/tts latest/tts provider <id>/tts persona <id> | off/tts limit <chars>/tts summary off/tts audio <text>

    Hinweise zum Verhalten:

    • /tts on schreibt die lokale TTS-Einstellung nach always; /tts off schreibt sie nach off.
    • /tts chat on|off|default schreibt für den aktuellen Chat eine sitzungsbezogene Auto-TTS-Überschreibung.
    • /tts persona <id> schreibt die lokale Persona-Einstellung; /tts persona off löscht sie.
    • /tts latest liest 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 audio erzeugt 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.
    • limit und summary werden in lokalen Einstellungen und nicht in der Hauptkonfiguration gespeichert.
    • /tts status enthält Fallback-Diagnosen für den letzten Versuch — Fallback: <primary> -> <used>, Attempts: ... und Details pro Versuch (provider:outcome(reasonCode) latency).
    • /status zeigt 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 mit ptt: true und audio/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 mit ffmpeg in 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 ffmpeg in Opus mit 48 kHz transkodiert.
    • Lokale CLI: Verwendet das konfigurierte outputFormat. Sprachnachrichten-Ziele werden in Ogg/Opus und Telefonieausgaben mit ffmpeg in 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_8000 mit 8 kHz für Telefonie.
    • Inworld: MP3 für normale Audioanhänge, natives OGG_OPUS für Sprachnachrichten-Ziele und rohes PCM mit 22050 Hz für Talk/Telefonie.
    • xAI: Standardmäßig MP3; die Audiodateisynthese kann mp3, wav, pcm, mulaw oder alaw sowohl für gepufferte als auch für Streaming-Ausgaben verwenden. Sprachnachrichten-Ziele verwenden MP3 für Streaming und den gepufferten Fallback, da die Ausgaben pcm, mulaw und alaw von xAI headerlose Rohaudiodaten sind. Die gepufferte Synthese verwendet den Batch-REST-Endpunkt /v1/tts von xAI; textToSpeechStream verwendet natives wss://api.x.ai/v1/tts. Dies ist nicht der Echtzeit-Sprachvertrag. Das native Opus-Sprachnachrichtenformat wird nicht unterstützt.
    • Microsoft: Verwendet microsoft.outputFormat (Standardwert audio-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 sendVoice akzeptiert 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, Gebietsschema zh-CN), falls der Antworttext überwiegend aus CJK-Zeichen besteht.

    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 (oder agents.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 maxLength Zeichen 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 maxLength Zeichen und synthetisiert den gekürzten Text.
    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ängen

    Feldreferenz

    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.

    enabledboolean

    Veralteter 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.

    providerstring

    ID 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.

    personastring

    ID 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.

    summaryModelstring

    Kostengünstiges Modell für automatische Zusammenfassungen; standardmäßig agents.defaults.model.primary. Akzeptiert provider/model oder einen konfigurierten Modellalias.

    modelOverridesobject

    Erlaubt 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: 4096

    Harte Obergrenze für TTS-Eingabezeichen. /tts audio, tts.convert und tts.speak schlagen bei einer Überschreitung fehl.

    timeoutMsnumberdefault: 30000

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

    voiceSettingsobject

    stability, 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:

    baseUrlstring
    Google 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:

    audioProfilestring
    speakerNamestring

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InByb21wdFRlbXBsYXRlIiB0eXBlPSciYXVkaW8tcHJvZmlsZS12MSIn Auf audio-profile-v1 setzen, um aktive Persona-Anweisungsfelder in eine deterministische Gemini-TTS-Anweisungsstruktur einzubetten. OPENCLAW_DOCS_MARKER:paramClose:

    personaPromptstring

    OPENCLAW_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)
    commandstring

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

    cwdstring
    env"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: true

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

    saveSubtitlesboolean
    proxystring
    timeoutMsnumber

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

    baseUrlstring

    Den OpenAI-TTS-Endpunkt überschreiben. Auflösungsreihenfolge: Konfiguration → OPENAI_TTS_BASE_URLhttps://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:

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

    emotionstring

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

    Verwandte Themen

    Was this useful?
    On this page

    On this page