stt-tts de Talk (talk.speak appelle
ce même chemin de synthèse). Les sessions Talk realtime natives du fournisseur synthétisent
la parole au sein du fournisseur en temps réel ; les sessions transcription ne
synthétisent jamais de réponse vocale de l’assistant.
Démarrage rapide
1
Choisir un fournisseur
OpenAI et ElevenLabs sont les options hébergées les plus fiables. Microsoft et la
CLI locale fonctionnent sans clé d’API. Consultez la matrice des fournisseurs
pour obtenir la liste complète.
2
Définir la clé d’API
Exportez la variable d’environnement de votre fournisseur (par exemple
OPENAI_API_KEY,
ELEVENLABS_API_KEY). Microsoft et la CLI locale ne nécessitent aucune clé.3
Activer dans la configuration
Définissez
messages.tts.auto: "always" et messages.tts.provider :4
Essayer dans le chat
/tts status affiche l’état actuel. /tts audio Hello from OpenClaw
envoie une réponse audio ponctuelle.La synthèse vocale automatique est désactivée par défaut. Lorsque
messages.tts.provider n’est pas défini,
OpenClaw choisit le premier fournisseur configuré selon l’ordre de sélection automatique du registre.
L’outil d’agent intégré tts ne répond qu’aux intentions explicites : les échanges ordinaires restent
textuels, sauf si l’utilisateur demande de l’audio, utilise /tts ou active la synthèse vocale
automatique/par directive.Fournisseurs pris en charge
Si plusieurs fournisseurs sont configurés, celui qui est sélectionné est utilisé en premier et les
autres servent de solutions de secours. Le résumé automatique utilise
summaryModel (ou
agents.defaults.model.primary) ; ce fournisseur doit donc également être authentifié
si vous laissez les résumés activés.
Configuration
La configuration de la synthèse vocale se trouve sousmessages.tts dans ~/.openclaw/openclaw.json. Choisissez un
préréglage et adaptez le bloc du fournisseur. Les champs speakerVoice/speakerVoiceId
présentés ci-dessous sont canoniques ; les noms de champs voice/voiceId/
voiceName propres à chaque fournisseur continuent de fonctionner comme alias hérités.
- Azure Speech
- ElevenLabs
- Google Gemini
- Gradium
- Inworld
- CLI locale
- Microsoft (sans clé)
- MiniMax
- OpenAI + ElevenLabs
- OpenRouter
- Volcengine
- xAI
- Xiaomi MiMo
mimo-v2.5-tts-voicedesign, omettez speakerVoice et définissez style sur
l’invite de conception vocale. OpenClaw envoie cette invite comme message user de synthèse vocale
et n’envoie pas audio.voice pour le modèle voicedesign.
Remplacements de voix par agent
Utilisezagents.list[].tts lorsqu’un agent doit parler avec un fournisseur, une voix, un modèle, une persona ou un mode TTS automatique différent. Le bloc de l’agent est fusionné récursivement par-dessus messages.tts, de sorte que les identifiants du fournisseur peuvent rester dans la configuration globale du fournisseur :
agents.list[].tts.persona avec la configuration du fournisseur : cette valeur remplace la valeur globale messages.tts.persona pour cet agent uniquement.
Ordre de priorité pour les réponses automatiques, /tts audio, /tts status et l’outil d’agent tts :
messages.ttsagents.list[].ttsactif- remplacement du canal, lorsque le canal prend en charge
channels.<channel>.tts - remplacement du compte, lorsque le canal transmet
channels.<channel>.accounts.<id>.tts - préférences
/ttslocales pour cet hôte - directives
[[tts:...]]intégrées lorsque les remplacements pilotés par le modèle sont activés
messages.tts et sont fusionnés récursivement par-dessus les couches précédentes. Les identifiants partagés du fournisseur peuvent ainsi rester dans messages.tts, tandis qu’un canal ou un compte de bot ne modifie que la voix du locuteur, le modèle, la persona ou le mode automatique :
Personas
Une persona est une identité vocale stable qui peut être appliquée de manière déterministe entre les fournisseurs. Elle peut privilégier un fournisseur, définir une intention d’invite indépendante du fournisseur et comporter des liaisons propres à chaque fournisseur pour les voix, les modèles, les modèles d’invite, les graines et les paramètres vocaux.Persona minimale
Persona complète (invite indépendante du fournisseur)
Résolution de la persona
La persona active est sélectionnée de manière déterministe :- préférence locale
/tts persona <id>, si elle est définie. messages.tts.persona, si elle est définie.- Aucune persona.
- Remplacements directs (CLI, Gateway, Talk, directives TTS autorisées).
- Préférence locale
/tts provider <id>. providerde la persona active.messages.tts.provider.- Sélection automatique par le registre.
messages.tts.providers.<id>messages.tts.personas.<persona>.providers.<id>- Remplacements de requête fiables
- Remplacements autorisés des directives TTS émises par le modèle
Utilisation des invites de persona par les fournisseurs
Les champs d’invite de persona (profile, scene, sampleContext, style, accent, pacing, constraints) sont indépendants du fournisseur. Chaque fournisseur décide de leur utilisation :
Google Gemini
Google Gemini
Encapsule les champs d’invite de persona dans une structure d’invite TTS Gemini uniquement lorsque la configuration effective du fournisseur Google définit
promptTemplate: "audio-profile-v1" ou personaPrompt. Les anciens champs audioProfile et speakerName sont toujours ajoutés en préfixe sous forme de texte d’invite propre à Google. Les balises audio intégrées telles que [whispers] ou [laughs] dans un bloc [[tts:text]] sont conservées dans la transcription Gemini ; OpenClaw ne génère pas ces balises.OpenAI
OpenAI
Associe les champs d’invite de persona au champ
instructions de la requête **uniquement lorsqu’**aucune valeur OpenAI instructions explicite n’est configurée. Une valeur instructions explicite est toujours prioritaire.Autres fournisseurs
Autres fournisseurs
Utilisent uniquement les liaisons de persona propres au fournisseur sous
personas.<id>.providers.<provider>. Les champs d’invite de persona sont ignorés, sauf si le fournisseur met en œuvre sa propre association d’invite de persona.Politique de repli
fallbackPolicy contrôle le comportement lorsqu’une persona ne possède aucune liaison pour le fournisseur tenté :
La requête TTS complète n’échoue que lorsque tous les fournisseurs tentés sont ignorés ou échouent.
La sélection du fournisseur d’une session Talk est limitée à la session. Un client Talk doit choisir les identifiants de fournisseur, de modèle et de voix ainsi que les paramètres régionaux dans
talk.catalog, puis les transmettre par l’intermédiaire de la requête de session ou de transfert Talk. L’ouverture d’une session vocale ne doit pas modifier messages.tts ni les valeurs globales par défaut du fournisseur Talk.
Directives pilotées par le modèle
Par défaut, l’assistant peut émettre des directives[[tts:...]] pour remplacer la voix, le modèle ou la vitesse pour une seule réponse, ainsi qu’un bloc facultatif [[tts:text]]...[[/tts:text]] pour les indications expressives qui doivent apparaître uniquement dans l’audio :
messages.tts.auto vaut "tagged", les directives sont obligatoires pour déclencher l’audio. La diffusion des blocs en continu supprime les directives du texte visible avant que le canal ne les reçoive, même lorsqu’elles sont réparties entre des blocs adjacents.
provider=... est ignoré sauf si modelOverrides.allowProvider: true. Lorsqu’une réponse déclare provider=..., les autres clés de cette directive sont analysées uniquement par ce fournisseur ; les clés non prises en charge sont supprimées et signalées comme avertissements de directive TTS.
Clés de directive disponibles :
provider(identifiant de fournisseur enregistré ; nécessiteallowProvider: true)speakerVoice/speakerVoiceId(anciens alias :voice,voiceName,voice_name,google_voice,voiceId)model/google_modelstability,similarityBoost,style,speed,useSpeakerBoostvol/volume(volume MiniMax,(0, 10])pitch(hauteur MiniMax entière, de −12 à 12 ; les valeurs fractionnaires sont tronquées)emotion(balise d’émotion Volcengine)applyTextNormalization(auto|on|off)languageCode(ISO 639-1)seed
Commandes à barre oblique
Commande unique/tts. Sur Discord, OpenClaw enregistre également /voice, car /tts est une commande Discord intégrée ; la commande textuelle /tts ... fonctionne toujours.
Les commandes nécessitent un expéditeur autorisé (les règles de liste d’autorisation et de propriétaire s’appliquent), et
commands.text ou l’enregistrement natif des commandes doit être activé./tts onécrit la préférence TTS locale dansalways;/tts offl’écrit dansoff./tts chat on|off|defaultécrit un remplacement TTS automatique limité à la session pour la discussion actuelle./tts persona <id>écrit la préférence locale de persona ;/tts persona offl’efface./tts latestlit la dernière réponse de l’assistant dans la transcription de la session actuelle et l’envoie une fois sous forme audio. Seul un hachage de cette réponse est stocké dans l’entrée de session afin d’éviter les envois vocaux en double./tts audiogénère une réponse audio ponctuelle (n’active pas le TTS)./tts limit <chars>accepte 100–4096 (4096 correspond au maximum de légende ou de message Telegram) ; les valeurs hors de cette plage sont rejetées.limitetsummarysont stockés dans les préférences locales, et non dans la configuration principale./tts statusinclut les diagnostics de repli de la dernière tentative :Fallback: <primary> -> <used>,Attempts: ...et les détails de chaque tentative (provider:outcome(reasonCode) latency)./statusaffiche le mode TTS actif ainsi que le fournisseur, le modèle, la voix et les métadonnées nettoyées du point de terminaison personnalisé configurés lorsque le TTS est activé.
Préférences par utilisateur
Les commandes à barre oblique écrivent les remplacements locaux dansprefsPath. La valeur par défaut est ~/.openclaw/settings/tts.json ; remplacez-la avec la variable d’environnement OPENCLAW_TTS_PREFS ou messages.tts.prefsPath.
Ces valeurs remplacent la configuration effective issue de
messages.tts, ainsi que le bloc
agents.list[].tts actif pour cet hôte.
Formats de sortie
La diffusion vocale TTS dépend des capacités du canal. Les plugins de canal indiquent si le TTS de type vocal doit demander aux fournisseurs une ciblevoice-note native ou
conserver la synthèse audio-file normale, et si le canal transcode
la sortie non native avant l’envoi.
Remarques par fournisseur :
- Transcodage Feishu / WhatsApp : lorsqu’une réponse sous forme de message vocal arrive au format MP3/WebM/WAV/M4A ou dans un autre fichier probablement audio, le plugin de canal la transcode en Ogg/Opus 48 kHz avec
ffmpeg(libopus, 64 kbps) avant d’envoyer le message vocal natif. WhatsApp envoie le résultat au moyen de la charge utile Baileysaudioavecptt: trueetaudio/ogg; codecs=opus. En cas d’échec du transcodage : Feishu intercepte l’erreur et envoie à la place le fichier d’origine comme simple pièce jointe ; WhatsApp ne dispose d’aucune solution de repli, l’envoi lui-même échoue donc au lieu de publier une charge utile PTT incompatible. - MiniMax : MP3 (modèle
speech-2.8-hd, fréquence d’échantillonnage de 32 kHz) pour les pièces jointes audio normales ; transcodé en Opus 48 kHz avecffmpegpour les cibles de message vocal annoncées par le canal. - Xiaomi MiMo : MP3 par défaut, ou WAV selon la configuration ; transcodé en Opus 48 kHz avec
ffmpegpour les cibles de message vocal annoncées par le canal. - CLI locale : utilise le
outputFormatconfiguré. Les cibles de message vocal sont converties en Ogg/Opus et la sortie téléphonique est convertie en PCM mono brut 16 kHz avecffmpeg. - Google Gemini : renvoie du PCM brut 24 kHz. OpenClaw l’encapsule au format WAV pour les pièces jointes audio, le transcode en Opus 48 kHz pour les cibles de message vocal et renvoie directement le PCM pour Talk/la téléphonie.
- Gradium : WAV pour les pièces jointes audio, Opus pour les cibles de message vocal et
ulaw_8000à 8 kHz pour la téléphonie. - Inworld : MP3 pour les pièces jointes audio normales,
OGG_OPUSnatif pour les cibles de message vocal etPCMbrut à 22050 Hz pour Talk/la téléphonie. - xAI : MP3 par défaut ; la synthèse de fichiers audio peut utiliser
mp3,wav,pcm,mulawoualawpour les sorties mises en mémoire tampon comme pour les sorties en streaming. Les cibles de message vocal utilisent le MP3 pour le streaming et comme solution de repli mise en mémoire tampon, car les sortiespcm,mulawetalawde xAI sont des données audio brutes sans en-tête. La synthèse mise en mémoire tampon utilise le point de terminaison REST par lot/v1/ttsde xAI ;textToSpeechStreamutilise lewss://api.x.ai/v1/ttsnatif. Il ne s’agit pas du contrat vocal en temps réel. Le format vocal Opus natif n’est pas pris en charge. - Microsoft : utilise
microsoft.outputFormat(audio-24khz-48kbitrate-mono-mp3par défaut).- Le transport intégré accepte un
outputFormat, mais tous les formats ne sont pas disponibles auprès du service. - Les valeurs du format de sortie suivent les formats de sortie de Microsoft Speech (notamment Ogg/WebM Opus).
- Le
sendVoicede Telegram accepte OGG/MP3/M4A ; utilisez OpenAI/ElevenLabs si vous avez besoin de messages vocaux Opus garantis. - Si le format de sortie Microsoft configuré échoue, OpenClaw réessaie en MP3.
- Lorsqu’aucun remplacement vocal explicite n’est défini et que la voix anglaise par défaut est utilisée, OpenClaw bascule automatiquement vers une voix neuronale chinoise (
zh-CN-XiaoxiaoNeural, paramètres régionauxzh-CN) si le texte de la réponse est majoritairement en caractères CJK.
- Le transport intégré accepte un
Comportement du TTS automatique
Lorsquemessages.tts.auto est activé, OpenClaw :
- Ignore la synthèse vocale si la réponse contient déjà des médias structurés.
- Ignore les réponses très courtes (moins de 10 caractères).
- Résume les réponses longues lorsque les résumés sont activés, à l’aide de
summaryModel(ouagents.defaults.model.primary). - Joint l’audio généré à la réponse.
- Dans
mode: "final", envoie toujours une synthèse vocale uniquement audio pour les réponses finales diffusées en continu une fois la diffusion du texte terminée ; le média généré passe par la même normalisation des médias du canal que les pièces jointes habituelles des réponses.
maxLength, OpenClaw n’omet jamais complètement l’audio :
- Résumé activé (par défaut) et un modèle de résumé est disponible : résume le
texte à environ
maxLengthcaractères, puis synthétise le résumé. - Résumé désactivé, échec du résumé ou aucune clé API disponible pour le
modèle de résumé : tronque le texte à
maxLengthcaractères et synthétise le texte tronqué.
Référence des champs
messages.tts.* de premier niveau
messages.tts.* de premier niveau
"off" | "always" | "inbound" | "tagged"
Mode de synthèse vocale automatique.
inbound n’envoie l’audio qu’après un message vocal entrant ; tagged n’envoie l’audio que lorsque la réponse comprend des directives [[tts:...]] ou un bloc [[tts:text]].boolean
obsolète
Ancienne option d’activation.
openclaw doctor --fix la migre vers auto."final" | "all"
défaut:"final"
"all" inclut les réponses des outils/blocs en plus des réponses finales.string
Identifiant du fournisseur vocal. Lorsqu’il n’est pas défini, OpenClaw utilise le premier fournisseur configuré selon l’ordre de sélection automatique du registre. L’ancienne valeur
provider: "edge" est réécrite en "microsoft" par openclaw doctor --fix.string
Identifiant du personnage actif provenant de
personas. Normalisé en minuscules.object
Identité vocale stable. Champs :
label, description, provider, fallbackPolicy, prompt, providers.<provider>. Consultez Personnages.string
Modèle économique pour le résumé automatique ; la valeur par défaut est
agents.defaults.model.primary. Accepte provider/model ou un alias de modèle configuré.object
Autorise le modèle à émettre des directives de synthèse vocale.
enabled a pour valeur par défaut true ; allowProvider a pour valeur par défaut false.object
Paramètres appartenant au fournisseur, indexés par identifiant de fournisseur vocal. Les anciens blocs directs (
messages.tts.openai, .elevenlabs, .microsoft, .edge) sont réécrits par openclaw doctor --fix ; validez uniquement messages.tts.providers.<id>.number
défaut:"4096"
Limite stricte du nombre de caractères en entrée de la synthèse vocale.
/tts audio, tts.convert et tts.speak échouent si elle est dépassée.number
défaut:"30000"
Délai d’expiration de la requête en millisecondes. Une valeur
timeoutMs propre à l’appel (outil de l’agent, Gateway) prévaut lorsqu’elle est définie ; sinon, une valeur messages.tts.timeoutMs explicitement configurée prévaut sur toute valeur par défaut du fournisseur définie par un Plugin.string
Remplace le chemin local du fichier JSON de préférences (fournisseur/limite/résumé). Valeur par défaut :
~/.openclaw/settings/tts.json.Azure Speech
Azure Speech
string
Variable d’environnement :
AZURE_SPEECH_KEY, AZURE_SPEECH_API_KEY ou SPEECH_KEY.string
Région Azure Speech (par exemple
eastus). Variable d’environnement : AZURE_SPEECH_REGION ou SPEECH_REGION.string
Remplacement facultatif du point de terminaison Azure Speech (alias
baseUrl).string
ShortName de la voix Azure. Valeur par défaut :
en-US-JennyNeural. Ancien alias : voice.string
Code de langue SSML. Valeur par défaut :
en-US.string
Valeur Azure
X-Microsoft-OutputFormat pour l’audio standard. Valeur par défaut : audio-24khz-48kbitrate-mono-mp3.string
Valeur Azure
X-Microsoft-OutputFormat pour la sortie des notes vocales. Valeur par défaut : ogg-24khz-16bit-mono-opus.ElevenLabs
ElevenLabs
string
Se rabat sur
ELEVENLABS_API_KEY ou XI_API_KEY.string
Identifiant du modèle. Valeur par défaut :
eleven_multilingual_v2. Les anciens identifiants eleven_turbo_v2_5/eleven_turbo_v2 sont normalisés vers le modèle flash correspondant.string
Identifiant de voix ElevenLabs. Valeur par défaut :
pMsXgVXv3BLzUgSXRplE. Ancien alias : voiceId.object
stability, similarityBoost, style (chacun 0..1, valeurs par défaut 0.5/0.75/0), useSpeakerBoost (true|false, valeur par défaut true), speed (0.5..2.0, valeur par défaut 1.0)."auto" | "on" | "off"
Mode de normalisation du texte.
string
Code ISO 639-1 à 2 lettres (par exemple
en, de).number
Entier
0..4294967295 pour un déterminisme au mieux.string
Remplace l’URL de base de l’API ElevenLabs.
Google Gemini
Google Gemini
string
Utilise à défaut
GEMINI_API_KEY / GOOGLE_API_KEY. Si cette valeur est omise, la synthèse vocale peut réutiliser models.providers.google.apiKey avant de recourir aux variables d’environnement.string
Modèle de synthèse vocale Gemini. Valeur par défaut :
gemini-3.1-flash-tts-preview.string
Nom de la voix prédéfinie Gemini. Valeur par défaut :
Kore. Alias hérités : voiceName, voice.string
Instruction de style en langage naturel ajoutée avant le texte prononcé.
string
Libellé facultatif du locuteur ajouté avant le texte prononcé lorsque votre prompt utilise un locuteur nommé.
"audio-profile-v1"
Définissez cette valeur sur
audio-profile-v1 pour intégrer les champs actifs du prompt de persona dans une structure de prompt de synthèse vocale Gemini déterministe.string
Texte supplémentaire propre à Google pour le prompt de persona, ajouté aux notes du réalisateur du modèle.
string
Seul
https://generativelanguage.googleapis.com est accepté.Gradium
Gradium
Inworld
Inworld
Configuration principale d’Inworld
string
Variable d’environnement :
INWORLD_API_KEY.string
Valeur par défaut :
https://api.inworld.ai.string
Valeur par défaut :
inworld-tts-1.5-max. Également disponibles : inworld-tts-1.5-mini, inworld-tts-1-max, inworld-tts-1.string
Valeur par défaut :
Sarah. Alias hérité : voiceId.number
Température d’échantillonnage
0..2 (0 exclu).CLI locale (tts-local-cli)
CLI locale (tts-local-cli)
string
Exécutable local ou chaîne de commande pour la synthèse vocale via la CLI.
string[]
Arguments de la commande. Prend en charge les espaces réservés
{{Text}}, {{OutputPath}}, {{OutputDir}}, {{OutputBase}}."mp3" | "opus" | "wav"
Format de sortie attendu de la CLI. Valeur par défaut :
mp3 pour les pièces jointes audio.number
Délai d’expiration de la commande en millisecondes. Valeur par défaut :
120000.string
Répertoire de travail facultatif de la commande.
Record<string, string>
Remplacements facultatifs des variables d’environnement pour la commande.
Microsoft (sans clé d’API)
Microsoft (sans clé d’API)
boolean
défaut:"true"
Autorise l’utilisation de la synthèse vocale Microsoft.
string
Nom de la voix neuronale Microsoft (par exemple
en-US-MichelleNeural). Alias hérité : voice. Si la voix anglaise par défaut est utilisée et que le texte de la réponse est majoritairement en caractères CJK, OpenClaw bascule automatiquement vers zh-CN-XiaoxiaoNeural.string
Code de langue (par exemple
en-US).string
Format de sortie Microsoft. Valeur par défaut :
audio-24khz-48kbitrate-mono-mp3. Le transport intégré reposant sur Edge ne prend pas en charge tous les formats.string
Chaînes de pourcentage (par exemple
+10%, -5%).boolean
Écrit des sous-titres JSON à côté du fichier audio.
string
URL du proxy pour les requêtes de synthèse vocale Microsoft.
number
Remplacement du délai d’expiration des requêtes (ms).
object
obsolète
Alias hérité. Exécutez
openclaw doctor --fix pour réécrire la configuration persistante en providers.microsoft.MiniMax
MiniMax
string
Utilise à défaut
MINIMAX_API_KEY. Authentification Token Plan via MINIMAX_OAUTH_TOKEN, MINIMAX_CODE_PLAN_KEY ou MINIMAX_CODING_API_KEY.string
Valeur par défaut :
https://api.minimax.io. Variable d’environnement : MINIMAX_API_HOST.string
Valeur par défaut :
speech-2.8-hd. Variable d’environnement : MINIMAX_TTS_MODEL.string
Valeur par défaut :
English_expressive_narrator. Variable d’environnement : MINIMAX_TTS_VOICE_ID. Alias hérité : voiceId.number
0.5..2.0. Valeur par défaut : 1.0.number
(0, 10]. Valeur par défaut : 1.0.number
Entier
-12..12. Valeur par défaut : 0. Les valeurs fractionnaires sont tronquées avant la requête.OpenAI
OpenAI
string
Utilise à défaut
OPENAI_API_KEY.string
Identifiant du modèle de synthèse vocale OpenAI. Valeur par défaut :
gpt-4o-mini-tts.string
Nom de la voix (par exemple
alloy, cedar). Valeur par défaut : coral. Alias hérité : voice.string
Champ OpenAI
instructions explicite. Lorsqu’il est défini, les champs du prompt de persona ne sont pas mappés automatiquement.Record<string, unknown>
Champs JSON supplémentaires fusionnés dans les corps de requête
/audio/speech après les champs de synthèse vocale OpenAI générés. Utilisez-les pour les points de terminaison compatibles avec OpenAI, tels que Kokoro, qui nécessitent des clés propres au fournisseur comme lang ; les clés de prototype non sûres sont ignorées.string
Remplace le point de terminaison de synthèse vocale OpenAI. Ordre de résolution : configuration →
OPENAI_TTS_BASE_URL → https://api.openai.com/v1. Les valeurs autres que celle par défaut sont traitées comme des points de terminaison de synthèse vocale compatibles avec OpenAI ; les noms de modèles et de voix personnalisés sont donc acceptés, et speed n’est plus soumis à sa vérification de plage 0.25..4.0.OpenRouter
OpenRouter
string
Variable d’environnement :
OPENROUTER_API_KEY. Peut réutiliser models.providers.openrouter.apiKey.string
Valeur par défaut :
https://openrouter.ai/api/v1. La valeur héritée https://openrouter.ai/v1 est normalisée.string
Valeur par défaut :
hexgrad/kokoro-82m. Alias : modelId.string
Valeur par défaut :
af_alloy. Alias hérités : voice, voiceId."mp3" | "pcm"
Valeur par défaut :
mp3.number
Remplacement de la vitesse natif du fournisseur.
Volcengine (BytePlus Seed Speech)
Volcengine (BytePlus Seed Speech)
string
Variable d’environnement :
VOLCENGINE_TTS_API_KEY ou BYTEPLUS_SEED_SPEECH_API_KEY.string
Valeur par défaut :
seed-tts-1.0. Variable d’environnement : VOLCENGINE_TTS_RESOURCE_ID. Utilisez seed-tts-2.0 lorsque votre projet dispose des droits TTS 2.0.string
En-tête de clé d’application. Valeur par défaut :
aGjiRDfUWi. Variable d’environnement : VOLCENGINE_TTS_APP_KEY.string
Remplace le point de terminaison HTTP de synthèse vocale Seed Speech. Variable d’environnement :
VOLCENGINE_TTS_BASE_URL.string
Type de voix. Valeur par défaut :
en_female_anna_mars_bigtts. Variable d’environnement : VOLCENGINE_TTS_VOICE. Alias hérité : voice.number
Rapport de vitesse natif du fournisseur,
0.2..3.string
Balise d’émotion native du fournisseur.
string
obsolète
Champs hérités de Volcengine Speech Console. Variables d’environnement :
VOLCENGINE_TTS_APPID, VOLCENGINE_TTS_TOKEN, VOLCENGINE_TTS_CLUSTER (valeur par défaut : volcano_tts).xAI
xAI
string
Variable d’environnement :
XAI_API_KEY.string
Valeur par défaut :
https://api.x.ai/v1. Variable d’environnement : XAI_BASE_URL.string
Valeur par défaut :
eve. Avec authentification, openclaw infer tts voices --provider xai récupère le catalogue intégré actuel ; sans authentification, il répertorie les solutions de secours hors ligne ara, eve, leo, rex et sal. Les identifiants de voix personnalisées du compte sont transmis même s’ils ne figurent pas dans la liste intégrée. Alias hérité : voiceId.string
Code de langue BCP-47 ou
auto. Valeur par défaut : en."mp3" | "wav" | "pcm" | "mulaw" | "alaw"
Valeur par défaut :
mp3.number
Remplacement de la vitesse natif du fournisseur,
0.7..1.5.Xiaomi MiMo
Xiaomi MiMo
string
Variable d’environnement :
XIAOMI_API_KEY.string
Valeur par défaut :
https://api.xiaomimimo.com/v1. Variable d’environnement : XIAOMI_BASE_URL.string
Valeur par défaut :
mimo-v2.5-tts. Variable d’environnement : XIAOMI_TTS_MODEL. Prend également en charge mimo-v2-tts et mimo-v2.5-tts-voicedesign.string
Valeur par défaut :
mimo_default pour les modèles à voix prédéfinies. Variable d’environnement : XIAOMI_TTS_VOICE. Alias hérité : voice. Non envoyé pour mimo-v2.5-tts-voicedesign."mp3" | "wav"
Valeur par défaut :
mp3. Variable d’environnement : XIAOMI_TTS_FORMAT.string
Instruction de style facultative en langage naturel envoyée comme message utilisateur ; elle n’est pas prononcée. Pour
mimo-v2.5-tts-voicedesign, il s’agit du prompt de conception de la voix ; OpenClaw fournit une valeur par défaut lorsqu’elle est omise.Outil de l’agent
L’outiltts convertit le texte en parole et renvoie une pièce jointe audio pour
la remise de la réponse. Sur Feishu, Matrix, Telegram et WhatsApp, l’audio est
remis sous forme de message vocal plutôt que de pièce jointe. Feishu et
WhatsApp peuvent transcoder une sortie de synthèse vocale autre qu’Opus sur ce chemin lorsque ffmpeg est
disponible.
WhatsApp envoie l’audio par l’intermédiaire de Baileys sous forme de note vocale PTT (audio avec
ptt: true) et envoie le texte visible séparément de l’audio PTT, car
les clients n’affichent pas systématiquement les légendes des notes vocales.
L’outil accepte les champs facultatifs channel et timeoutMs ; timeoutMs est un
délai d’expiration par appel, en millisecondes, pour la requête au fournisseur. Les valeurs par appel remplacent
messages.tts.timeoutMs ; les délais d’expiration configurés pour la synthèse vocale remplacent toute valeur par défaut
du fournisseur définie par un Plugin.
RPC du Gateway
Liens vers les services
- Guide de synthèse vocale d’OpenAI
- Référence de l’API Audio d’OpenAI
- Synthèse vocale avec l’API REST Azure Speech
- Fournisseur Azure Speech
- Synthèse vocale ElevenLabs
- Authentification ElevenLabs
- Gradium
- API TTS d’Inworld
- API MiniMax T2A v2
- API HTTP TTS de Volcengine
- Synthèse vocale Xiaomi MiMo
- node-edge-tts
- Formats de sortie Microsoft Speech
- Synthèse vocale xAI