Tools

Synthèse vocale

OpenClaw convertit les réponses sortantes en audio avec 14 fournisseurs de synthèse vocale : messages vocaux natifs sur Feishu, Matrix, Telegram et WhatsApp ; pièces jointes audio partout ailleurs ; et flux PCM/Ulaw pour la téléphonie et Talk.

La synthèse vocale constitue la partie sortie vocale du mode 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

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

  • 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é.

  • Activer dans la configuration

    Définissez messages.tts.auto: "always" et messages.tts.provider :

    json5
    {  messages: {    tts: {      auto: "always",      provider: "elevenlabs",    },  },}
  • Essayer dans le chat

    /tts status affiche l’état actuel. /tts audio Hello from OpenClaw envoie une réponse audio ponctuelle.

  • Fournisseurs pris en charge

    Fournisseur Authentification Remarques
    Azure Speech AZURE_SPEECH_KEY + AZURE_SPEECH_REGION (également AZURE_SPEECH_API_KEY, SPEECH_KEY, SPEECH_REGION) Sortie native de note vocale Ogg/Opus et téléphonie.
    DeepInfra DEEPINFRA_API_KEY Synthèse vocale compatible avec OpenAI. Utilise hexgrad/Kokoro-82M par défaut.
    ElevenLabs ELEVENLABS_API_KEY ou XI_API_KEY Clonage vocal, multilingue, déterministe via seed ; diffusé en continu pour la lecture vocale sur Discord.
    Google Gemini GEMINI_API_KEY ou GOOGLE_API_KEY Synthèse vocale par lots avec 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 de synthèse vocale en continu. Note vocale Opus native et téléphonie PCM.
    CLI locale aucune Exécute une commande locale de synthèse vocale configurée.
    Microsoft aucune Synthèse vocale neuronale publique d’Edge via node-edge-tts. Fournie au mieux, sans SLA.
    MiniMax MINIMAX_API_KEY (ou offre à jetons : MINIMAX_OAUTH_TOKEN, MINIMAX_CODE_PLAN_KEY, MINIMAX_CODING_API_KEY) API T2A v2. Utilise speech-2.8-hd par défaut.
    OpenAI OPENAI_API_KEY Également utilisé pour le résumé automatique ; prend en charge la persona instructions.
    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és : VOLCENGINE_TTS_APPID/_TOKEN) API HTTP BytePlus Seed Speech.
    Vydra VYDRA_API_KEY Fournisseur commun d’images, de vidéos et de synthèse vocale.
    xAI XAI_API_KEY Synthèse vocale xAI par lots. Les notes vocales Opus natives ne sont pas prises en charge.
    Xiaomi MiMo XIAOMI_API_KEY Synthèse vocale MiMo via les complétions de chat Xiaomi.

    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 sous messages.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

    json5
    {messages: {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
    {messages: {tts: {  auto: "always",  provider: "elevenlabs",  providers: {    elevenlabs: {      apiKey: "${ELEVENLABS_API_KEY}",      model: "eleven_multilingual_v2",      speakerVoiceId: "EXAVITQu4vr4xnSDxMaL",    },  },},},}

    Google Gemini

    json5
    {messages: {tts: {  auto: "always",  provider: "google",  providers: {    google: {      apiKey: "${GEMINI_API_KEY}",      model: "gemini-3.1-flash-tts-preview",      speakerVoice: "Kore",      // Invites facultatives de style en langage naturel :      // audioProfile: "Parlez d’un ton calme, comme lors de l’animation d’un podcast.",      // speakerName: "Alex",    },  },},},}

    Gradium

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

    Inworld

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

    CLI locale

    json5
    {messages: {tts: {  auto: "always",  provider: "tts-local-cli",  providers: {    "tts-local-cli": {      command: "say",      args: ["-o", "{{OutputPath}}", "{{Text}}"],      outputFormat: "wav",      timeoutMs: 120000,    },  },},},}

    Microsoft (sans clé)

    json5
    {messages: {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
    {messages: {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
    {messages: {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
    {messages: {tts: {  auto: "always",  provider: "openrouter",  providers: {    openrouter: {      apiKey: "${OPENROUTER_API_KEY}",      model: "hexgrad/kokoro-82m",      speakerVoice: "af_alloy",      responseFormat: "mp3",    },  },},},}

    Volcengine

    json5
    {messages: {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
    {messages: {tts: {  auto: "always",  provider: "xai",  providers: {    xai: {      apiKey: "${XAI_API_KEY}",      speakerVoiceId: "eve",      language: "en",      responseFormat: "mp3",    },  },},},}

    Xiaomi MiMo

    json5
    {messages: {tts: {  auto: "always",  provider: "xiaomi",  providers: {    xiaomi: {      apiKey: "${XIAOMI_API_KEY}",      model: "mimo-v2.5-tts",      speakerVoice: "mimo_default",      format: "mp3",    },  },},},}

    Pour Xiaomi 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

    Utilisez agents.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 :

    json5
    {  messages: {    tts: {      auto: "always",      provider: "elevenlabs",      providers: {        elevenlabs: { apiKey: "${ELEVENLABS_API_KEY}", model: "eleven_multilingual_v2" },      },    },  },  agents: {    list: [      {        id: "reader",        tts: {          providers: {            elevenlabs: { speakerVoiceId: "EXAVITQu4vr4xnSDxMaL" },          },        },      },    ],  },}

    Pour épingler une persona par agent, définissez 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 :

    1. messages.tts
    2. agents.list[].tts actif
    3. remplacement du canal, lorsque le canal prend en charge channels.<channel>.tts
    4. remplacement du compte, lorsque le canal transmet channels.<channel>.accounts.<id>.tts
    5. préférences /tts locales pour cet hôte
    6. directives [[tts:...]] intégrées lorsque les remplacements pilotés par le modèle sont activés

    Les remplacements de canal et de compte utilisent la même structure que 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 :

    json5
    {  messages: {    tts: {      provider: "openai",      providers: {        openai: { apiKey: "${OPENAI_API_KEY}", model: "gpt-4o-mini-tts" },      },    },  },  channels: {    feishu: {      accounts: {        english: {          tts: {            providers: {              openai: { speakerVoice: "shimmer" },            },          },        },      },    },  },}

    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

    json5
    {  messages: {    tts: {      auto: "always",      persona: "narrator",      personas: {        narrator: {          label: "Narrateur",          provider: "elevenlabs",          providers: {            elevenlabs: {              speakerVoiceId: "EXAVITQu4vr4xnSDxMaL",              modelId: "eleven_multilingual_v2",            },          },        },      },    },  },}

    Persona complète (invite indépendante du fournisseur)

    json5
    {  messages: {    tts: {      auto: "always",      persona: "alfred",      personas: {        alfred: {          label: "Alfred",          description: "Narrateur majordome britannique, pince-sans-rire et chaleureux.",          provider: "google",          fallbackPolicy: "preserve-persona",          prompt: {            profile: "Un brillant majordome britannique. Pince-sans-rire, spirituel, chaleureux, charmant, expressif sur le plan émotionnel, jamais générique.",            scene: "Un bureau silencieux tard dans la nuit. Narration de proximité au microphone pour un opérateur de confiance.",            sampleContext: "Le locuteur répond à une demande technique privée avec une assurance concise et une chaleur teintée d’humour pince-sans-rire.",            style: "Raffiné, sobre, légèrement amusé.",            accent: "Anglais britannique.",            pacing: "Mesuré, avec de courtes pauses dramatiques.",            constraints: ["Ne lisez pas les valeurs de configuration à voix haute.", "N’expliquez pas la 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,              },            },          },        },      },    },  },}

    Résolution de la persona

    La persona active est sélectionnée de manière déterministe :

    1. préférence locale /tts persona <id>, si elle est définie.
    2. messages.tts.persona, si elle est définie.
    3. Aucune persona.

    La sélection du fournisseur donne la priorité aux valeurs explicites :

    1. Remplacements directs (CLI, Gateway, Talk, directives TTS autorisées).
    2. Préférence locale /tts provider <id>.
    3. provider de la persona active.
    4. messages.tts.provider.
    5. Sélection automatique par le registre.

    Pour chaque tentative de fournisseur, OpenClaw fusionne les configurations dans cet ordre :

    1. messages.tts.providers.<id>
    2. messages.tts.personas.<persona>.providers.<id>
    3. Remplacements de requête fiables
    4. 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

    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

    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

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

    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 neutres par défaut tandis que le repli vers d’autres fournisseurs se poursuit.
    fail Ignore cette tentative de fournisseur avec reasonCode: "not_configured" et personaBinding: "missing". Les fournisseurs de repli sont tout de même essayés.

    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 :

    text
    Voilà. [[tts:speakerVoiceId=pMsXgVXv3BLzUgSXRplE model=eleven_v3 speed=1.1]][[tts:text]](rit) Lisez la chanson une fois de plus.[[/tts:text]]

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

    Désactiver entièrement les remplacements par le modèle :

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

    Autoriser le changement de fournisseur tout en conservant les autres paramètres configurables :

    json5
    { messages: { tts: { modelOverrides: { enabled: true, allowProvider: true, allowSeed: false } } } }

    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.

    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>

    Remarques sur le comportement :

    Préférences par utilisateur

    Les commandes à barre oblique écrivent les remplacements locaux dans prefsPath. 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 local du TTS automatique (always, off, …)
    provider Remplacement local du fournisseur principal
    persona Remplacement local de la persona
    maxLength Seuil de résumé/troncature (1500 caractères par défaut, plage /tts limit de 100 à 4096)
    summarize Activation/désactivation du résumé (true par défaut)

    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 cible voice-note native ou conserver la synthèse audio-file normale, et si le canal transcode la sortie non native avant l’envoi.

    Cible Format
    Feishu / Matrix / Telegram / WhatsApp Les réponses sous forme de message vocal privilégient Opus (opus_48000_64 avec ElevenLabs, opus avec OpenAI). 48 kHz / 64 kbps offre un bon équilibre entre clarté et taille.
    Autres canaux MP3 (mp3_44100_128 avec ElevenLabs, mp3 avec OpenAI). 44,1 kHz / 128 kbps constitue l’équilibre 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.

    Remarques par fournisseur :

    Les formats de sortie d’OpenAI et d’ElevenLabs sont fixes pour chaque canal, comme indiqué ci-dessus.

    Comportement du TTS automatique

    Lorsque messages.tts.auto est activé, OpenClaw :

    Si la réponse dépasse maxLength, OpenClaw n’omet jamais complètement l’audio :

    text
    Réponse -> Synthèse vocale activée ?  non -> envoyer le texte  oui -> contient un média / est courte ?           oui -> envoyer le texte           non -> longueur > limite ?                    non -> synthèse vocale -> joindre l’audio                    oui -> résumé activé et disponible ?                             non -> tronquer -> synthèse vocale -> joindre l’audio                             oui -> résumer -> synthèse vocale -> joindre l’audio

    Référence des champs

    messages.tts.* de premier niveau
    auto"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]].

    enabledboolean

    Ancienne option d’activation. openclaw doctor --fix la migre vers auto.

    mode"final" | "all"default: final

    "all" inclut les réponses des outils/blocs en plus des réponses finales.

    providerstring

    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.

    personastring

    Identifiant du personnage actif provenant de personas. Normalisé en minuscules.

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InBlcnNvbmFzLjxpZA " type="object"> Identité vocale stable. Champs : label, description, provider, fallbackPolicy, prompt, providers.<provider>. Consultez Personnages.

    summaryModelstring

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

    modelOverridesobject

    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.

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InByb3ZpZGVycy48aWQ " type="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>.

    maxTextLengthnumberdefault: 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.

    timeoutMsnumberdefault: 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.

    prefsPathstring

    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

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg Variable d’environnement : AZURE_SPEECH_KEY, AZURE_SPEECH_API_KEY ou SPEECH_KEY. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InJlZ2lvbiIgdHlwZT0ic3RyaW5nIg Région Azure Speech (par exemple eastus). Variable d’environnement : AZURE_SPEECH_REGION ou SPEECH_REGION. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImVuZHBvaW50IiB0eXBlPSJzdHJpbmci Remplacement facultatif du point de terminaison Azure Speech (alias baseUrl). OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZSIgdHlwZT0ic3RyaW5nIg ShortName de la voix Azure. Valeur par défaut : en-US-JennyNeural. Ancien alias : voice. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImxhbmciIHR5cGU9InN0cmluZyI Code de langue SSML. Valeur par défaut : en-US. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im91dHB1dEZvcm1hdCIgdHlwZT0ic3RyaW5nIg Valeur Azure X-Microsoft-OutputFormat pour l’audio standard. Valeur par défaut : audio-24khz-48kbitrate-mono-mp3. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InZvaWNlTm90ZU91dHB1dEZvcm1hdCIgdHlwZT0ic3RyaW5nIg Valeur Azure X-Microsoft-OutputFormat pour la sortie des notes vocales. Valeur par défaut : ogg-24khz-16bit-mono-opus. OPENCLAW_DOCS_MARKER:paramClose:

    ElevenLabs

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg Se rabat sur ELEVENLABS_API_KEY ou XI_API_KEY. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im1vZGVsIiB0eXBlPSJzdHJpbmci 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. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZUlkIiB0eXBlPSJzdHJpbmci Identifiant de voix ElevenLabs. Valeur par défaut : pMsXgVXv3BLzUgSXRplE. Ancien alias : voiceId. OPENCLAW_DOCS_MARKER:paramClose:

    voiceSettingsobject

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

    applyTextNormalization"auto" | "on" | "off"

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Imxhbmd1YWdlQ29kZSIgdHlwZT0ic3RyaW5nIg Code ISO 639-1 à 2 lettres (par exemple en, de). OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNlZWQiIHR5cGU9Im51bWJlciI Entier 0..4294967295 pour un déterminisme au mieux. OPENCLAW_DOCS_MARKER:paramClose:

    baseUrlstring
    Google Gemini

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg 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. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im1vZGVsIiB0eXBlPSJzdHJpbmci Modèle de synthèse vocale Gemini. Valeur par défaut : gemini-3.1-flash-tts-preview. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZSIgdHlwZT0ic3RyaW5nIg Nom de la voix prédéfinie Gemini. Valeur par défaut : Kore. Alias hérités : voiceName, voice. OPENCLAW_DOCS_MARKER:paramClose:

    audioProfilestring
    speakerNamestring

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InByb21wdFRlbXBsYXRlIiB0eXBlPSciYXVkaW8tcHJvZmlsZS12MSIn 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. OPENCLAW_DOCS_MARKER:paramClose:

    personaPromptstring

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI Seul https://generativelanguage.googleapis.com est accepté. OPENCLAW_DOCS_MARKER:paramClose:

    Gradium

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg Variable d’environnement : GRADIUM_API_KEY. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI URL HTTPS de l’API Gradium sur api.gradium.ai. Valeur par défaut : https://api.gradium.ai. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZUlkIiB0eXBlPSJzdHJpbmci Valeur par défaut : Emma (YTpq7expH9539ERJ). Alias hérité : voiceId. OPENCLAW_DOCS_MARKER:paramClose:

    Inworld

    Configuration principale d’Inworld

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg Variable d’environnement : INWORLD_API_KEY. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI Valeur par défaut : https://api.inworld.ai. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im1vZGVsSWQiIHR5cGU9InN0cmluZyI Valeur par défaut : inworld-tts-1.5-max. Également disponibles : inworld-tts-1.5-mini, inworld-tts-1-max, inworld-tts-1. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZUlkIiB0eXBlPSJzdHJpbmci Valeur par défaut : Sarah. Alias hérité : voiceId. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InRlbXBlcmF0dXJlIiB0eXBlPSJudW1iZXIi Température d’échantillonnage 0..2 (0 exclu). OPENCLAW_DOCS_MARKER:paramClose:

    CLI locale (tts-local-cli)
    commandstring

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFyZ3MiIHR5cGU9InN0cmluZ1tdIg Arguments de la commande. Prend en charge les espaces réservés {{Text}}, {{OutputPath}}, {{OutputDir}}, {{OutputBase}}. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im91dHB1dEZvcm1hdCIgdHlwZT0nIm1wMyIgfCAib3B1cyIgfCAid2F2Iic Format de sortie attendu de la CLI. Valeur par défaut : mp3 pour les pièces jointes audio. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InRpbWVvdXRNcyIgdHlwZT0ibnVtYmVyIg Délai d’expiration de la commande en millisecondes. Valeur par défaut : 120000. OPENCLAW_DOCS_MARKER:paramClose:

    cwdstring
    env"Record<string,

    La sortie standard de la commande et l’audio généré ou converti sont limités à 50 Mio. La sortie d’erreur de diagnostic est limitée à 1 Mio. OpenClaw met fin à la commande et fait échouer la synthèse si l’une de ces limites est dépassée.

    Microsoft (sans clé d’API)
    enabledbooleandefault: true

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZSIgdHlwZT0ic3RyaW5nIg 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. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImxhbmciIHR5cGU9InN0cmluZyI Code de langue (par exemple en-US). OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im91dHB1dEZvcm1hdCIgdHlwZT0ic3RyaW5nIg 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. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InJhdGUgLyBwaXRjaCAvIHZvbHVtZSIgdHlwZT0ic3RyaW5nIg Chaînes de pourcentage (par exemple +10%, -5%). OPENCLAW_DOCS_MARKER:paramClose:

    saveSubtitlesboolean
    proxystring
    timeoutMsnumber

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImVkZ2UuKiIgdHlwZT0ib2JqZWN0IiBkZXByZWNhdGVk Alias hérité. Exécutez openclaw doctor --fix pour réécrire la configuration persistante en providers.microsoft. OPENCLAW_DOCS_MARKER:paramClose:

    MiniMax

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg Utilise à défaut MINIMAX_API_KEY. Authentification Token Plan via MINIMAX_OAUTH_TOKEN, MINIMAX_CODE_PLAN_KEY ou MINIMAX_CODING_API_KEY. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI Valeur par défaut : https://api.minimax.io. Variable d’environnement : MINIMAX_API_HOST. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im1vZGVsIiB0eXBlPSJzdHJpbmci Valeur par défaut : speech-2.8-hd. Variable d’environnement : MINIMAX_TTS_MODEL. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZUlkIiB0eXBlPSJzdHJpbmci Valeur par défaut : English_expressive_narrator. Variable d’environnement : MINIMAX_TTS_VOICE_ID. Alias hérité : voiceId. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWVkIiB0eXBlPSJudW1iZXIi 0.5..2.0. Valeur par défaut : 1.0. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InZvbCIgdHlwZT0ibnVtYmVyIg (0, 10]. Valeur par défaut : 1.0. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InBpdGNoIiB0eXBlPSJudW1iZXIi Entier -12..12. Valeur par défaut : 0. Les valeurs fractionnaires sont tronquées avant la requête. OPENCLAW_DOCS_MARKER:paramClose:

    OpenAI

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg Utilise à défaut OPENAI_API_KEY. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im1vZGVsIiB0eXBlPSJzdHJpbmci Identifiant du modèle de synthèse vocale OpenAI. Valeur par défaut : gpt-4o-mini-tts. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZSIgdHlwZT0ic3RyaW5nIg Nom de la voix (par exemple alloy, cedar). Valeur par défaut : coral. Alias hérité : voice. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Imluc3RydWN0aW9ucyIgdHlwZT0ic3RyaW5nIg Champ OpenAI instructions explicite. Lorsqu’il est défini, les champs du prompt de persona ne sont pas mappés automatiquement. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImV4dHJhQm9keSAvIGV4dHJhX2JvZHkiIHR5cGU9IlJlY29yZDxzdHJpbmcsIHVua25vd24 ">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. OPENCLAW_DOCS_MARKER:paramClose:

    baseUrlstring

    Remplace le point de terminaison de synthèse vocale OpenAI. Ordre de résolution : configuration → OPENAI_TTS_BASE_URLhttps://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

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg Variable d’environnement : OPENROUTER_API_KEY. Peut réutiliser models.providers.openrouter.apiKey. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI Valeur par défaut : https://openrouter.ai/api/v1. La valeur héritée https://openrouter.ai/v1 est normalisée. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im1vZGVsIiB0eXBlPSJzdHJpbmci Valeur par défaut : hexgrad/kokoro-82m. Alias : modelId. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZSIgdHlwZT0ic3RyaW5nIg Valeur par défaut : af_alloy. Alias hérités : voice, voiceId. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InJlc3BvbnNlRm9ybWF0IiB0eXBlPScibXAzIiB8ICJwY20iJw Valeur par défaut : mp3. OPENCLAW_DOCS_MARKER:paramClose:

    speednumber
    Volcengine (BytePlus Seed Speech)

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg Variable d’environnement : VOLCENGINE_TTS_API_KEY ou BYTEPLUS_SEED_SPEECH_API_KEY. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InJlc291cmNlSWQiIHR5cGU9InN0cmluZyI 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. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwcEtleSIgdHlwZT0ic3RyaW5nIg En-tête de clé d’application. Valeur par défaut : aGjiRDfUWi. Variable d’environnement : VOLCENGINE_TTS_APP_KEY. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI Remplace le point de terminaison HTTP de synthèse vocale Seed Speech. Variable d’environnement : VOLCENGINE_TTS_BASE_URL. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZSIgdHlwZT0ic3RyaW5nIg Type de voix. Valeur par défaut : en_female_anna_mars_bigtts. Variable d’environnement : VOLCENGINE_TTS_VOICE. Alias hérité : voice. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWVkUmF0aW8iIHR5cGU9Im51bWJlciI Rapport de vitesse natif du fournisseur, 0.2..3. OPENCLAW_DOCS_MARKER:paramClose:

    emotionstring

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwcElkIC8gdG9rZW4gLyBjbHVzdGVyIiB0eXBlPSJzdHJpbmciIGRlcHJlY2F0ZWQ 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). OPENCLAW_DOCS_MARKER:paramClose:

    xAI

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg Variable d’environnement : XAI_API_KEY. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI Valeur par défaut : https://api.x.ai/v1. Variable d’environnement : XAI_BASE_URL. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZUlkIiB0eXBlPSJzdHJpbmci 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. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Imxhbmd1YWdlIiB0eXBlPSJzdHJpbmci Code de langue BCP-47 ou auto. Valeur par défaut : en. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InJlc3BvbnNlRm9ybWF0IiB0eXBlPScibXAzIiB8ICJ3YXYiIHwgInBjbSIgfCAibXVsYXciIHwgImFsYXciJw Valeur par défaut : mp3. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWVkIiB0eXBlPSJudW1iZXIi Remplacement de la vitesse natif du fournisseur, 0.7..1.5. OPENCLAW_DOCS_MARKER:paramClose:

    Xiaomi MiMo

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImFwaUtleSIgdHlwZT0ic3RyaW5nIg Variable d’environnement : XIAOMI_API_KEY. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImJhc2VVcmwiIHR5cGU9InN0cmluZyI Valeur par défaut : https://api.xiaomimimo.com/v1. Variable d’environnement : XIAOMI_BASE_URL. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im1vZGVsIiB0eXBlPSJzdHJpbmci 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. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNwZWFrZXJWb2ljZSIgdHlwZT0ic3RyaW5nIg 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. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImZvcm1hdCIgdHlwZT0nIm1wMyIgfCAid2F2Iic Valeur par défaut : mp3. Variable d’environnement : XIAOMI_TTS_FORMAT. OPENCLAW_DOCS_MARKER:paramClose:

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InN0eWxlIiB0eXBlPSJzdHJpbmci 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. OPENCLAW_DOCS_MARKER:paramClose:

    Outil de l’agent

    L’outil tts 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

    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 de texte en audio.
    tts.setProvider Définir la préférence locale de fournisseur.
    tts.personas Répertorier les personas configurés et celui qui est actif.
    tts.setPersona Définir la préférence locale de persona.
    tts.providers Répertorier les fournisseurs configurés et leur état.

    Liens vers les services

    Ressources connexes

    Was this useful?
    On this page

    On this page