Text-to-Speech (TTS)
OpenClaw kann ausgehende Antworten mit ElevenLabs, Microsoft, MiniMax oder OpenAI in Audio umwandeln. Es funktioniert überall dort, wo OpenClaw Audio senden kann.Unterstützte Dienste
- ElevenLabs (primärer oder Fallback-Provider)
- Microsoft (primärer oder Fallback-Provider; die aktuelle gebündelte Implementierung verwendet
node-edge-tts) - MiniMax (primärer oder Fallback-Provider; verwendet die T2A-v2-API)
- OpenAI (primärer oder Fallback-Provider; wird auch für Zusammenfassungen verwendet)
Hinweise zu Microsoft Speech
Der gebündelte Microsoft-Speech-Provider verwendet derzeit den Online- Neural-TTS-Dienst von Microsoft Edge über die Bibliotheknode-edge-tts. Es ist ein gehosteter Dienst (nicht
lokal), verwendet Microsoft-Endpunkte und erfordert keinen API-Schlüssel.
node-edge-tts stellt Konfigurationsoptionen für Sprache und Ausgabeformate bereit, aber
nicht alle Optionen werden vom Dienst unterstützt. Veraltete Konfiguration und Directive-Eingaben
mit edge funktionieren weiterhin und werden zu microsoft normalisiert.
Da dieser Pfad ein öffentlicher Webdienst ohne veröffentlichte SLA oder Quoten ist,
sollte er als Best Effort behandelt werden. Wenn Sie garantierte Limits und Support benötigen, verwenden Sie OpenAI
oder ElevenLabs.
Optionale Schlüssel
Wenn Sie OpenAI, ElevenLabs oder MiniMax verwenden möchten:ELEVENLABS_API_KEY(oderXI_API_KEY)MINIMAX_API_KEYOPENAI_API_KEY
summaryModel (oder agents.defaults.model.primary),
daher muss dieser Provider ebenfalls authentifiziert sein, wenn Sie Zusammenfassungen aktivieren.
Dienst-Links
- OpenAI Text-to-Speech-Leitfaden
- OpenAI Audio API-Referenz
- ElevenLabs Text to Speech
- ElevenLabs Authentication
- MiniMax T2A v2 API
- node-edge-tts
- Microsoft-Speech-Ausgabeformate
Ist es standardmäßig aktiviert?
Nein. Auto‑TTS ist standardmäßig deaktiviert. Aktivieren Sie es in der Konfiguration mitmessages.tts.auto oder pro Sitzung mit /tts always (Alias: /tts on).
Wenn messages.tts.provider nicht gesetzt ist, wählt OpenClaw den ersten konfigurierten
Speech-Provider in der Auto-Select-Reihenfolge der Registry.
Konfiguration
Die TTS-Konfiguration befindet sich untermessages.tts in openclaw.json.
Das vollständige Schema finden Sie unter Gateway-Konfiguration.
Minimale Konfiguration (aktivieren + Provider)
OpenAI primär mit ElevenLabs als Fallback
Microsoft primär (kein API-Schlüssel)
MiniMax primär
Microsoft Speech deaktivieren
Benutzerdefinierte Limits + prefs-Pfad
Nur nach einer eingehenden Sprachnachricht mit Audio antworten
Automatische Zusammenfassung für lange Antworten deaktivieren
Hinweise zu den Feldern
auto: Auto‑TTS-Modus (off,always,inbound,tagged).inboundsendet Audio nur nach einer eingehenden Sprachnachricht.taggedsendet Audio nur, wenn die Antwort[[tts]]-Tags enthält.
enabled: veralteter Schalter (doctor migriert dies zuauto).mode:"final"(Standard) oder"all"(einschließlich Tool-/Block-Antworten).provider: Speech-Provider-ID wie"elevenlabs","microsoft","minimax"oder"openai"(Fallback erfolgt automatisch).- Wenn
providernicht gesetzt ist, verwendet OpenClaw den ersten konfigurierten Speech-Provider in der Auto-Select-Reihenfolge der Registry. - Das veraltete
provider: "edge"funktioniert weiterhin und wird zumicrosoftnormalisiert. summaryModel: optionales günstiges Modell für automatische Zusammenfassungen; Standard istagents.defaults.model.primary.- Akzeptiert
provider/modeloder einen konfigurierten Modellalias.
- Akzeptiert
modelOverrides: erlaubt dem Modell, TTS-Directives auszugeben (standardmäßig aktiviert).allowProviderist standardmäßigfalse(Provider-Wechsel ist Opt-in).
providers.<id>: provider-eigene Einstellungen, verschlüsselt nach Speech-Provider-ID.- Veraltete direkte Provider-Blöcke (
messages.tts.openai,messages.tts.elevenlabs,messages.tts.microsoft,messages.tts.edge) werden beim Laden automatisch zumessages.tts.providers.<id>migriert. maxTextLength: hartes Limit für TTS-Eingaben (Zeichen)./tts audioschlägt fehl, wenn es überschritten wird.timeoutMs: Request-Timeout (ms).prefsPath: überschreibt den lokalen prefs-JSON-Pfad (Provider/Limit/Zusammenfassung).apiKey-Werte greifen auf Umgebungsvariablen zurück (ELEVENLABS_API_KEY/XI_API_KEY,MINIMAX_API_KEY,OPENAI_API_KEY).providers.elevenlabs.baseUrl: überschreibt die ElevenLabs-API-Basis-URL.providers.openai.baseUrl: überschreibt den OpenAI-TTS-Endpunkt.- Auflösungsreihenfolge:
messages.tts.providers.openai.baseUrl->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 Stimmmnamen akzeptiert.
- Auflösungsreihenfolge:
providers.elevenlabs.voiceSettings:stability,similarityBoost,style:0..1useSpeakerBoost:true|falsespeed:0.5..2.0(1.0 = normal)
providers.elevenlabs.applyTextNormalization:auto|on|offproviders.elevenlabs.languageCode: 2-stelliger ISO-639-1-Code (z. B.en,de)providers.elevenlabs.seed: Ganzzahl0..4294967295(Best-Effort-Determinismus)providers.minimax.baseUrl: überschreibt die MiniMax-API-Basis-URL (Standardhttps://api.minimax.io, Umgebungsvariable:MINIMAX_API_HOST).providers.minimax.model: TTS-Modell (Standardspeech-2.8-hd, Umgebungsvariable:MINIMAX_TTS_MODEL).providers.minimax.voiceId: Sprachkennung (StandardEnglish_expressive_narrator, Umgebungsvariable:MINIMAX_TTS_VOICE_ID).providers.minimax.speed: Wiedergabegeschwindigkeit0.5..2.0(Standard 1.0).providers.minimax.vol: Lautstärke(0, 10](Standard 1.0; muss größer als 0 sein).providers.minimax.pitch: Tonhöhenverschiebung-12..12(Standard 0).providers.microsoft.enabled: erlaubt die Nutzung von Microsoft Speech (Standardtrue; kein API-Schlüssel).providers.microsoft.voice: Name der Microsoft-Neural-Stimme (z. B.en-US-MichelleNeural).providers.microsoft.lang: Sprachcode (z. B.en-US).providers.microsoft.outputFormat: Microsoft-Ausgabeformat (z. B.audio-24khz-48kbitrate-mono-mp3).- Gültige Werte finden Sie unter Microsoft-Speech-Ausgabeformate; nicht alle Formate werden vom gebündelten Edge-basierten Transport unterstützt.
providers.microsoft.rate/providers.microsoft.pitch/providers.microsoft.volume: Prozent-Strings (z. B.+10%,-5%).providers.microsoft.saveSubtitles: schreibt JSON-Untertitel neben die Audiodatei.providers.microsoft.proxy: Proxy-URL für Microsoft-Speech-Requests.providers.microsoft.timeoutMs: Überschreibung des Request-Timeouts (ms).edge.*: veralteter Alias für dieselben Microsoft-Einstellungen.
Modellgesteuerte Überschreibungen (standardmäßig aktiviert)
Standardmäßig kann das Modell TTS-Directives für eine einzelne Antwort ausgeben. Wennmessages.tts.auto auf tagged gesetzt ist, sind diese Directives erforderlich, um Audio auszulösen.
Wenn aktiviert, kann das Modell [[tts:...]]-Directives ausgeben, um die Stimme
für eine einzelne Antwort zu überschreiben, sowie optional einen [[tts:text]]...[[/tts:text]]-Block,
um ausdrucksstarke Tags (Lachen, Gesangshinweise usw.) bereitzustellen, die nur im
Audio erscheinen sollen.
provider=...-Directives werden ignoriert, sofern nicht modelOverrides.allowProvider: true.
Beispiel für eine Antwort-Payload:
provider(registrierte Speech-Provider-ID, z. B.openai,elevenlabs,minimaxodermicrosoft; erfordertallowProvider: true)voice(OpenAI-Stimme) odervoiceId(ElevenLabs / MiniMax)model(OpenAI-TTS-Modell, ElevenLabs-Modell-ID oder MiniMax-Modell)stability,similarityBoost,style,speed,useSpeakerBoostvol/volume(MiniMax-Lautstärke, 0-10)pitch(MiniMax-Tonhöhe, -12 bis 12)applyTextNormalization(auto|on|off)languageCode(ISO 639-1)seed
Benutzerspezifische Einstellungen
Slash-Befehle schreiben lokale Überschreibungen nachprefsPath (Standard:
~/.openclaw/settings/tts.json, überschreibbar mit OPENCLAW_TTS_PREFS oder
messages.tts.prefsPath).
Gespeicherte Felder:
enabledprovidermaxLength(Schwellenwert für Zusammenfassungen; Standard 1500 Zeichen)summarize(Standardtrue)
messages.tts.* für diesen Host.
Ausgabeformate (fest)
- Feishu / Matrix / Telegram / WhatsApp: Opus-Sprachnachricht (
opus_48000_64von ElevenLabs,opusvon OpenAI).- 48 kHz / 64 kbps ist ein guter Kompromiss für Sprachnachrichten.
- Andere Kanäle: MP3 (
mp3_44100_128von ElevenLabs,mp3von OpenAI).- 44,1 kHz / 128 kbps ist der Standardkompromiss für klare Sprachwiedergabe.
- MiniMax: MP3 (
speech-2.8-hd-Modell, 32-kHz-Abtastrate). Das Format für Sprachnotizen wird nativ nicht unterstützt; verwenden Sie OpenAI oder ElevenLabs für garantiertes Opus bei Sprachnachrichten. - Microsoft: verwendet
microsoft.outputFormat(Standardaudio-24khz-48kbitrate-mono-mp3).- Der gebündelte Transport akzeptiert ein
outputFormat, aber nicht alle Formate sind im Dienst verfügbar. - Die Werte für Ausgabeformate folgen den Microsoft-Speech-Ausgabeformaten (einschließlich Ogg/WebM Opus).
- Telegram
sendVoiceakzeptiert OGG/MP3/M4A; verwenden Sie OpenAI/ElevenLabs, wenn Sie garantiertes Opus für Sprachnachrichten benötigen. - Wenn das konfigurierte Microsoft-Ausgabeformat fehlschlägt, versucht OpenClaw es erneut mit MP3.
- Der gebündelte Transport akzeptiert ein
Verhalten von Auto-TTS
Wenn aktiviert, führt OpenClaw Folgendes aus:- TTS wird übersprungen, wenn die Antwort bereits Medien oder eine
MEDIA:-Directive enthält. - Sehr kurze Antworten (< 10 Zeichen) werden übersprungen.
- Lange Antworten werden bei aktivierter Funktion mit
agents.defaults.model.primary(odersummaryModel) zusammengefasst. - Das erzeugte Audio wird an die Antwort angehängt.
maxLength überschreitet und die Zusammenfassung deaktiviert ist (oder kein API-Schlüssel für das
Zusammenfassungsmodell vorhanden ist), wird Audio
übersprungen und die normale Textantwort gesendet.
Ablaufdiagramm
Verwendung per Slash-Befehl
Es gibt einen einzelnen Befehl:/tts.
Details zur Aktivierung finden Sie unter Slash-Befehle.
Hinweis für Discord: /tts ist ein integrierter Discord-Befehl, daher registriert OpenClaw dort
/voice als nativen Befehl. Textbasiertes /tts ... funktioniert weiterhin.
- Befehle erfordern einen autorisierten Absender (Allowlist-/Owner-Regeln gelten weiterhin).
commands.textoder die Registrierung nativer Befehle muss aktiviert sein.off|always|inbound|taggedsind Umschalter pro Sitzung (/tts onist ein Alias für/tts always).limitundsummarywerden in lokalen Einstellungen gespeichert, nicht in der Hauptkonfiguration./tts audioerzeugt eine einmalige Audio-Antwort (aktiviert TTS nicht dauerhaft)./tts statusenthält Fallback-Sichtbarkeit für den letzten Versuch:- erfolgreicher Fallback:
Fallback: <primary> -> <used>plusAttempts: ... - Fehler:
Error: ...plusAttempts: ... - detaillierte Diagnostik:
Attempt details: provider:outcome(reasonCode) latency
- erfolgreicher Fallback:
- Fehler von OpenAI- und ElevenLabs-APIs enthalten jetzt geparste Provider-Fehlerdetails und Request-IDs (wenn vom Provider zurückgegeben), was in TTS-Fehlern/Logs sichtbar gemacht wird.
Agent-Tool
Das Tooltts wandelt Text in Sprache um und gibt einen Audio-Anhang für
die Antwortzustellung zurück. Wenn der Kanal Feishu, Matrix, Telegram oder WhatsApp ist,
wird das Audio als Sprachnachricht statt als Dateianhang zugestellt.
Gateway RPC
Gateway-Methoden:tts.statustts.enabletts.disabletts.converttts.setProvidertts.providers