Etiquetas SSML
Pausas, énfasis y cómo leer un dato en la voz de tu voicebot
Un Voicebot no lee sus mensajes: los convierte en voz con un motor de síntesis. Las etiquetas SSML son marcas que escribes dentro del mensaje, entre < >, para decirle a ese motor cómo decirlo: dónde hacer una pausa, qué palabra acentuar, a qué velocidad hablar o cómo leer una fecha o un código.
Este artículo es la referencia de las etiquetas que funcionan en Audara. Qué es un voicebot, cómo se configura su voz y cómo se escribe para el oído está en el artículo de Voicebot.
Dónde se escriben
Las etiquetas se escriben en el texto de cualquier paso de un voicebot que diga algo: un mensaje, la pregunta de una captura, las opciones de un menú, los mensajes de invalidez. Todo lo que el bot pronuncia pasa por el mismo camino, así que una etiqueta funciona igual en cualquiera de ellos.
En el editor de un voicebot, lo que va entre < > se resalta en morado, para que distingas de un vistazo la marca del texto que se va a decir. Las variables, como {{CALLERID}}, se resaltan en azul. Y la etiqueta <voice> sale en rojo y tachada, porque Audara la ignora: más abajo está por qué.
<voice> de la segunda opción sale tachada: está escrita, pero no va a pasar nada.La ayuda de etiquetas se abre sin salir del editor: en el menú (⋮) del flujo está la opción Etiquetas SSML. Solo aparece en los voicebots; en un chatbot o una automatización no tiene sentido y no se muestra.
No hace falta que envuelvas el mensaje en <speak>. Si el texto trae alguna etiqueta, Audara lo envuelve por ti antes de mandarlo al motor de voz.
Todo depende del proveedor de voz
Cada voicebot habla con el proveedor que elegiste en su Configuración General, en el bloque Síntesis de voz (TTS), campo Proveedor de Voz (TTS). Y no todos los proveedores entienden SSML:
| Proveedor | Etiquetas SSML | <saychars> |
|---|---|---|
| Se aplican todas las de este artículo. | Funciona | |
| ElevenLabs | No las interpreta. La única que sus voces respetan es la pausa, <break>. Las demás no cambian cómo suena el mensaje. | Funciona |
| Deepgram | Audara las quita antes de mandar el texto, porque este proveedor las leería en voz alta. El texto de adentro se dice, pero sin ningún efecto. | Funciona |
La consecuencia práctica: si tu voicebot usa ElevenLabs o Deepgram, las etiquetas no rompen nada, pero tampoco hacen nada. Si cambias de proveedor, revisa los mensajes que dependían de una etiqueta para sonar bien, sobre todo los números.
Los proveedores que ves en la lista dependen de lo que tenga habilitado tu operación, así que puede que no estén los tres. Si el que elegiste deja de estar disponible, el voicebot no se queda mudo: sigue hablando con otro proveedor activo. Si eso pasa, vuelve a probar los mensajes con etiquetas en una llamada, porque ya no suenan como los dejaste.
<saychars>: leer carácter por carácter
Es una etiqueta propia de Audara, no de SSML, y la única que funciona con cualquier proveedor: Audara la resuelve antes de mandar el texto al motor de voz. Lee su contenido un carácter a la vez y descarta los espacios.
Tu número de pedido es <saychars>48213</saychars>.
Se escucha cuatro, ocho, dos, uno, tres, y no cuarenta y ocho mil doscientos trece. Úsala para documentos de identidad, placas, códigos de verificación, números de pedido y teléfonos: todo lo que es un código y no una cantidad.
Funciona también con variables:
Te llamamos del <saychars>{{CALLERID}}</saychars>.
Si tienes que elegir una sola etiqueta para aprender, es esta. Resuelve el problema más común de un voicebot, que es leer un código como si fuera un número, y no depende del proveedor.
<break>: pausas
Mete un silencio en el punto exacto donde la escribes. Da ritmo, separa dos ideas y le deja al cliente un momento para procesar un dato antes del siguiente.
Tu cita quedó confirmada. <break time="700ms"/> Te esperamos el jueves a las diez.
- time
- La duración exacta, en milisegundos (
500ms) o en segundos (1s). - strength
- Una duración relativa en vez de exacta:
weak,medium,strongox-strong, de más corta a más larga.
Funciona con Google y con ElevenLabs. En ElevenLabs la pausa no puede pasar de tres segundos.
Una pausa larga en una llamada suena a que se cortó. Mantén las pausas por debajo de un segundo, salvo que estés esperando a que el cliente busque algo.
<prosody>: velocidad, tono y volumen
Cambia cómo suena un tramo del mensaje. Solo con Google.
<prosody rate="slow">Anota el siguiente número.</prosody>
- rate
- La velocidad:
x-slow,slow,medium,fast,x-fast, o un porcentaje como85%. - pitch
- El tono:
low,medium,high, o semitonos como+2sty-2st. - volume
- El volumen:
soft,medium,loud, o decibeles como+3dB.
Los atributos se combinan en una misma etiqueta:
<prosody rate="90%" pitch="-1st">Este mensaje puede ser grabado para control de calidad.</prosody>
Bajar la velocidad sirve para textos legales, condiciones y cualquier cifra que el cliente tenga que anotar. Subirla sirve para avisos cortos que la gente ya conoce.
<emphasis>: acentuar una palabra
Resalta una palabra o una frase dentro del mensaje. Solo con Google.
Recuerda que el pago vence <emphasis level="strong">mañana</emphasis>.
El nivel va de más a menos: strong, moderate y reduced. Úsalo con moderación: si todo está acentuado, nada lo está.
<say-as>: cómo leer un dato
Le dice al motor qué clase de dato está leyendo, para que lo pronuncie como se dice y no como se escribe. Solo con Google. El atributo interpret-as dice qué es:
- characters
- Letra por letra. Para siglas que no se pronuncian como palabra.
Escríbenos a soporte en <say-as interpret-as="characters">TH</say-as> Hogar. - cardinal
- Como cantidad: mil doscientos.
Tienes <say-as interpret-as="cardinal">1200</say-as> puntos. - ordinal
- Como posición: tercero.
Eres el <say-as interpret-as="ordinal">3</say-as> en la fila. - date
- Como fecha. Con format le dices en qué orden vienen el día, el mes y el año:
dmy,mdy,ymd.Tu entrega es el <say-as interpret-as="date" format="dmy">05/03/2026</say-as>. - time
- Como hora.
Abrimos a las <say-as interpret-as="time" format="hms24">08:30</say-as>.
Para decir un número dígito por dígito, usa <saychars> y no <say-as>: hace lo mismo y funciona con cualquier proveedor. Y cuando el dato viene de una variable, pruébalo con un valor real: una fecha que llega en otro formato del que declaraste se lee mal.
<sub>: decir otra cosa
Lee un texto en lugar de lo que está escrito. Sirve para abreviaturas y nombres que el motor pronuncia mal. Solo con Google.
Visítanos en la <sub alias="avenida">Av.</sub> Principal.
Lo que no se puede cambiar con etiquetas
La voz es del voicebot completo, no de cada mensaje. Si escribes una etiqueta <voice>, Audara la quita antes de hablar y el texto de adentro se dice con la voz de siempre. Por eso el editor la muestra en rojo y tachada: está escrita, pero no va a pasar nada. Para cambiar la voz, ve a la Configuración General del voicebot.
Cuando una etiqueta deja al bot en silencio
Con Google, un mensaje que lleva etiquetas tiene que estar bien escrito como SSML. Si no lo está, el proveedor no lo acepta y ese mensaje no se dice: el cliente escucha silencio donde iba el mensaje, y la conversación sigue como si se hubiera dicho.
Lo que lo provoca casi siempre:
- Una etiqueta sin cerrar.
<prosody rate="slow">sin su</prosody>. Las que no llevan contenido, como<break/>, se cierran con la barra al final. - Un
&en el texto. "Tienda Hogar & Cía" sin etiquetas se dice bien; con una etiqueta en el mismo mensaje, deja de sonar. Escribe "y". - Un
<que no es etiqueta, como "menos de <5 días". - Comillas tipográficas en los atributos. Escribe
time="1s"con comillas rectas; si copias la etiqueta de un documento, revisa que no se hayan cambiado.
Cuidado con las variables. Si el mensaje tiene etiquetas y una variable trae un &, por ejemplo el nombre de una empresa, el mensaje falla solo para ese cliente. Un flujo que funcionó en todas las pruebas puede quedarse mudo con un dato real.
El panel Probar muestra el texto con sus etiquetas escritas, pero no suena. Cómo quedan las pausas, los énfasis y los números solo se sabe en una llamada real: haz una antes de publicar cualquier mensaje con etiquetas.