OpenClaw peut convertir les réponses sortantes en audio avec 14 fournisseurs de synthèse vocale et livrer des messages vocaux natifs sur Feishu, Matrix, Telegram et WhatsApp, des pièces jointes audio partout ailleurs, ainsi que des flux PCM/Ulaw pour la téléphonie et Talk. Le TTS est la moitié de sortie vocale du modeDocumentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
stt-tts de Talk. Les sessions Talk
realtime natives du fournisseur synthétisent la parole dans le fournisseur temps réel
au lieu d’appeler ce chemin TTS, tandis que les sessions transcription ne synthétisent
pas de réponse vocale de l’assistant.
Démarrage rapide
Pick a provider
OpenAI et ElevenLabs sont les options hébergées les plus fiables. Microsoft et
Local CLI fonctionnent sans clé API. Consultez la matrice des fournisseurs
pour la liste complète.
Set the API key
Exportez la variable d’environnement de votre fournisseur (par exemple
OPENAI_API_KEY,
ELEVENLABS_API_KEY). Microsoft et Local CLI n’ont pas besoin de clé.Auto-TTS est désactivé 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 tts intégré est réservé à une intention explicite : le chat ordinaire reste
en texte, sauf si l’utilisateur demande de l’audio, utilise /tts, ou active la synthèse vocale
Auto-TTS/directive.Fournisseurs pris en charge
| Fournisseur | Auth | Notes |
|---|---|---|
| Azure Speech | AZURE_SPEECH_KEY + AZURE_SPEECH_REGION (aussi AZURE_SPEECH_API_KEY, SPEECH_KEY, SPEECH_REGION) | Sortie native de note vocale Ogg/Opus et téléphonie. |
| DeepInfra | DEEPINFRA_API_KEY | TTS compatible OpenAI. Par défaut, hexgrad/Kokoro-82M. |
| ElevenLabs | ELEVENLABS_API_KEY ou XI_API_KEY | Clonage vocal, multilingue, déterministe via seed ; diffusé en streaming pour la lecture vocale Discord. |
| Google Gemini | GEMINI_API_KEY ou GOOGLE_API_KEY | TTS par lot de l’API Gemini ; tient compte de la persona via promptTemplate: "audio-profile-v1". |
| Gradium | GRADIUM_API_KEY | Sortie de note vocale et de téléphonie. |
| Inworld | INWORLD_API_KEY | API TTS en streaming. Note vocale Opus native et téléphonie PCM. |
| Local CLI | aucune | Exécute une commande TTS locale configurée. |
| Microsoft | aucune | TTS neuronal public Edge via node-edge-tts. Au mieux, sans SLA. |
| MiniMax | MINIMAX_API_KEY (ou Token Plan : MINIMAX_OAUTH_TOKEN, MINIMAX_CODE_PLAN_KEY, MINIMAX_CODING_API_KEY) | API T2A v2. Par défaut, speech-2.8-hd. |
| OpenAI | OPENAI_API_KEY | Également utilisé pour le résumé automatique ; prend en charge les instructions de persona. |
| OpenRouter | OPENROUTER_API_KEY (peut réutiliser models.providers.openrouter.apiKey) | Modèle par défaut hexgrad/kokoro-82m. |
| Volcengine | VOLCENGINE_TTS_API_KEY ou BYTEPLUS_SEED_SPEECH_API_KEY (AppID/jeton hérité : VOLCENGINE_TTS_APPID/_TOKEN) | API HTTP BytePlus Seed Speech. |
| Vydra | VYDRA_API_KEY | Fournisseur partagé d’images, de vidéos et de parole. |
| xAI | XAI_API_KEY | TTS par lot xAI. La note vocale Opus native n’est pas prise en charge. |
| Xiaomi MiMo | XIAOMI_API_KEY | TTS MiMo via les complétions de chat Xiaomi. |
summaryModel (ou
agents.defaults.model.primary) ; ce fournisseur doit donc également être authentifié
si vous conservez les résumés activés.
Configuration
La configuration TTS se trouve sousmessages.tts dans ~/.openclaw/openclaw.json. Choisissez un
préréglage et adaptez le bloc du fournisseur :
- Azure Speech
- ElevenLabs
- Google Gemini
- Gradium
- Inworld
- Local CLI
- Microsoft (no key)
- MiniMax
- OpenAI + ElevenLabs
- OpenRouter
- Volcengine
- xAI
- Xiaomi MiMo
Remplacements de voix par agent
Utilisezagents.list[].tts lorsqu’un agent doit parler avec un autre fournisseur,
une autre voix, un autre modèle, une autre persona ou un autre mode Auto-TTS. Le bloc de l’agent fusionne en profondeur avec
messages.tts, ce qui permet de conserver les identifiants du fournisseur dans la configuration globale du fournisseur :
agents.list[].tts.persona avec la
configuration du fournisseur — cela remplace le messages.tts.persona global
uniquement pour cet agent.
Ordre de priorité pour les réponses automatiques, /tts audio, /tts status et
l’outil d’agent tts :
messages.ttsagents.list[].ttsactif- remplacement de canal, lorsque le canal prend en charge
channels.<channel>.tts - remplacement de compte, lorsque le canal transmet
channels.<channel>.accounts.<id>.tts - préférences locales
/ttspour cet hôte - directives intégrées
[[tts:...]]lorsque les remplacements pilotés par le modèle sont activés
messages.tts et
fusionnent en profondeur par-dessus les couches précédentes, afin que les identifiants
partagés du fournisseur puissent rester dans messages.tts tandis qu’un canal ou un compte de bot
modifie uniquement la voix, le modèle, la persona ou le mode automatique :
Personas
Une persona est une identité vocale stable qui peut être appliquée de façon déterministe entre fournisseurs. Elle peut privilégier un fournisseur, définir une intention d’invite indépendante du fournisseur, et transporter des liaisons propres aux fournisseurs 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 façon 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 du registre.
messages.tts.providers.<id>messages.tts.personas.<persona>.providers.<id>- Remplacements de requête approuvés
- Remplacements de directives TTS émises par le modèle et autorisées
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 comment
les utiliser :
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 préfixés comme 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
Mappe les champs d’invite de persona vers le champ de requête
instructions uniquement lorsque
aucune instructions OpenAI explicite n’est configurée. Les instructions
explicites sont toujours prioritaires.Other providers
Other providers
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 implémente son propre mappage d’invite de persona.Politique de repli
fallbackPolicy contrôle le comportement lorsqu’une persona n’a aucune liaison pour le
fournisseur tenté :
| Politique | Comportement |
|---|---|
preserve-persona | Par défaut. Les champs d’invite indépendants du fournisseur restent disponibles ; le fournisseur peut les utiliser ou les ignorer. |
provider-defaults | La persona est omise de la préparation de l’invite pour cette tentative ; le fournisseur utilise ses valeurs par défaut neutres tandis que le repli vers d’autres fournisseurs continue. |
fail | Ignore cette tentative de fournisseur avec reasonCode: "not_configured" et personaBinding: "missing". Les fournisseurs de repli sont quand même tentés. |
talk.catalog et les transmettre
via la session Talk ou la requête de transfert. L’ouverture d’une session vocale ne doit
pas modifier messages.tts ni les valeurs par défaut globales des fournisseurs 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 requises pour déclencher
l’audio. La diffusion de blocs en streaming retire les directives du texte visible avant que
le canal ne les voie, même lorsqu’elles sont réparties sur 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 retirées et signalées comme
avertissements de directive TTS.
Clés de directive disponibles :
provider(identifiant de fournisseur enregistré ; nécessiteallowProvider: true)voice/voiceName/voice_name/google_voice/voiceIdmodel/google_modelstability,similarityBoost,style,speed,useSpeakerBoostvol/volume(volume MiniMax, 0–10)pitch(hauteur entière MiniMax, −12 à 12 ; les valeurs fractionnaires sont tronquées)emotion(balise d’émotion Volcengine)applyTextNormalization(auto|on|off)languageCode(ISO 639-1)seed
Commandes slash
Commande unique/tts. Sur Discord, OpenClaw enregistre aussi /voice, car
/tts est une commande Discord intégrée — le texte /tts ... fonctionne toujours.
Les commandes nécessitent un expéditeur autorisé (les règles de liste d’autorisation/propriétaire s’appliquent) et
commands.text ou l’enregistrement de commandes natives doit être activé./tts onécrit la préférence TTS locale suralways;/tts offl’écrit suroff./tts chat on|off|defaultécrit un remplacement auto-TTS limité à la session pour le chat courant./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 courante et l’envoie une fois en audio. Elle stocke uniquement un hachage de cette réponse dans l’entrée de session afin de supprimer les envois vocaux en double./tts audiogénère une réponse audio ponctuelle (n’active pas TTS).limitetsummarysont stockés dans les préférences locales, pas dans la configuration principale./tts statusinclut les diagnostics de repli pour la dernière tentative —Fallback: <primary> -> <used>,Attempts: ..., et les détails par tentative (provider:outcome(reasonCode) latency)./statusaffiche le mode TTS actif ainsi que le fournisseur, le modèle, la voix et les métadonnées de point de terminaison personnalisé nettoyées configurés lorsque TTS est activé.
Préférences par utilisateur
Les commandes slash é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.
| Champ stocké | Effet |
|---|---|
auto | Remplacement auto-TTS local (always, off, …) |
provider | Remplacement local du fournisseur principal |
persona | Remplacement local de persona |
maxLength | Seuil de résumé (1500 caractères par défaut) |
summarize | Bascule de résumé (true par défaut) |
messages.tts plus le bloc
agents.list[].tts actif pour cet hôte.
Formats de sortie (fixes)
La diffusion vocale TTS est pilotée par les capacités du canal. Les plugins de canal annoncent si le TTS de style vocal doit demander aux fournisseurs une cible nativevoice-note ou
conserver la synthèse audio-file normale et uniquement marquer la sortie compatible pour la diffusion vocale.
- Canaux compatibles avec les notes vocales : les réponses sous forme de note vocale privilégient Opus (
opus_48000_64depuis ElevenLabs,opusdepuis OpenAI).- 48 kHz / 64 kbps constitue un bon compromis pour les messages vocaux.
- Feishu / WhatsApp : lorsqu’une réponse sous forme de note vocale est produite en MP3/WebM/WAV/M4A
ou dans un autre fichier probablement audio, le plugin de canal la transcode en Ogg/Opus
48 kHz avec
ffmpegavant d’envoyer le message vocal natif. WhatsApp envoie le résultat via la charge utile Baileysaudioavecptt: trueetaudio/ogg; codecs=opus. Si la conversion échoue, Feishu reçoit le fichier original en pièce jointe ; l’envoi WhatsApp échoue au lieu de publier une charge utile PTT incompatible. - Autres canaux : MP3 (
mp3_44100_128depuis ElevenLabs,mp3depuis OpenAI).- 44,1 kHz / 128 kbps est l’équilibre par défaut pour la clarté de la parole.
- MiniMax : MP3 (modèle
speech-2.8-hd, fréquence d’échantillonnage de 32 kHz) pour les pièces jointes audio normales. Pour les cibles de notes vocales annoncées par le canal, OpenClaw transcode le MP3 MiniMax en Opus 48 kHz avecffmpegavant la livraison lorsque le canal annonce le transcodage. - Xiaomi MiMo : MP3 par défaut, ou WAV lorsqu’il est configuré. Pour les cibles de notes vocales annoncées par le canal, OpenClaw transcode la sortie Xiaomi en Opus 48 kHz avec
ffmpegavant la livraison lorsque le canal annonce le transcodage. - CLI locale : utilise le
outputFormatconfiguré. Les cibles de notes vocales sont converties en Ogg/Opus et la sortie téléphonique est convertie en PCM mono brut 16 kHz avecffmpeg. - Google Gemini : le TTS de l’API Gemini renvoie du PCM brut 24 kHz. OpenClaw l’encapsule en WAV pour les pièces jointes audio, le transcode en Opus 48 kHz pour les cibles de notes vocales, et renvoie directement le PCM pour Talk/la téléphonie.
- Gradium : WAV pour les pièces jointes audio, Opus pour les cibles de notes vocales, 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 notes vocales, etPCMbrut à 22050 Hz pour Talk/la téléphonie. - xAI : MP3 par défaut ;
responseFormatpeut êtremp3,wav,pcm,mulawoualaw. OpenClaw utilise le point de terminaison TTS REST par lots de xAI et renvoie une pièce jointe audio complète ; le WebSocket TTS en streaming de xAI n’est pas utilisé par ce chemin de fournisseur. Le format natif Opus pour les notes vocales n’est pas pris en charge par ce chemin. - Microsoft : utilise
microsoft.outputFormat(par défautaudio-24khz-48kbitrate-mono-mp3).- Le transport groupé accepte un
outputFormat, mais tous les formats ne sont pas disponibles depuis le service. - Les valeurs de format de sortie suivent les formats de sortie Microsoft Speech (y compris Ogg/WebM Opus).
- Telegram
sendVoiceaccepte 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 avec MP3.
- Le transport groupé accepte un
Comportement Auto-TTS
Lorsquemessages.tts.auto est activé, OpenClaw :
- Ignore le TTS si la réponse contient déjà un média ou une directive
MEDIA:. - 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.
- En
mode: "final", envoie toujours le TTS audio seul pour les réponses finales diffusées une fois le flux de texte terminé ; le média généré passe par la même normalisation des médias du canal que les pièces jointes de réponse normales.
maxLength et que le résumé est désactivé (ou qu’aucune clé API n’est disponible pour le
modèle de résumé), l’audio est ignoré et la réponse textuelle normale est envoyée.
Formats de sortie par canal
| Cible | Format |
|---|---|
| Feishu / Matrix / Telegram / WhatsApp | Les réponses par note vocale privilégient Opus (opus_48000_64 from ElevenLabs, opus from OpenAI). 48 kHz / 64 kbps équilibre clarté et taille. |
| Autres canaux | MP3 (mp3_44100_128 from ElevenLabs, mp3 from OpenAI). 44,1 kHz / 128 kbps par défaut pour la parole. |
| Talk / téléphonie | PCM natif du fournisseur (Inworld 22050 Hz, Google 24 kHz), ou ulaw_8000 de Gradium pour la téléphonie. |
- Transcodage Feishu / WhatsApp : lorsqu’une réponse par note vocale arrive en MP3/WebM/WAV/M4A, le Plugin de canal transcode en Ogg/Opus 48 kHz avec
ffmpeg. WhatsApp envoie via Baileys avecptt: trueetaudio/ogg; codecs=opus. Si la conversion échoue : Feishu revient à l’ajout du fichier original en pièce jointe ; l’envoi WhatsApp échoue plutôt que de publier une charge utile PTT incompatible. - MiniMax / Xiaomi MiMo : MP3 par défaut (32 kHz pour MiniMax
speech-2.8-hd) ; transcodé en Opus 48 kHz pour les cibles de notes vocales viaffmpeg. - CLI locale : utilise le
outputFormatconfiguré. Les cibles de notes vocales sont converties en Ogg/Opus et la sortie téléphonie en PCM mono 16 kHz brut. - Google Gemini : renvoie du PCM 24 kHz brut. OpenClaw l’encapsule en WAV pour les pièces jointes, le transcode en Opus 48 kHz pour les cibles de notes vocales, renvoie directement le PCM pour Talk/la téléphonie.
- Inworld : pièces jointes MP3, note vocale native
OGG_OPUS,PCMbrut 22050 Hz pour Talk/la téléphonie. - xAI : MP3 par défaut ;
responseFormatpeut valoirmp3|wav|pcm|mulaw|alaw. Utilise le point de terminaison REST par lot de xAI — le TTS WebSocket en streaming n’est pas utilisé. Le format natif Opus pour notes vocales n’est pas pris en charge. - Microsoft : utilise
microsoft.outputFormat(par défautaudio-24khz-48kbitrate-mono-mp3). TelegramsendVoiceaccepte OGG/MP3/M4A ; utilisez OpenAI/ElevenLabs si vous avez besoin de messages vocaux Opus garantis. Si le format Microsoft configuré échoue, OpenClaw réessaie avec MP3.
Référence des champs
Top-level messages.tts.*
Top-level messages.tts.*
Mode Auto-TTS.
inbound n’envoie de l’audio qu’après un message vocal entrant ; tagged n’envoie de l’audio que lorsque la réponse inclut des directives [[tts:...]] ou un bloc [[tts:text]].Ancien interrupteur.
openclaw doctor --fix le migre vers auto."all" inclut les réponses d’outil/bloc en plus des réponses finales.Identifiant du fournisseur vocal. Lorsqu’il n’est pas défini, OpenClaw utilise le premier fournisseur configuré dans l’ordre de sélection automatique du registre. L’ancien
provider: "edge" est réécrit en "microsoft" par openclaw doctor --fix.Identifiant de persona actif issu de
personas. Normalisé en minuscules.Identité vocale stable. Champs :
label, description, provider, fallbackPolicy, prompt, providers.<provider>. Voir Personas.Modèle économique pour le résumé automatique ; utilise par défaut
agents.defaults.model.primary. Accepte provider/model ou un alias de modèle configuré.Autorise le modèle à émettre des directives TTS.
enabled vaut true par défaut ; allowProvider vaut false par défaut.Paramètres détenus par le 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>.Plafond strict pour les caractères d’entrée TTS.
/tts audio échoue s’il est dépassé.Délai d’expiration de la requête en millisecondes.
Remplace le chemin JSON des préférences locales (fournisseur/limite/résumé). Par défaut
~/.openclaw/settings/tts.json.Azure Speech
Azure Speech
Env :
AZURE_SPEECH_KEY, AZURE_SPEECH_API_KEY, ou SPEECH_KEY.Région Azure Speech (par ex.
eastus). Env : AZURE_SPEECH_REGION ou SPEECH_REGION.Remplacement facultatif du point de terminaison Azure Speech (alias
baseUrl).ShortName de la voix Azure. Par défaut
en-US-JennyNeural.Code de langue SSML. Par défaut
en-US.Azure
X-Microsoft-OutputFormat pour l’audio standard. Par défaut audio-24khz-48kbitrate-mono-mp3.Azure
X-Microsoft-OutputFormat pour la sortie note vocale. Par défaut ogg-24khz-16bit-mono-opus.ElevenLabs
ElevenLabs
Se replie sur
ELEVENLABS_API_KEY ou XI_API_KEY.Identifiant de modèle (par ex.
eleven_multilingual_v2, eleven_v3).Identifiant de voix ElevenLabs.
stability, similarityBoost, style (chacun 0..1), useSpeakerBoost (true|false), speed (0.5..2.0, 1.0 = normal).Mode de normalisation du texte.
ISO 639-1 à 2 lettres (par ex.
en, de).Entier
0..4294967295 pour un déterminisme au mieux.Remplace l’URL de base de l’API ElevenLabs.
Google Gemini
Google Gemini
Se replie sur
GEMINI_API_KEY / GOOGLE_API_KEY. S’il est omis, le TTS peut réutiliser models.providers.google.apiKey avant le repli sur l’environnement.Modèle TTS Gemini. Par défaut
gemini-3.1-flash-tts-preview.Nom de voix prédéfinie Gemini. Par défaut
Kore. Alias : voice.Invite de style en langage naturel préfixée avant le texte parlé.
Libellé de locuteur facultatif préfixé avant le texte parlé lorsque votre invite utilise un locuteur nommé.
Définissez sur
audio-profile-v1 pour encapsuler les champs d’invite de persona actif dans une structure d’invite TTS Gemini déterministe.Texte d’invite de persona supplémentaire propre à Google, ajouté aux notes du réalisateur du modèle.
Seul
https://generativelanguage.googleapis.com est accepté.Gradium
Gradium
Inworld
Inworld
CLI locale (tts-local-cli)
CLI locale (tts-local-cli)
Exécutable local ou chaîne de commande pour la synthèse vocale CLI.
Arguments de commande. Prend en charge les espaces réservés
{{Text}}, {{OutputPath}}, {{OutputDir}}, {{OutputBase}}.Format de sortie CLI attendu. Par défaut
mp3 pour les pièces jointes audio.Délai d’expiration de la commande en millisecondes. Par défaut
120000.Répertoire de travail facultatif de la commande.
Remplacements facultatifs de l’environnement pour la commande.
Microsoft (sans clé API)
Microsoft (sans clé API)
Autoriser l’utilisation de la synthèse vocale Microsoft.
Nom de voix neuronale Microsoft (par exemple
en-US-MichelleNeural).Code de langue (par exemple
en-US).Format de sortie Microsoft. Par défaut
audio-24khz-48kbitrate-mono-mp3. Tous les formats ne sont pas pris en charge par le transport inclus adossé à Edge.Chaînes de pourcentage (par exemple
+10%, -5%).Écrire les sous-titres JSON à côté du fichier audio.
URL de proxy pour les requêtes de synthèse vocale Microsoft.
Remplacement du délai d’expiration de la requête (ms).
Alias hérité. Exécutez
openclaw doctor --fix pour réécrire la configuration persistante vers providers.microsoft.MiniMax
MiniMax
Se rabat sur
MINIMAX_API_KEY. Authentification Token Plan via MINIMAX_OAUTH_TOKEN, MINIMAX_CODE_PLAN_KEY ou MINIMAX_CODING_API_KEY.Par défaut
https://api.minimax.io. Env. : MINIMAX_API_HOST.Par défaut
speech-2.8-hd. Env. : MINIMAX_TTS_MODEL.Par défaut
English_expressive_narrator. Env. : MINIMAX_TTS_VOICE_ID.0.5..2.0. Par défaut 1.0.(0, 10]. Par défaut 1.0.Entier
-12..12. Par défaut 0. Les valeurs fractionnaires sont tronquées avant la requête.OpenAI
OpenAI
Se rabat sur
OPENAI_API_KEY.Identifiant du modèle TTS OpenAI (par exemple
gpt-4o-mini-tts).Nom de voix (par exemple
alloy, cedar).Champ OpenAI
instructions explicite. Lorsqu’il est défini, les champs de prompt de persona ne sont pas mappés automatiquement.Champs JSON supplémentaires fusionnés dans les corps de requête
/audio/speech après les champs TTS OpenAI générés. Utilisez ceci pour les points de terminaison compatibles OpenAI tels que Kokoro qui exigent des clés propres au fournisseur comme lang ; les clés de prototype non sûres sont ignorées.Remplacer le point de terminaison TTS OpenAI. Ordre de résolution : configuration →
OPENAI_TTS_BASE_URL → https://api.openai.com/v1. Les valeurs non par défaut sont traitées comme des points de terminaison TTS compatibles OpenAI, les noms de modèle et de voix personnalisés sont donc acceptés.OpenRouter
OpenRouter
Env. :
OPENROUTER_API_KEY. Peut réutiliser models.providers.openrouter.apiKey.Par défaut
https://openrouter.ai/api/v1. L’ancien https://openrouter.ai/v1 est normalisé.Par défaut
hexgrad/kokoro-82m. Alias : modelId.Par défaut
af_alloy. Alias : voiceId.Par défaut
mp3.Remplacement de la vitesse native du fournisseur.
Volcengine (BytePlus Seed Speech)
Volcengine (BytePlus Seed Speech)
Env. :
VOLCENGINE_TTS_API_KEY ou BYTEPLUS_SEED_SPEECH_API_KEY.Par défaut
seed-tts-1.0. Env. : VOLCENGINE_TTS_RESOURCE_ID. Utilisez seed-tts-2.0 lorsque votre projet dispose du droit TTS 2.0.En-tête de clé d’application. Par défaut
aGjiRDfUWi. Env. : VOLCENGINE_TTS_APP_KEY.Remplacer le point de terminaison HTTP TTS Seed Speech. Env. :
VOLCENGINE_TTS_BASE_URL.Type de voix. Par défaut
en_female_anna_mars_bigtts. Env. : VOLCENGINE_TTS_VOICE.Ratio de vitesse natif du fournisseur.
Balise d’émotion native du fournisseur.
Champs hérités de la console Volcengine Speech. Env. :
VOLCENGINE_TTS_APPID, VOLCENGINE_TTS_TOKEN, VOLCENGINE_TTS_CLUSTER (par défaut volcano_tts).xAI
xAI
Env. :
XAI_API_KEY.Par défaut
https://api.x.ai/v1. Env. : XAI_BASE_URL.Par défaut
eve. Voix disponibles en direct : ara, eve, leo, rex, sal, una.Code de langue BCP-47 ou
auto. Par défaut en.Par défaut
mp3.Remplacement de la vitesse native du fournisseur.
Xiaomi MiMo
Xiaomi MiMo
Env. :
XIAOMI_API_KEY.Par défaut
https://api.xiaomimimo.com/v1. Env. : XIAOMI_BASE_URL.Par défaut
mimo-v2.5-tts. Env. : XIAOMI_TTS_MODEL. Prend également en charge mimo-v2-tts.Par défaut
mimo_default. Env. : XIAOMI_TTS_VOICE.Par défaut
mp3. Env. : XIAOMI_TTS_FORMAT.Instruction de style facultative en langage naturel envoyée comme message utilisateur ; elle n’est pas prononcée.
Outil d’agent
L’outiltts convertit le texte en parole et retourne une pièce jointe audio pour
la livraison de la réponse. Sur Feishu, Matrix, Telegram et WhatsApp, l’audio est
livré comme message vocal plutôt que comme pièce jointe de fichier. Feishu et
WhatsApp peuvent transcoder la sortie TTS non Opus sur ce chemin lorsque ffmpeg est
disponible.
WhatsApp envoie l’audio via Baileys comme 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 toujours les légendes sur les notes vocales.
L’outil accepte les champs facultatifs channel et timeoutMs ; timeoutMs est un
délai d’expiration de requête fournisseur par appel, en millisecondes.
RPC Gateway
| Méthode | Objectif |
|---|---|
tts.status | Lire l’état TTS actuel et la dernière tentative. |
tts.enable | Définir la préférence automatique locale sur always. |
tts.disable | Définir la préférence automatique locale sur off. |
tts.convert | Conversion ponctuelle texte → audio. |
tts.setProvider | Définir la préférence locale de fournisseur. |
tts.setPersona | Définir la préférence locale de persona. |
tts.providers | Lister les fournisseurs configurés et leur état. |
Liens de service
- Guide de synthèse vocale OpenAI
- Référence de l’API audio OpenAI
- Synthèse vocale REST Azure Speech
- Fournisseur Azure Speech
- Synthèse vocale ElevenLabs
- Authentification ElevenLabs
- Gradium
- API TTS Inworld
- API MiniMax T2A v2
- API HTTP TTS Volcengine
- Synthèse vocale Xiaomi MiMo
- node-edge-tts
- Formats de sortie Microsoft Speech
- Synthèse vocale xAI