stt-tts-Modus. Provider-native
realtime-Talk-Sitzungen synthetisieren Sprache innerhalb des Realtime-Providers,
statt diesen TTS-Pfad aufzurufen, während transcription-Sitzungen keine
Sprachantwort des Assistenten synthetisieren.
Schnellstart
Provider auswählen
OpenAI und ElevenLabs sind die zuverlässigsten gehosteten Optionen. Microsoft und
Local CLI funktionieren ohne API-Schlüssel. Die vollständige Liste finden Sie in der
Provider-Matrix.
API-Schlüssel setzen
Exportieren Sie die Umgebungsvariable für Ihren Provider (zum Beispiel
OPENAI_API_KEY,
ELEVENLABS_API_KEY). Microsoft und Local CLI benötigen keinen Schlüssel.Auto-TTS ist standardmäßig ausgeschaltet. Wenn
messages.tts.provider nicht gesetzt ist,
wählt OpenClaw den ersten konfigurierten Provider in der Auto-Select-Reihenfolge der Registry.
Das integrierte Agent-Tool tts ist nur für explizite Absichten gedacht: Gewöhnlicher Chat bleibt
Text, es sei denn, der Benutzer fragt nach Audio, verwendet /tts oder aktiviert Auto-TTS/Direktiv-
Sprache.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-Sprachnotiz-Ausgabe und Telefonie. |
| DeepInfra | DEEPINFRA_API_KEY | OpenAI-kompatibles TTS. Standardmäßig hexgrad/Kokoro-82M. |
| ElevenLabs | ELEVENLABS_API_KEY oder XI_API_KEY | Voice Cloning, mehrsprachig, deterministisch über seed; gestreamt für Discord-Sprachwiedergabe. |
| Google Gemini | GEMINI_API_KEY oder GOOGLE_API_KEY | Gemini-API-Batch-TTS; persona-bewusst über promptTemplate: "audio-profile-v1". |
| Gradium | GRADIUM_API_KEY | Sprachnotiz- und Telefonieausgabe. |
| Inworld | INWORLD_API_KEY | Streaming-TTS-API. Native Opus-Sprachnotiz und PCM-Telefonie. |
| Local CLI | keine | Führt einen konfigurierten lokalen TTS-Befehl aus. |
| Microsoft | keine | Öffentliches neuronales Edge-TTS über node-edge-tts. Best-Effort, kein SLA. |
| MiniMax | MINIMAX_API_KEY (oder Token-Plan: MINIMAX_OAUTH_TOKEN, MINIMAX_CODE_PLAN_KEY, MINIMAX_CODING_API_KEY) | T2A-v2-API. Standardmäßig speech-2.8-hd. |
| OpenAI | OPENAI_API_KEY | Wird auch für automatische Zusammenfassungen verwendet; unterstützt 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 (alte AppID/Token: VOLCENGINE_TTS_APPID/_TOKEN) | BytePlus Seed Speech HTTP API. |
| Vydra | VYDRA_API_KEY | Gemeinsamer Bild-, Video- und Speech-Provider. |
| xAI | XAI_API_KEY | xAI-Batch-TTS. Native Opus-Sprachnotizen werden nicht unterstützt. |
| Xiaomi MiMo | XIAOMI_API_KEY | MiMo-TTS über Xiaomi Chat Completions. |
summaryModel (oder
agents.defaults.model.primary), daher muss dieser Provider ebenfalls authentifiziert sein,
wenn Sie Zusammenfassungen aktiviert lassen.
Konfiguration
Die TTS-Konfiguration befindet sich untermessages.tts in ~/.openclaw/openclaw.json. Wählen Sie ein
Preset und passen Sie den Provider-Block an:
- Azure Speech
- ElevenLabs
- Google Gemini
- Gradium
- Inworld
- Local CLI
- Microsoft (kein Schlüssel)
- MiniMax
- OpenAI + ElevenLabs
- OpenRouter
- Volcengine
- xAI
- Xiaomi MiMo
mimo-v2.5-tts-voicedesign lassen Sie speakerVoice weg und setzen Sie style auf
den Voice-Design-Prompt. OpenClaw sendet diesen Prompt als TTS-user-Nachricht
und sendet für das Voicedesign-Modell kein audio.voice.
Sprachüberschreibungen pro Agent
Verwenden Sieagents.list[].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 per Deep Merge über
messages.tts gelegt, sodass Provider-Anmeldedaten in der globalen Provider-Konfiguration bleiben können:
agents.list[].tts.persona zusammen mit der Provider-Konfiguration — sie überschreibt die globale messages.tts.persona nur für diesen Agent.
Prioritätsreihenfolge für automatische Antworten, /tts audio, /tts status und das
Agent-Tool tts:
messages.tts- aktives
agents.list[].tts - Kanal-Override, wenn der Kanal
channels.<channel>.ttsunterstützt - Konto-Override, wenn der Kanal
channels.<channel>.accounts.<id>.ttsübergibt - lokale
/tts-Einstellungen für diesen Host - Inline-Direktiven
[[tts:...]], wenn modellgesteuerte Overrides aktiviert sind
messages.tts und
werden per Deep Merge über die früheren Ebenen gelegt, sodass gemeinsame Provider-Anmeldedaten in
messages.tts bleiben können, während ein Kanal oder Bot-Konto nur Sprecherstimme, Modell, Persona
oder Auto-Modus ändert:
Personas
Eine Persona ist eine stabile gesprochene Identität, die deterministisch über Provider hinweg angewendet werden kann. Sie kann einen Provider bevorzugen, eine Provider-neutrale Prompt-Absicht definieren und Provider-spezifische Bindungen für Stimmen, Modelle, Prompt-Vorlagen, Seeds und Stimmeinstellungen tragen.Minimale Persona
Vollständige Persona (Provider-neutraler Prompt)
Persona-Auflösung
Die aktive Persona wird deterministisch ausgewählt:- Lokale Einstellung
/tts persona <id>, falls gesetzt. messages.tts.persona, falls gesetzt.- Keine Persona.
- Direkte Overrides (CLI, Gateway, Talk, zulässige TTS-Direktiven).
- Lokale Einstellung
/tts provider <id>. providerder aktiven Persona.messages.tts.provider.- Automatische Auswahl aus der Registry.
messages.tts.providers.<id>messages.tts.personas.<persona>.providers.<id>- Vertrauenswürdige Request-Overrides
- Zulässige vom Modell ausgegebene TTS-Direktiven-Overrides
Wie Provider Persona-Prompts verwenden
Persona-Prompt-Felder (profile, scene, sampleContext, style, accent,
pacing, constraints) sind Provider-neutral. Jeder Provider entscheidet selbst, wie
er sie verwendet:
Google Gemini
Google Gemini
Schließt Persona-Prompt-Felder in eine Gemini-TTS-Prompt-Struktur ein, nur wenn
die effektive Google-Provider-Konfiguration
promptTemplate: "audio-profile-v1"
oder personaPrompt setzt. Die älteren Felder audioProfile und speakerName werden
weiterhin als Google-spezifischer Prompt-Text vorangestellt. Inline-Audio-Tags wie
[whispers] oder [laughs] innerhalb eines [[tts:text]]-Blocks bleiben
im Gemini-Transkript erhalten; OpenClaw generiert diese Tags nicht.OpenAI
OpenAI
Ordnet Persona-Prompt-Felder dem Request-Feld
instructions zu, nur wenn
keine expliziten OpenAI-instructions konfiguriert sind. Explizite instructions
haben immer Vorrang.Andere Provider
Andere Provider
Verwenden nur die Provider-spezifischen Persona-Bindungen unter
personas.<id>.providers.<provider>. Persona-Prompt-Felder werden ignoriert,
sofern der Provider keine eigene Persona-Prompt-Zuordnung implementiert.Fallback-Richtlinie
fallbackPolicy steuert das Verhalten, wenn eine Persona keine Bindung für den
versuchten Provider hat:
| Richtlinie | Verhalten |
|---|---|
preserve-persona | Standard. Provider-neutrale Prompt-Felder bleiben verfügbar; der Provider kann sie verwenden oder ignorieren. |
provider-defaults | Die Persona wird für diesen Versuch bei 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. |
talk.catalog auswählen und
sie über die Talk-Sitzung oder Handoff-Anfrage übergeben. Das Öffnen einer Sprachsitzung sollte
messages.tts oder globale Talk-Provider-Standardwerte nicht verändern.
Modellgesteuerte Direktiven
Standardmäßig kann der Assistent[[tts:...]]-Direktiven ausgeben, um
Stimme, Modell oder Geschwindigkeit für eine einzelne Antwort zu überschreiben, plus einen optionalen
[[tts:text]]...[[/tts:text]]-Block für ausdrucksstarke Hinweise, die nur im
Audio erscheinen sollen:
messages.tts.auto auf "tagged" gesetzt ist, sind Direktiven erforderlich, um
Audio auszulösen. Die Streaming-Blockzustellung entfernt Direktiven aus sichtbarem Text, bevor der
Kanal sie sieht, auch wenn sie über benachbarte Blöcke verteilt sind.
provider=... wird ignoriert, sofern nicht modelOverrides.allowProvider: true gesetzt ist. Wenn eine
Antwort provider=... deklariert, werden die anderen Schlüssel in dieser Direktive
nur von diesem Provider geparst; nicht unterstützte Schlüssel werden entfernt und als TTS-Direktiven-Warnungen gemeldet.
Verfügbare Direktiven-Schlüssel:
provider(registrierte Provider-ID; erfordertallowProvider: true)speakerVoice/speakerVoiceId(Legacy-Aliasse:voice,voiceName,voice_name,google_voice,voiceId)model/google_modelstability,similarityBoost,style,speed,useSpeakerBoostvol/volume(MiniMax-Lautstärke, 0–10)pitch(MiniMax-Ganzzahltonhöhe, −12 bis 12; Dezimalwerte werden abgeschnitten)emotion(Volcengine-Emotionstag)applyTextNormalization(auto|on|off)languageCode(ISO 639-1)seed
Slash-Befehle
Einzelner Befehl/tts. Auf Discord registriert OpenClaw außerdem /voice, weil
/tts ein integrierter Discord-Befehl ist — Text /tts ... funktioniert weiterhin.
Befehle erfordern einen autorisierten Absender (Allowlist-/Owner-Regeln gelten) und entweder
commands.text oder native Befehlsregistrierung muss aktiviert sein./tts onschreibt die lokale TTS-Einstellung aufalways;/tts offschreibt sie aufoff./tts chat on|off|defaultschreibt einen sitzungsbezogenen Auto-TTS-Override für den aktuellen Chat./tts persona <id>schreibt die lokale Persona-Einstellung;/tts persona offlöscht sie./tts latestliest die neueste Assistentenantwort aus dem aktuellen Sitzungstranskript und sendet sie einmal als Audio. Es speichert nur einen Hash dieser Antwort im Sitzungseintrag, um doppelte Sprachausgaben zu unterdrücken./tts audioerzeugt eine einmalige Audio-Antwort (schaltet TTS nicht ein).limitundsummarywerden in lokalen Einstellungen gespeichert, nicht in der Hauptkonfiguration./tts statusenthält Fallback-Diagnosen für den neuesten Versuch —Fallback: <primary> -> <used>,Attempts: ...und Details pro Versuch (provider:outcome(reasonCode) latency)./statuszeigt den aktiven TTS-Modus sowie konfigurierten Provider, Modell, Stimme und bereinigte benutzerdefinierte Endpunkt-Metadaten, wenn TTS aktiviert ist.
Benutzerspezifische Einstellungen
Slash-Befehle schreiben lokale Overrides nachprefsPath. Der Standard ist
~/.openclaw/settings/tts.json; überschreiben Sie ihn mit der Umgebungsvariable OPENCLAW_TTS_PREFS
oder messages.tts.prefsPath.
| Gespeichertes Feld | Wirkung |
|---|---|
auto | Lokaler Auto-TTS-Override (always, off, …) |
provider | Lokaler primärer Provider-Override |
persona | Lokaler Persona-Override |
maxLength | Zusammenfassungsschwelle (Standard 1500 Zeichen) |
summarize | Zusammenfassungsumschalter (Standard true) |
messages.tts plus den aktiven
agents.list[].tts-Block für diesen Host.
Ausgabeformate (fest)
Die TTS-Sprachausgabe wird durch Kanal-Fähigkeiten gesteuert. Kanal-Plugins geben an, ob TTS im Sprachstil Provider nach einem nativenvoice-note-Ziel fragen soll oder
normale audio-file-Synthese beibehalten und kompatible Ausgabe nur für die Sprachzustellung markieren soll.
- Sprachnotiz-fähige Kanäle: Sprachnotiz-Antworten bevorzugen Opus (
opus_48000_64von ElevenLabs,opusvon OpenAI).- 48 kHz / 64 kbps ist ein guter Kompromiss für Sprachnachrichten.
- Feishu / WhatsApp: Wenn eine Sprachnotiz-Antwort als MP3/WebM/WAV/M4A
oder eine andere wahrscheinliche Audiodatei erzeugt wird, transkodiert das Kanal-Plugin sie
vor dem Senden der nativen Sprachnachricht mit
ffmpegzu 48 kHz Ogg/Opus. WhatsApp sendet das Ergebnis über die Baileys-audio-Payload mitptt: trueundaudio/ogg; codecs=opus. Wenn die Konvertierung fehlschlägt, erhält Feishu die ursprüngliche Datei als Anhang; der WhatsApp-Versand schlägt fehl, statt eine inkompatible PTT-Payload zu posten. - Andere Kanäle: MP3 (
mp3_44100_128von ElevenLabs,mp3von OpenAI).- 44,1 kHz / 128 kbps ist die Standardbalance für Sprachklarheit.
- MiniMax: MP3 (
speech-2.8-hd-Modell, 32-kHz-Abtastrate) für normale Audioanhänge. Für vom Kanal angekündigte Sprachnotiz-Ziele transkodiert OpenClaw das MiniMax-MP3 vor der Auslieferung mitffmpegzu 48 kHz Opus, wenn der Kanal Transkodierung ankündigt. - Xiaomi MiMo: Standardmäßig MP3 oder WAV, wenn konfiguriert. Für vom Kanal angekündigte Sprachnotiz-Ziele transkodiert OpenClaw Xiaomi-Ausgaben vor der Auslieferung mit
ffmpegzu 48 kHz Opus, wenn der Kanal Transkodierung ankündigt. - Lokale CLI: Verwendet das konfigurierte
outputFormat. Sprachnotiz-Ziele werden zu Ogg/Opus konvertiert, und Telefonieausgabe wird mitffmpegzu rohem 16-kHz-Mono-PCM konvertiert. - Google Gemini: Gemini API TTS gibt rohes 24-kHz-PCM zurück. OpenClaw verpackt es für Audioanhänge als WAV, transkodiert es für Sprachnotiz-Ziele zu 48 kHz Opus und gibt PCM für Talk/Telefonie direkt zurück.
- Gradium: WAV für Audioanhänge, Opus für Sprachnotiz-Ziele und
ulaw_8000bei 8 kHz für Telefonie. - Inworld: MP3 für normale Audioanhänge, natives
OGG_OPUSfür Sprachnotiz-Ziele und rohesPCMbei 22050 Hz für Talk/Telefonie. - xAI: Standardmäßig MP3;
responseFormatkannmp3,wav,pcm,mulawoderalawsein. OpenClaw verwendet den Batch-REST-TTS-Endpunkt von xAI und gibt einen vollständigen Audioanhang zurück; der Streaming-TTS-WebSocket von xAI wird in diesem Provider-Pfad nicht verwendet. Das native Opus-Sprachnotizformat wird von diesem Pfad nicht unterstützt. - Microsoft: Verwendet
microsoft.outputFormat(Standardaudio-24khz-48kbitrate-mono-mp3).- Der gebündelte Transport akzeptiert ein
outputFormat, aber nicht alle Formate sind vom Dienst verfügbar. - Ausgabeformatwerte folgen 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.
- Der gebündelte Transport akzeptiert ein
Auto-TTS-Verhalten
Wennmessages.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, unter Verwendung von
summaryModel(oderagents.defaults.model.primary). - Hängt das generierte Audio an die Antwort an.
- Sendet in
mode: "final"weiterhin reines Audio-TTS für gestreamte finale Antworten, nachdem der Textstream abgeschlossen ist; die generierten Medien durchlaufen dieselbe Kanal-Mediennormalisierung wie normale Antwortanhänge.
maxLength überschreitet und Zusammenfassung deaktiviert ist (oder kein API-Schlüssel für das
Zusammenfassungsmodell vorhanden ist), wird Audio übersprungen und die normale Textantwort gesendet.
Ausgabeformate nach Kanal
| Ziel | Format |
|---|---|
| Feishu / Matrix / Telegram / WhatsApp | Sprachnotiz-Antworten bevorzugen Opus (opus_48000_64 von ElevenLabs, opus von OpenAI). 48 kHz / 64 kbps balanciert Klarheit und Größe. |
| Andere Kanäle | MP3 (mp3_44100_128 von ElevenLabs, mp3 von OpenAI). 44,1 kHz / 128 kbps als Standard für Sprache. |
| Talk / Telefonie | Provider-natives PCM (Inworld 22050 Hz, Google 24 kHz) oder ulaw_8000 von Gradium für Telefonie. |
- Feishu / WhatsApp-Transkodierung: Wenn eine Sprachnotiz-Antwort als MP3/WebM/WAV/M4A ankommt, transkodiert das Kanal-Plugin mit
ffmpegzu 48 kHz Ogg/Opus. WhatsApp sendet über Baileys mitptt: trueundaudio/ogg; codecs=opus. Wenn die Konvertierung fehlschlägt: Feishu fällt auf das Anhängen der ursprünglichen Datei zurück; der WhatsApp-Versand schlägt fehl, statt eine inkompatible PTT-Payload zu posten. - MiniMax / Xiaomi MiMo: Standardmäßig MP3 (32 kHz für MiniMax
speech-2.8-hd); für Sprachnotiz-Ziele überffmpegzu 48 kHz Opus transkodiert. - Lokale CLI: Verwendet das konfigurierte
outputFormat. Sprachnotiz-Ziele werden zu Ogg/Opus und Telefonieausgabe zu rohem 16-kHz-Mono-PCM konvertiert. - Google Gemini: Gibt rohes 24-kHz-PCM zurück. OpenClaw verpackt es für Anhänge als WAV, transkodiert es für Sprachnotiz-Ziele zu 48 kHz Opus und gibt PCM für Talk/Telefonie direkt zurück.
- Inworld: MP3-Anhänge, native
OGG_OPUS-Sprachnotiz, rohesPCMmit 22050 Hz für Talk/Telefonie. - xAI: Standardmäßig MP3;
responseFormatkannmp3|wav|pcm|mulaw|alawsein. Verwendet den Batch-REST-Endpunkt von xAI — Streaming-WebSocket-TTS wird nicht verwendet. Das native Opus-Sprachnotizformat wird nicht unterstützt. - Microsoft: Verwendet
microsoft.outputFormat(Standardaudio-24khz-48kbitrate-mono-mp3). TelegramsendVoiceakzeptiert OGG/MP3/M4A; verwenden Sie OpenAI/ElevenLabs, wenn Sie garantierte Opus-Sprachnachrichten benötigen. Wenn das konfigurierte Microsoft-Format fehlschlägt, versucht OpenClaw es erneut mit MP3.
Feldreferenz
Oberste Ebene messages.tts.*
Oberste Ebene messages.tts.*
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.Veralteter Umschalter.
openclaw doctor --fix migriert dies zu auto."all" schließt Tool-/Blockantworten zusätzlich zu finalen Antworten ein.Sprach-Provider-ID. Wenn nicht gesetzt, verwendet OpenClaw den ersten konfigurierten Provider in der Auto-Auswahlreihenfolge der Registry. Veraltetes
provider: "edge" wird von openclaw doctor --fix zu "microsoft" umgeschrieben.Aktive Persona-ID aus
personas. Wird in Kleinbuchstaben normalisiert.Stabile gesprochene Identität. Felder:
label, description, provider, fallbackPolicy, prompt, providers.<provider>. Siehe Personas.Günstiges Modell für Auto-Zusammenfassung; standardmäßig
agents.defaults.model.primary. Akzeptiert provider/model oder einen konfigurierten Modellalias.Erlaubt dem Modell, TTS-Direktiven auszugeben.
enabled ist standardmäßig true; allowProvider ist standardmäßig false.Provider-eigene Einstellungen, nach Sprach-Provider-ID indiziert. Veraltete direkte Blöcke (
messages.tts.openai, .elevenlabs, .microsoft, .edge) werden von openclaw doctor --fix umgeschrieben; committen Sie nur messages.tts.providers.<id>.Harte Obergrenze für TTS-Eingabezeichen.
/tts audio schlägt fehl, wenn sie überschritten wird.Anfrage-Timeout in Millisekunden.
Überschreibt den lokalen JSON-Pfad für Einstellungen (Provider/Limit/Zusammenfassung). Standard
~/.openclaw/settings/tts.json.Azure Speech
Azure Speech
Env:
AZURE_SPEECH_KEY, AZURE_SPEECH_API_KEY oder SPEECH_KEY.Azure Speech-Region (z. B.
eastus). Env: AZURE_SPEECH_REGION oder SPEECH_REGION.Optionale Azure Speech-Endpunktüberschreibung (Alias
baseUrl).Azure-Stimmen-ShortName. Standard
en-US-JennyNeural. Veralteter Alias: voice.SSML-Sprachcode. Standard
en-US.Azure
X-Microsoft-OutputFormat für Standardaudio. Standard audio-24khz-48kbitrate-mono-mp3.Azure
X-Microsoft-OutputFormat für Sprachnotiz-Ausgabe. Standard ogg-24khz-16bit-mono-opus.ElevenLabs
ElevenLabs
Fällt auf
ELEVENLABS_API_KEY oder XI_API_KEY zurück.Modell-ID (z. B.
eleven_multilingual_v2, eleven_v3).ElevenLabs-Stimmen-ID. Veralteter Alias:
voiceId.stability, similarityBoost, style (jeweils 0..1), useSpeakerBoost (true|false), speed (0.5..2.0, 1.0 = normal).Textnormalisierungsmodus.
2-buchstabiger ISO 639-1-Code (z. B.
en, de).Ganzzahl
0..4294967295 für Best-Effort-Determinismus.Überschreibt die Basis-URL der ElevenLabs API.
Google Gemini
Google Gemini
Fällt auf
GEMINI_API_KEY / GOOGLE_API_KEY zurück. Wenn weggelassen, kann TTS models.providers.google.apiKey vor dem Env-Fallback wiederverwenden.Gemini-TTS-Modell. Standard
gemini-3.1-flash-tts-preview.Vorgefertigter Gemini-Stimmenname. Standard
Kore. Veraltete Aliasse: voiceName, voice.Natürlichsprachiger Stil-Prompt, der dem gesprochenen Text vorangestellt wird.
Optionale Sprecherbezeichnung, die dem gesprochenen Text vorangestellt wird, wenn Ihr Prompt einen benannten Sprecher verwendet.
Auf
audio-profile-v1 setzen, um aktive Persona-Prompt-Felder in eine deterministische Gemini-TTS-Prompt-Struktur einzubetten.Google-spezifischer zusätzlicher Persona-Prompt-Text, der an die Director’s Notes der Vorlage angehängt wird.
Nur
https://generativelanguage.googleapis.com wird akzeptiert.Gradium
Gradium
Inworld
Inworld
Primäres Inworld
Umgebung:
INWORLD_API_KEY.Standard
https://api.inworld.ai.Standard
inworld-tts-1.5-max. Außerdem: inworld-tts-1.5-mini, inworld-tts-1-max, inworld-tts-1.Standard
Sarah. Legacy-Alias: voiceId.Sampling-Temperatur
0..2.Local CLI (tts-local-cli)
Local CLI (tts-local-cli)
Lokale ausführbare Datei oder Befehlszeichenfolge für CLI-TTS.
Befehlsargumente. Unterstützt die Platzhalter
{{Text}}, {{OutputPath}}, {{OutputDir}}, {{OutputBase}}.Erwartetes CLI-Ausgabeformat. Standard
mp3 für Audioanhänge.Befehls-Timeout in Millisekunden. Standard
120000.Optionales Arbeitsverzeichnis für den Befehl.
Optionale Umgebungs-Overrides für den Befehl.
Microsoft (no API key)
Microsoft (no API key)
Microsoft-Sprachnutzung zulassen.
Name der neuronalen Microsoft-Stimme (z. B.
en-US-MichelleNeural). Legacy-Alias: voice.Sprachcode (z. B.
en-US).Microsoft-Ausgabeformat. Standard
audio-24khz-48kbitrate-mono-mp3. Nicht alle Formate werden vom gebündelten Edge-gestützten Transport unterstützt.Prozentzeichenfolgen (z. B.
+10%, -5%).JSON-Untertitel neben die Audiodatei schreiben.
Proxy-URL für Microsoft-Sprachanfragen.
Request-Timeout-Override (ms).
Legacy-Alias. Führen Sie
openclaw doctor --fix aus, um persistierte Konfiguration in providers.microsoft umzuschreiben.MiniMax
MiniMax
Fällt auf
MINIMAX_API_KEY zurück. Token-Plan-Authentifizierung über MINIMAX_OAUTH_TOKEN, MINIMAX_CODE_PLAN_KEY oder MINIMAX_CODING_API_KEY.Standard
https://api.minimax.io. Umgebung: MINIMAX_API_HOST.Standard
speech-2.8-hd. Umgebung: MINIMAX_TTS_MODEL.Standard
English_expressive_narrator. Umgebung: MINIMAX_TTS_VOICE_ID. Legacy-Alias: voiceId.0.5..2.0. Standard 1.0.(0, 10]. Standard 1.0.Ganzzahl
-12..12. Standard 0. Bruchwerte werden vor der Anfrage abgeschnitten.OpenAI
OpenAI
Fällt auf
OPENAI_API_KEY zurück.OpenAI-TTS-Modell-ID (z. B.
gpt-4o-mini-tts).Stimmenname (z. B.
alloy, cedar). Legacy-Alias: voice.Explizites OpenAI-Feld
instructions. Wenn gesetzt, werden Persona-Prompt-Felder nicht automatisch zugeordnet.Zusätzliche JSON-Felder, die nach generierten OpenAI-TTS-Feldern in
/audio/speech-Request-Bodys zusammengeführt werden. Verwenden Sie dies für OpenAI-kompatible Endpunkte wie Kokoro, die Provider-spezifische Schlüssel wie lang erfordern; unsichere Prototypschlüssel werden ignoriert.Überschreibt den OpenAI-TTS-Endpunkt. 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.OpenRouter
OpenRouter
Umgebung:
OPENROUTER_API_KEY. Kann models.providers.openrouter.apiKey wiederverwenden.Standard
https://openrouter.ai/api/v1. Legacy https://openrouter.ai/v1 wird normalisiert.Standard
hexgrad/kokoro-82m. Alias: modelId.Standard
af_alloy. Legacy-Aliasse: voice, voiceId.Standard
mp3.Provider-nativer Speed-Override.
Volcengine (BytePlus Seed Speech)
Volcengine (BytePlus Seed Speech)
Umgebung:
VOLCENGINE_TTS_API_KEY oder BYTEPLUS_SEED_SPEECH_API_KEY.Standard
seed-tts-1.0. Umgebung: VOLCENGINE_TTS_RESOURCE_ID. Verwenden Sie seed-tts-2.0, wenn Ihr Projekt über eine TTS-2.0-Berechtigung verfügt.App-Key-Header. Standard
aGjiRDfUWi. Umgebung: VOLCENGINE_TTS_APP_KEY.Überschreibt den Seed-Speech-TTS-HTTP-Endpunkt. Umgebung:
VOLCENGINE_TTS_BASE_URL.Stimmentyp. Standard
en_female_anna_mars_bigtts. Umgebung: VOLCENGINE_TTS_VOICE. Legacy-Alias: voice.Provider-natives Geschwindigkeitsverhältnis.
Provider-natives Emotions-Tag.
Legacy-Felder der Volcengine Speech Console. Umgebung:
VOLCENGINE_TTS_APPID, VOLCENGINE_TTS_TOKEN, VOLCENGINE_TTS_CLUSTER (Standard volcano_tts).xAI
xAI
Umgebung:
XAI_API_KEY.Standard
https://api.x.ai/v1. Umgebung: XAI_BASE_URL.Standard
eve. Live-Stimmen: ara, eve, leo, rex, sal, una. Legacy-Alias: voiceId.BCP-47-Sprachcode oder
auto. Standard en.Standard
mp3.Provider-nativer Speed-Override.
Xiaomi MiMo
Xiaomi MiMo
Umgebung:
XIAOMI_API_KEY.Standard
https://api.xiaomimimo.com/v1. Umgebung: XIAOMI_BASE_URL.Standard
mimo-v2.5-tts. Umgebung: XIAOMI_TTS_MODEL. Unterstützt auch mimo-v2-tts und mimo-v2.5-tts-voicedesign.Standard
mimo_default für Modelle mit voreingestellter Stimme. Umgebung: XIAOMI_TTS_VOICE. Legacy-Alias: voice. Wird für mimo-v2.5-tts-voicedesign nicht gesendet.Standard
mp3. Umgebung: XIAOMI_TTS_FORMAT.Optionale natürlichsprachliche Stilanweisung, die als Benutzernachricht gesendet wird; sie wird nicht gesprochen. Für
mimo-v2.5-tts-voicedesign ist dies der Voice-Design-Prompt; OpenClaw stellt einen Standard bereit, wenn er ausgelassen wird.Agent-Tool
Das Tooltts wandelt Text in Sprache um und gibt einen Audioanhang für die
Antwortzustellung zurück. In Feishu, Matrix, Telegram und WhatsApp wird das Audio
als Sprachnachricht statt als Dateianhang zugestellt. Feishu und
WhatsApp können auf diesem Pfad Nicht-Opus-TTS-Ausgaben transkodieren, wenn ffmpeg
verfügbar ist.
WhatsApp sendet Audio über Baileys als PTT-Sprachnotiz (audio mit
ptt: true) und sendet sichtbaren Text separat von PTT-Audio, da
Clients Beschriftungen für Sprachnotizen nicht durchgängig rendern.
Das Tool akzeptiert optionale Felder channel und timeoutMs; timeoutMs ist ein
Provider-Request-Timeout pro Aufruf in Millisekunden. Werte pro Aufruf überschreiben
messages.tts.timeoutMs; konfigurierte TTS-Timeouts überschreiben jeden von Plugins verfassten
Provider-Standard.
Gateway-RPC
| Methode | Zweck |
|---|---|
tts.status | Aktuellen TTS-Zustand und letzten Versuch lesen. |
tts.enable | Lokale Auto-Präferenz auf always setzen. |
tts.disable | Lokale Auto-Präferenz auf off setzen. |
tts.convert | Einmalige Umwandlung von Text → Audio. |
tts.setProvider | Lokale Provider-Präferenz setzen. |
tts.setPersona | Lokale Persona-Präferenz setzen. |
tts.providers | Konfigurierte Provider und Status auflisten. |
Service-Links
- OpenAI-Leitfaden für Text-to-Speech
- OpenAI Audio API-Referenz
- Azure Speech REST Text-to-Speech
- Azure Speech-Provider
- ElevenLabs Text to Speech
- 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-to-Speech