OpenClaw puede convertir respuestas salientes en audio con 14 proveedores de voz y entregar mensajes de voz nativos en Feishu, Matrix, Telegram y WhatsApp, archivos de audio adjuntos en todos los demás lugares, y flujos PCM/Ulaw para telefonía y Talk. TTS es la mitad de salida de voz del modoDocumentation 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. Las sesiones Talk
realtime nativas del proveedor sintetizan voz dentro del proveedor en tiempo real en lugar
de llamar a esta ruta de TTS, mientras que las sesiones transcription no sintetizan una
respuesta de voz del asistente.
Inicio rápido
Elegir un proveedor
OpenAI y ElevenLabs son las opciones alojadas más fiables. Microsoft y
Local CLI funcionan sin una clave de API. Consulta la matriz de proveedores
para ver la lista completa.
Configurar la clave de API
Exporta la variable de entorno para tu proveedor (por ejemplo
OPENAI_API_KEY,
ELEVENLABS_API_KEY). Microsoft y Local CLI no necesitan clave.Auto-TTS está desactivado de forma predeterminada. Cuando
messages.tts.provider no está definido,
OpenClaw elige el primer proveedor configurado según el orden de selección automática del registro.
La herramienta de agente integrada tts es solo para intención explícita: el chat ordinario permanece
en texto salvo que el usuario pida audio, use /tts o active voz mediante Auto-TTS/directiva.Proveedores compatibles
| Proveedor | Autenticación | Notas |
|---|---|---|
| Azure Speech | AZURE_SPEECH_KEY + AZURE_SPEECH_REGION (también AZURE_SPEECH_API_KEY, SPEECH_KEY, SPEECH_REGION) | Salida nativa de nota de voz Ogg/Opus y telefonía. |
| DeepInfra | DEEPINFRA_API_KEY | TTS compatible con OpenAI. Predeterminado: hexgrad/Kokoro-82M. |
| ElevenLabs | ELEVENLABS_API_KEY o XI_API_KEY | Clonación de voz, multilingüe, determinista mediante seed; en streaming para reproducción de voz de Discord. |
| Google Gemini | GEMINI_API_KEY o GOOGLE_API_KEY | TTS por lotes de la API de Gemini; consciente de la personalidad mediante promptTemplate: "audio-profile-v1". |
| Gradium | GRADIUM_API_KEY | Salida de nota de voz y telefonía. |
| Inworld | INWORLD_API_KEY | API de TTS en streaming. Nota de voz Opus nativa y telefonía PCM. |
| Local CLI | ninguna | Ejecuta un comando local de TTS configurado. |
| Microsoft | ninguna | TTS neuronal público de Edge mediante node-edge-tts. De mejor esfuerzo, sin SLA. |
| MiniMax | MINIMAX_API_KEY (o plan de tokens: MINIMAX_OAUTH_TOKEN, MINIMAX_CODE_PLAN_KEY, MINIMAX_CODING_API_KEY) | API T2A v2. Predeterminado: speech-2.8-hd. |
| OpenAI | OPENAI_API_KEY | También se usa para resumen automático; admite instructions de personalidad. |
| OpenRouter | OPENROUTER_API_KEY (puede reutilizar models.providers.openrouter.apiKey) | Modelo predeterminado hexgrad/kokoro-82m. |
| Volcengine | VOLCENGINE_TTS_API_KEY o BYTEPLUS_SEED_SPEECH_API_KEY (AppID/token heredados: VOLCENGINE_TTS_APPID/_TOKEN) | API HTTP de BytePlus Seed Speech. |
| Vydra | VYDRA_API_KEY | Proveedor compartido de imagen, video y voz. |
| xAI | XAI_API_KEY | TTS por lotes de xAI. La nota de voz Opus nativa no es compatible. |
| Xiaomi MiMo | XIAOMI_API_KEY | TTS de MiMo mediante completados de chat de Xiaomi. |
summaryModel (o
agents.defaults.model.primary), por lo que ese proveedor también debe estar autenticado
si mantienes los resúmenes activados.
Configuración
La configuración de TTS vive enmessages.tts dentro de ~/.openclaw/openclaw.json. Elige un
preajuste y adapta el bloque del proveedor:
- Azure Speech
- ElevenLabs
- Google Gemini
- Gradium
- Inworld
- Local CLI
- Microsoft (sin clave)
- MiniMax
- OpenAI + ElevenLabs
- OpenRouter
- Volcengine
- xAI
- Xiaomi MiMo
Sobrescrituras de voz por agente
Usaagents.list[].tts cuando un agente deba hablar con un proveedor,
voz, modelo, personalidad o modo Auto-TTS diferente. El bloque del agente se fusiona en profundidad sobre
messages.tts, por lo que las credenciales del proveedor pueden permanecer en la configuración global del proveedor:
agents.list[].tts.persona junto con la configuración del proveedor; anula messages.tts.persona global solo para ese agente.
Orden de precedencia para respuestas automáticas, /tts audio, /tts status y la herramienta de agente tts:
messages.ttsagents.list[].ttsactivo- anulación de canal, cuando el canal admite
channels.<channel>.tts - anulación de cuenta, cuando el canal pasa
channels.<channel>.accounts.<id>.tts - preferencias locales de
/ttspara este host - directivas en línea
[[tts:...]]cuando las anulaciones controladas por el modelo están habilitadas
messages.tts y se combinan en profundidad sobre las capas anteriores, de modo que las credenciales compartidas del proveedor pueden permanecer en messages.tts mientras un canal o una cuenta de bot cambia solo la voz, el modelo, la persona o el modo automático:
Personas
Una persona es una identidad hablada estable que puede aplicarse de forma determinista entre proveedores. Puede preferir un proveedor, definir una intención de prompt neutral respecto al proveedor y contener vinculaciones específicas del proveedor para voces, modelos, plantillas de prompt, semillas y ajustes de voz.Persona mínima
Persona completa (prompt neutral respecto al proveedor)
Resolución de persona
La persona activa se selecciona de forma determinista:- Preferencia local
/tts persona <id>, si está definida. messages.tts.persona, si está definida.- Sin persona.
- Anulaciones directas (CLI, Gateway, Talk, directivas TTS permitidas).
- Preferencia local
/tts provider <id>. providerde la persona activa.messages.tts.provider.- Selección automática del registro.
messages.tts.providers.<id>messages.tts.personas.<persona>.providers.<id>- Anulaciones de solicitud confiables
- Anulaciones de directivas TTS emitidas por el modelo y permitidas
Cómo usan los proveedores los prompts de persona
Los campos de prompt de persona (profile, scene, sampleContext, style, accent, pacing, constraints) son neutrales respecto al proveedor. Cada proveedor decide cómo usarlos:
Google Gemini
Google Gemini
Envuelve los campos de prompt de persona en una estructura de prompt TTS de Gemini solo cuando la configuración efectiva del proveedor de Google establece
promptTemplate: "audio-profile-v1" o personaPrompt. Los campos anteriores audioProfile y speakerName todavía se anteponen como texto de prompt específico de Google. Las etiquetas de audio en línea como [whispers] o [laughs] dentro de un bloque [[tts:text]] se preservan dentro de la transcripción de Gemini; OpenClaw no genera estas etiquetas.OpenAI
OpenAI
Asigna los campos de prompt de persona al campo
instructions de la solicitud solo cuando no hay instructions explícitas de OpenAI configuradas. Las instructions explícitas siempre tienen prioridad.Other providers
Other providers
Usan solo las vinculaciones de persona específicas del proveedor bajo
personas.<id>.providers.<provider>. Los campos de prompt de persona se ignoran a menos que el proveedor implemente su propia asignación de prompt de persona.Política de fallback
fallbackPolicy controla el comportamiento cuando una persona no tiene vinculación para el proveedor intentado:
| Política | Comportamiento |
|---|---|
preserve-persona | Predeterminado. Los campos de prompt neutrales respecto al proveedor siguen disponibles; el proveedor puede usarlos o ignorarlos. |
provider-defaults | La persona se omite de la preparación del prompt para ese intento; el proveedor usa sus valores predeterminados neutros mientras continúa el fallback a otros proveedores. |
fail | Omite ese intento de proveedor con reasonCode: "not_configured" y personaBinding: "missing". Los proveedores de fallback se siguen intentando. |
talk.catalog y pasarlos mediante la sesión de Talk o la solicitud de traspaso. Abrir una sesión de voz no debe mutar messages.tts ni los valores predeterminados globales del proveedor de Talk.
Directivas controladas por el modelo
De forma predeterminada, el asistente puede emitir directivas[[tts:...]] para anular la voz, el modelo o la velocidad de una sola respuesta, además de un bloque opcional [[tts:text]]...[[/tts:text]] para indicaciones expresivas que deben aparecer solo en el audio:
messages.tts.auto es "tagged", se requieren directivas para activar el audio. La entrega de bloques en streaming elimina las directivas del texto visible antes de que el canal las vea, incluso cuando están divididas entre bloques adyacentes.
provider=... se ignora a menos que modelOverrides.allowProvider: true. Cuando una respuesta declara provider=..., las demás claves de esa directiva solo las analiza ese proveedor; las claves no admitidas se eliminan y se informan como advertencias de directiva TTS.
Claves de directiva disponibles:
provider(identificador de proveedor registrado; requiereallowProvider: true)voice/voiceName/voice_name/google_voice/voiceIdmodel/google_modelstability,similarityBoost,style,speed,useSpeakerBoostvol/volume(volumen de MiniMax, 0–10)pitch(tono entero de MiniMax, −12 a 12; los valores fraccionarios se truncan)emotion(etiqueta de emoción de Volcengine)applyTextNormalization(auto|on|off)languageCode(ISO 639-1)seed
Comandos de barra
Un único comando/tts. En Discord, OpenClaw también registra /voice porque /tts es un comando integrado de Discord; el texto /tts ... sigue funcionando.
Los comandos requieren un remitente autorizado (se aplican reglas de lista de permitidos/propietario) y
commands.text o el registro de comandos nativos debe estar habilitado./tts onescribe la preferencia TTS local enalways;/tts offla escribe enoff./tts chat on|off|defaultescribe una anulación de TTS automática con alcance de sesión para el chat actual./tts persona <id>escribe la preferencia de persona local;/tts persona offla borra./tts latestlee la última respuesta del asistente de la transcripción de la sesión actual y la envía como audio una vez. Almacena solo un hash de esa respuesta en la entrada de sesión para evitar envíos de voz duplicados./tts audiogenera una respuesta de audio puntual (no activa TTS).limitysummaryse almacenan en preferencias locales, no en la configuración principal./tts statusincluye diagnósticos de fallback para el último intento:Fallback: <primary> -> <used>,Attempts: ...y detalle por intento (provider:outcome(reasonCode) latency)./statusmuestra el modo TTS activo junto con el proveedor, el modelo, la voz y los metadatos saneados del endpoint personalizado configurados cuando TTS está habilitado.
Preferencias por usuario
Los comandos de barra escriben anulaciones locales enprefsPath. El valor predeterminado es ~/.openclaw/settings/tts.json; anúlalo con la variable de entorno OPENCLAW_TTS_PREFS o messages.tts.prefsPath.
| Campo almacenado | Efecto |
|---|---|
auto | Anulación local de TTS automático (always, off, …) |
provider | Anulación local del proveedor primario |
persona | Anulación local de persona |
maxLength | Umbral de resumen (1500 caracteres predeterminado) |
summarize | Activación de resumen (true predeterminado) |
messages.tts más el bloque agents.list[].tts activo para ese host.
Formatos de salida (fijos)
La entrega de voz TTS está controlada por las capacidades del canal. Los plugins de canal anuncian si la TTS de estilo voz debe pedir a los proveedores un destino nativovoice-note o mantener la síntesis normal audio-file y solo marcar la salida compatible para entrega de voz.
- Canales compatibles con notas de voz: las respuestas de nota de voz prefieren Opus (
opus_48000_64de ElevenLabs,opusde OpenAI).- 48kHz / 64kbps ofrece un buen equilibrio para mensajes de voz.
- Feishu / WhatsApp: cuando una respuesta de nota de voz se genera como MP3/WebM/WAV/M4A
u otro archivo probablemente de audio, el Plugin del canal la transcodifica a
Ogg/Opus de 48kHz con
ffmpegantes de enviar el mensaje de voz nativo. WhatsApp envía el resultado mediante la carga útilaudiode Baileys conptt: trueyaudio/ogg; codecs=opus. Si la conversión falla, Feishu recibe el archivo original como adjunto; el envío de WhatsApp falla en lugar de publicar una carga útil PTT incompatible. - Otros canales: MP3 (
mp3_44100_128de ElevenLabs,mp3de OpenAI).- 44.1kHz / 128kbps es el equilibrio predeterminado para la claridad del habla.
- MiniMax: MP3 (modelo
speech-2.8-hd, frecuencia de muestreo de 32kHz) para adjuntos de audio normales. Para destinos de nota de voz anunciados por el canal, OpenClaw transcodifica el MP3 de MiniMax a Opus de 48kHz conffmpegantes de la entrega cuando el canal anuncia transcodificación. - Xiaomi MiMo: MP3 de forma predeterminada, o WAV cuando se configura. Para destinos de nota de voz anunciados por el canal, OpenClaw transcodifica la salida de Xiaomi a Opus de 48kHz con
ffmpegantes de la entrega cuando el canal anuncia transcodificación. - CLI local: usa el
outputFormatconfigurado. Los destinos de nota de voz se convierten a Ogg/Opus y la salida de telefonía se convierte a PCM mono sin procesar de 16 kHz conffmpeg. - Google Gemini: TTS de la API de Gemini devuelve PCM sin procesar de 24kHz. OpenClaw lo envuelve como WAV para adjuntos de audio, lo transcodifica a Opus de 48kHz para destinos de nota de voz y devuelve PCM directamente para Talk/telefonía.
- Gradium: WAV para adjuntos de audio, Opus para destinos de nota de voz y
ulaw_8000a 8 kHz para telefonía. - Inworld: MP3 para adjuntos de audio normales,
OGG_OPUSnativo para destinos de nota de voz yPCMsin procesar a 22050 Hz para Talk/telefonía. - xAI: MP3 de forma predeterminada;
responseFormatpuede sermp3,wav,pcm,mulawoalaw. OpenClaw usa el endpoint REST TTS por lotes de xAI y devuelve un adjunto de audio completo; el WebSocket TTS de streaming de xAI no se usa en esta ruta de proveedor. Esta ruta no admite formato Opus nativo para notas de voz. - Microsoft: usa
microsoft.outputFormat(predeterminadoaudio-24khz-48kbitrate-mono-mp3).- El transporte incluido acepta un
outputFormat, pero no todos los formatos están disponibles en el servicio. - Los valores de formato de salida siguen los formatos de salida de Microsoft Speech (incluido Ogg/WebM Opus).
- Telegram
sendVoiceacepta OGG/MP3/M4A; usa OpenAI/ElevenLabs si necesitas mensajes de voz Opus garantizados. - Si el formato de salida configurado de Microsoft falla, OpenClaw reintenta con MP3.
- El transporte incluido acepta un
Comportamiento de Auto-TTS
Cuandomessages.tts.auto está habilitado, OpenClaw:
- Omite TTS si la respuesta ya contiene contenido multimedia o una directiva
MEDIA:. - Omite respuestas muy cortas (menos de 10 caracteres).
- Resume respuestas largas cuando los resúmenes están habilitados, usando
summaryModel(oagents.defaults.model.primary). - Adjunta el audio generado a la respuesta.
- En
mode: "final", sigue enviando TTS solo de audio para respuestas finales transmitidas después de que se completa el flujo de texto; el contenido multimedia generado pasa por la misma normalización de contenido multimedia del canal que los adjuntos de respuesta normales.
maxLength y el resumen está desactivado (o no hay clave de API para el
modelo de resumen), se omite el audio y se envía la respuesta de texto normal.
Formatos de salida por canal
| Destino | Formato |
|---|---|
| Feishu / Matrix / Telegram / WhatsApp | Las respuestas de nota de voz prefieren Opus (opus_48000_64 de ElevenLabs, opus de OpenAI). 48 kHz / 64 kbps equilibra claridad y tamaño. |
| Otros canales | MP3 (mp3_44100_128 de ElevenLabs, mp3 de OpenAI). 44,1 kHz / 128 kbps es el valor predeterminado para voz. |
| Talk / telefonía | PCM nativo del proveedor (Inworld 22050 Hz, Google 24 kHz), o ulaw_8000 de Gradium para telefonía. |
- Transcodificación de Feishu / WhatsApp: Cuando una respuesta de nota de voz llega como MP3/WebM/WAV/M4A, el plugin del canal la transcodifica a Ogg/Opus de 48 kHz con
ffmpeg. WhatsApp envía mediante Baileys conptt: trueyaudio/ogg; codecs=opus. Si la conversión falla: Feishu recurre a adjuntar el archivo original; el envío de WhatsApp falla en lugar de publicar una carga PTT incompatible. - MiniMax / Xiaomi MiMo: MP3 predeterminado (32 kHz para MiniMax
speech-2.8-hd); se transcodifica a Opus de 48 kHz para destinos de nota de voz medianteffmpeg. - CLI local: Usa el
outputFormatconfigurado. Los destinos de nota de voz se convierten a Ogg/Opus y la salida de telefonía a PCM mono sin procesar de 16 kHz. - Google Gemini: Devuelve PCM sin procesar de 24 kHz. OpenClaw lo envuelve como WAV para adjuntos, lo transcodifica a Opus de 48 kHz para destinos de nota de voz y devuelve PCM directamente para Talk/telefonía.
- Inworld: Adjuntos MP3, nota de voz nativa
OGG_OPUS,PCMsin procesar de 22050 Hz para Talk/telefonía. - xAI: MP3 de forma predeterminada;
responseFormatpuede sermp3|wav|pcm|mulaw|alaw. Usa el endpoint REST por lotes de xAI; no se usa TTS por WebSocket en streaming. El formato nativo de nota de voz Opus no es compatible. - Microsoft: Usa
microsoft.outputFormat(predeterminadoaudio-24khz-48kbitrate-mono-mp3). TelegramsendVoiceacepta OGG/MP3/M4A; usa OpenAI/ElevenLabs si necesitas mensajes de voz Opus garantizados. Si el formato de Microsoft configurado falla, OpenClaw reintenta con MP3.
Referencia de campos
Top-level messages.tts.*
Top-level messages.tts.*
Modo Auto-TTS.
inbound solo envía audio después de un mensaje de voz entrante; tagged solo envía audio cuando la respuesta incluye directivas [[tts:...]] o un bloque [[tts:text]].Conmutador heredado.
openclaw doctor --fix migra esto a auto."all" incluye respuestas de herramientas/bloques además de las respuestas finales.Id. del proveedor de voz. Cuando no se define, OpenClaw usa el primer proveedor configurado en el orden de selección automática del registro. El
provider: "edge" heredado se reescribe como "microsoft" mediante openclaw doctor --fix.Id. de persona activa de
personas. Normalizado a minúsculas.Identidad hablada estable. Campos:
label, description, provider, fallbackPolicy, prompt, providers.<provider>. Consulta Personas.Modelo económico para resumen automático; el valor predeterminado es
agents.defaults.model.primary. Acepta provider/model o un alias de modelo configurado.Permite que el modelo emita directivas TTS. El valor predeterminado de
enabled es true; el valor predeterminado de allowProvider es false.Configuración propiedad del proveedor indexada por id. de proveedor de voz. Los bloques directos heredados (
messages.tts.openai, .elevenlabs, .microsoft, .edge) se reescriben mediante openclaw doctor --fix; confirma solo messages.tts.providers.<id>.Límite estricto para caracteres de entrada de TTS.
/tts audio falla si se supera.Tiempo de espera de solicitud en milisegundos.
Sobrescribe la ruta JSON de preferencias locales (proveedor/límite/resumen). Valor predeterminado
~/.openclaw/settings/tts.json.Azure Speech
Azure Speech
Env:
AZURE_SPEECH_KEY, AZURE_SPEECH_API_KEY o SPEECH_KEY.Región de Azure Speech (por ejemplo,
eastus). Env: AZURE_SPEECH_REGION o SPEECH_REGION.Sobrescritura opcional del endpoint de Azure Speech (alias
baseUrl).ShortName de voz de Azure. Valor predeterminado
en-US-JennyNeural.Código de idioma SSML. Valor predeterminado
en-US.X-Microsoft-OutputFormat de Azure para audio estándar. Valor predeterminado audio-24khz-48kbitrate-mono-mp3.X-Microsoft-OutputFormat de Azure para salida de nota de voz. Valor predeterminado ogg-24khz-16bit-mono-opus.ElevenLabs
ElevenLabs
Recurrirá a
ELEVENLABS_API_KEY o XI_API_KEY.Id. de modelo (por ejemplo,
eleven_multilingual_v2, eleven_v3).Id. de voz de ElevenLabs.
stability, similarityBoost, style (cada uno 0..1), useSpeakerBoost (true|false), speed (0.5..2.0, 1.0 = normal).Modo de normalización de texto.
ISO 639-1 de 2 letras (por ejemplo,
en, de).Entero
0..4294967295 para determinismo de mejor esfuerzo.Sobrescribe la URL base de la API de ElevenLabs.
Google Gemini
Google Gemini
Recurrirá a
GEMINI_API_KEY / GOOGLE_API_KEY. Si se omite, TTS puede reutilizar models.providers.google.apiKey antes de recurrir al entorno.Modelo TTS de Gemini. Valor predeterminado
gemini-3.1-flash-tts-preview.Nombre de voz preconstruida de Gemini. Valor predeterminado
Kore. Alias: voice.Prompt de estilo en lenguaje natural antepuesto antes del texto hablado.
Etiqueta opcional del hablante antepuesta antes del texto hablado cuando tu prompt usa un hablante con nombre.
Establécelo en
audio-profile-v1 para envolver los campos de prompt de persona activa en una estructura de prompt TTS de Gemini determinista.Texto adicional de prompt de persona específico de Google anexado a las Notas del director de la plantilla.
Solo se acepta
https://generativelanguage.googleapis.com.Gradium
Gradium
Inworld
Inworld
Inworld principal
Entorno:
INWORLD_API_KEY.Predeterminado
https://api.inworld.ai.Predeterminado
inworld-tts-1.5-max. También: inworld-tts-1.5-mini, inworld-tts-1-max, inworld-tts-1.Predeterminado
Sarah.Temperatura de muestreo
0..2.CLI local (tts-local-cli)
CLI local (tts-local-cli)
Ejecutable local o cadena de comando para TTS por CLI.
Argumentos del comando. Admite los marcadores de posición
{{Text}}, {{OutputPath}}, {{OutputDir}}, {{OutputBase}}.Formato de salida esperado de la CLI. Predeterminado
mp3 para archivos adjuntos de audio.Tiempo de espera del comando en milisegundos. Predeterminado
120000.Directorio de trabajo opcional del comando.
Sobrescrituras de entorno opcionales para el comando.
Microsoft (sin clave de API)
Microsoft (sin clave de API)
Permite el uso de voz de Microsoft.
Nombre de voz neuronal de Microsoft (p. ej.,
en-US-MichelleNeural).Código de idioma (p. ej.,
en-US).Formato de salida de Microsoft. Predeterminado
audio-24khz-48kbitrate-mono-mp3. No todos los formatos son compatibles con el transporte incluido respaldado por Edge.Cadenas de porcentaje (p. ej.,
+10%, -5%).Escribe subtítulos JSON junto al archivo de audio.
URL de proxy para solicitudes de voz de Microsoft.
Sobrescritura del tiempo de espera de la solicitud (ms).
Alias heredado. Ejecuta
openclaw doctor --fix para reescribir la configuración persistida en providers.microsoft.MiniMax
MiniMax
Recurrirá a
MINIMAX_API_KEY. Autenticación Token Plan mediante MINIMAX_OAUTH_TOKEN, MINIMAX_CODE_PLAN_KEY o MINIMAX_CODING_API_KEY.Predeterminado
https://api.minimax.io. Entorno: MINIMAX_API_HOST.Predeterminado
speech-2.8-hd. Entorno: MINIMAX_TTS_MODEL.Predeterminado
English_expressive_narrator. Entorno: MINIMAX_TTS_VOICE_ID.0.5..2.0. Predeterminado 1.0.(0, 10]. Predeterminado 1.0.Entero
-12..12. Predeterminado 0. Los valores fraccionarios se truncan antes de la solicitud.OpenAI
OpenAI
Recurrirá a
OPENAI_API_KEY.Id. de modelo TTS de OpenAI (p. ej.,
gpt-4o-mini-tts).Nombre de voz (p. ej.,
alloy, cedar).Campo
instructions explícito de OpenAI. Cuando se establece, los campos de prompt de persona no se asignan automáticamente.Campos JSON adicionales fusionados en los cuerpos de solicitud
/audio/speech después de los campos TTS de OpenAI generados. Usa esto para endpoints compatibles con OpenAI, como Kokoro, que requieren claves específicas del proveedor como lang; las claves de prototipo no seguras se ignoran.Sobrescribe el endpoint TTS de OpenAI. Orden de resolución: configuración →
OPENAI_TTS_BASE_URL → https://api.openai.com/v1. Los valores no predeterminados se tratan como endpoints TTS compatibles con OpenAI, por lo que se aceptan nombres de modelo y voz personalizados.OpenRouter
OpenRouter
Entorno:
OPENROUTER_API_KEY. Puede reutilizar models.providers.openrouter.apiKey.Predeterminado
https://openrouter.ai/api/v1. El heredado https://openrouter.ai/v1 se normaliza.Predeterminado
hexgrad/kokoro-82m. Alias: modelId.Predeterminado
af_alloy. Alias: voiceId.Predeterminado
mp3.Sobrescritura de velocidad nativa del proveedor.
Volcengine (BytePlus Seed Speech)
Volcengine (BytePlus Seed Speech)
Entorno:
VOLCENGINE_TTS_API_KEY o BYTEPLUS_SEED_SPEECH_API_KEY.Predeterminado
seed-tts-1.0. Entorno: VOLCENGINE_TTS_RESOURCE_ID. Usa seed-tts-2.0 cuando tu proyecto tenga autorización de TTS 2.0.Encabezado de clave de aplicación. Predeterminado
aGjiRDfUWi. Entorno: VOLCENGINE_TTS_APP_KEY.Sobrescribe el endpoint HTTP de TTS de Seed Speech. Entorno:
VOLCENGINE_TTS_BASE_URL.Tipo de voz. Predeterminado
en_female_anna_mars_bigtts. Entorno: VOLCENGINE_TTS_VOICE.Relación de velocidad nativa del proveedor.
Etiqueta de emoción nativa del proveedor.
Campos heredados de Volcengine Speech Console. Entorno:
VOLCENGINE_TTS_APPID, VOLCENGINE_TTS_TOKEN, VOLCENGINE_TTS_CLUSTER (predeterminado volcano_tts).xAI
xAI
Entorno:
XAI_API_KEY.Predeterminado
https://api.x.ai/v1. Entorno: XAI_BASE_URL.Predeterminado
eve. Voces en vivo: ara, eve, leo, rex, sal, una.Código de idioma BCP-47 o
auto. Predeterminado en.Predeterminado
mp3.Sobrescritura de velocidad nativa del proveedor.
Xiaomi MiMo
Xiaomi MiMo
Entorno:
XIAOMI_API_KEY.Predeterminado
https://api.xiaomimimo.com/v1. Entorno: XIAOMI_BASE_URL.Predeterminado
mimo-v2.5-tts. Entorno: XIAOMI_TTS_MODEL. También admite mimo-v2-tts.Predeterminado
mimo_default. Entorno: XIAOMI_TTS_VOICE.Predeterminado
mp3. Entorno: XIAOMI_TTS_FORMAT.Instrucción opcional de estilo en lenguaje natural enviada como mensaje de usuario; no se pronuncia.
Herramienta de agente
La herramientatts convierte texto a voz y devuelve un adjunto de audio para
entregar la respuesta. En Feishu, Matrix, Telegram y WhatsApp, el audio se
entrega como mensaje de voz en lugar de como archivo adjunto. Feishu y
WhatsApp pueden transcodificar salidas TTS que no sean Opus en esta ruta cuando ffmpeg está
disponible.
WhatsApp envía audio mediante Baileys como nota de voz PTT (audio con
ptt: true) y envía el texto visible por separado del audio PTT porque
los clientes no siempre renderizan subtítulos en las notas de voz.
La herramienta acepta los campos opcionales channel y timeoutMs; timeoutMs es un
tiempo de espera de solicitud del proveedor por llamada en milisegundos.
RPC de Gateway
| Método | Propósito |
|---|---|
tts.status | Lee el estado actual de TTS y el último intento. |
tts.enable | Establece la preferencia automática local en always. |
tts.disable | Establece la preferencia automática local en off. |
tts.convert | Texto a audio de una sola vez. |
tts.setProvider | Establece la preferencia local de proveedor. |
tts.setPersona | Establece la preferencia local de persona. |
tts.providers | Lista los proveedores configurados y su estado. |
Enlaces de servicio
- Guía de texto a voz de OpenAI
- Referencia de la API de audio de OpenAI
- Texto a voz REST de Azure Speech
- Proveedor de Azure Speech
- Texto a voz de ElevenLabs
- Autenticación de ElevenLabs
- Gradium
- API de TTS de Inworld
- API T2A v2 de MiniMax
- API HTTP de TTS de Volcengine
- Síntesis de voz de Xiaomi MiMo
- node-edge-tts
- Formatos de salida de Microsoft Speech
- Texto a voz de xAI