Personalización del texto hablado

Visión general

Puedes controlar la forma en que la Voice API de Vonage reproduce el texto generado por la máquina para tus usuarios utilizando un subconjunto de las etiquetas definidas en la etiqueta Especificación del Lenguaje de Marcado para la Síntesis de la Voz (SSML). Este lenguaje de marcado basado en XML te permite mezclar varios idiomas, ofrecer indicaciones de pronunciación para palabras y Numbers concretos, y controlar la velocidad, el volumen y el tono del texto sintetizado.

En un OCN talk acción, puedes enviar Etiquetas SSML como parte de la cadena de texto. Pero primero debes rodear toda la cadena con <speak></speak> para indicar a Vonage que la cadena incluye SSML. Puedes usar comillas simples o comillas dobles escapadas para los valores de los atributos de las etiquetas.

He aquí un ejemplo de SSML en el text propiedad de una OCN talk acción:

[
  {
    "action": "talk",
    "text": "<speak><p>Hello.</p><p>How are you?</p></speak>"
  }
]

Etiquetas SSML

  • Rompe: Añadir pausas al texto hablado
  • Haciendo hincapié en: Añadir o eliminar el énfasis del texto
  • Idioma: Especifique otro idioma para determinadas palabras
  • Fonemas: Deletrea el texto utilizando el alfabeto fonético
  • Prosodia: Ajuste el tono, la velocidad y el volumen del texto hablado
  • Di como: Proporciona sugerencias para la pronunciación de palabras, números y fechas.
  • Frases y párrafos: Haz que la API reconozca las frases y los párrafos al leer en voz alta tu texto
  • Sustitución: Sustituye un texto específico por una pronunciación de tu elección

Rompe

El break La etiqueta te permite añadir pausas al texto. La duración de la pausa se puede especificar utilizando un strength duración o como time segundos o milisegundos.

<speak>My name is <break time='1s' />Slim Shady.</speak>

Válido strength valores incluyen:

  • none o x-weak (lo que elimina una pausa que, de otro modo, podría producirse tras un punto)
  • weak o medium (equivalente a una coma)
  • strong o x-strong (equivalente a un salto de párrafo)
<speak>
To be <break strength='weak' />
or not to be <break strength='weak' />
that is the question.
</speak>

Haciendo hincapié en

Para resaltar palabras, utiliza el emphasis etiqueta. Al resaltar palabras, se modifica la velocidad y el volumen de la lectura. Cuanto mayor sea el énfasis, más alto y más lento se leerá el texto. Cuanto menor sea el énfasis, más bajo y más rápido se leerá.

Nota: El emphasis La etiqueta no está disponible para las voces TTS Premium.

Para especificar el grado de énfasis, utilice el botón level atributo.

Válido level valores incluyen:

  • strong: Aumenta el volumen y reduce la velocidad del habla, de modo que la voz suene más alta y más lenta.
  • moderate: Aumenta el volumen y ralentiza la velocidad de habla, pero menos que fuerte. moderate es el valor predeterminado.
  • reduced: Reduce el volumen y acelera el ritmo del habla. El habla es más suave y rápida.
<speak>
<emphasis level="moderate">This is an important announcement</emphasis>
</speak>

Idioma

El lang le permite especificar otro idioma para una palabra, frase u oración concreta. Puede ser útil para pronunciar mejor palabras extranjeras. La etiqueta de idioma debe contener tanto la etiqueta de idioma como el código de país (por ejemplo pt-BR para el portugués de Brasil, en-GB para el inglés británico), incluso en el caso de idiomas que no presentan variantes por país, en los que el código de país podría resultar superfluo (p. ej., it-IT para italiano).

<speak><lang xml:lang='it-IT'>Buongiorno</lang></speak>

Tenga en cuenta lo siguiente, lang cambia la pronunciación, aunque no cambia el idioma «nativo» de la voz; por ejemplo, si el idioma en talk La acción/solicitud está configurada en en-US, y SSML lang en el texto establecido en fr-FR, la frase se pronunciará en francés con acento americano. Para cambiar el idioma de todo el mensaje, utilice el botón language parámetro o el talk acción/petición.

No todos los estilos de voz son compatibles con lang etiqueta.

Fonemas

El phoneme La etiqueta te permite enviar la representación de una palabra en el Alfabeto Fonético Internacional (AFI). Para utilizarla, debes especificar tanto un alphabet (o bien ipa o x-sampa) y el ph que contiene los símbolos fonéticos.

<speak>
<phoneme alphabet='ipa' ph='təˈmætoː'>Tomato</phoneme> or
<phoneme alphabet='ipa' ph='təˈmeɪtoʊ'>tomato</phoneme>.
Two nations separated by a common language.
</speak>

Prosodia

El prosody La etiqueta te permite ajustar el tono, la velocidad y el volumen del texto.

  • El volume puede tener los siguientes valores: default, silent, x-soft, soft, medium, loud y x-loud. También puede también especificar un valor relativo de decibelios de la forma +ndB o -ndB donde n es un valor entero.

  • El rate cambia la velocidad del habla. Los valores aceptables son: x-slow, slow, medium, fast y x-fast.

  • El pitch El atributo cambia el tono de la voz. Puedes especificarlo utilizando etiquetas de valores predefinidas o introduciendo un valor numérico. Las etiquetas de valores son: default, x-low, low, medium, high y x-high. El formato para especificar un cambio numérico de tono es: +n% y -n%.

Nota: Cuando se utilizan voces TTS Premium, la opción pitch El atributo no es compatible.

El siguiente ejemplo muestra cómo cambiar el volumen, la velocidad y el tono.

<speak>
I am <prosody volume='loud'>loud and proud</prosody>,
<prosody rate='fast'>quick as a cricket</prosody>
and can <prosody pitch='x-low'>change my pitch</prosody>.
</speak>

Di «As»

El say-as permite dar instrucciones sobre cómo se pronuncian determinadas palabras y números. Muchas de estas características son detectadas automáticamente en el habla por el motor TTS, pero la etiqueta say-as El comando te permite marcarlos específicamente.

El say-as tiene un atributo obligatorio: interpret-as. Dicho atributo debe contener uno de los siguientes valores:

Valor de interpret-as Efecto sobre el texto hablado
character Deletrea cada letra, por ejemplo: I-A-T-A.
cardinal Pronuncia el valor como un número. Por ejemplo, «974» se pronunciaría «novecientos setenta y cuatro».
ordinal Pronuncia el número como un ordinal. Por ejemplo, «1» se pronunciaría «primero» y «33» se pronunciaría «treinta y tres».
digits Lee en voz alta los números especificados como dígitos. Por ejemplo, «747» se pronunciaría «siete cuatro siete» y no «setecientos cuarenta y siete».
fraction Lee los Numbers en voz alta como una fracción. Por ejemplo, "1/3" se pronunciaría "un tercio" y "2 4/10" se pronunciaría "dos y cuatro décimos".
unit Lee el número especificado como una unidad. El valor debe ser un número seguido de una unidad de medida sin espacio entre ambos. Por ejemplo: "1m".
date Especifica cómo se pronuncian las fechas. Consulta la sección siguiente sobre formato de fecha.
time Pronuncia las duraciones de tiempo en minutos y segundos. Por ejemplo: 1'30" se lee como "un minuto y treinta segundos".
expletive Sustituye el contenido por un "pitido" para censurar los improperios. Puede utilizar esta opción para sustituir automáticamente las palabrotas filtradas.
telephone Lee en voz alta un número de teléfono con las pausas adecuadas.
address Lee en voz alta una dirección con las pausas adecuadas.

Nota: No todos los estilos de voz admiten address opción.

Nota: Cuando se utilizan voces TTS Premium, el character puede no funcionar según lo previsto y debe evitarse.

Un ejemplo:

<speak>
Your number is <say-as interpret-as='cardinal'>10</say-as>. 
You are <say-as interpret-as='ordinal'>10</say-as> in line. 
The digits for ten are <say-as interpret-as='digits'>10</say-as>.
</speak>

Formato de fecha

Las fechas se pueden formatear de las siguientes maneras:

format Cómo se lee la fecha
mdy mes-fecha-año (por ejemplo, "3/10/2019")
dmy día-mes-año (por ejemplo, "10/3/2019")
ymd año-mes-día (por ejemplo, "2019/3/10")
md mes-día (por ejemplo, "3/10")
dm día-mes (p. ej., «10/3»)
ym año-mes (p. ej., «2019/3»)
my mes-año (por ejemplo, "3/2019")
d día (por ejemplo, "10")
m mes (por ejemplo, "3")
y año (por ejemplo, "2019")
yyyymmdd año-mes-día, con ? para sustituir componentes no especificados. Por ejemplo: 20190310 o ????0310.

El ejemplo siguiente se convertirá en «Hoy es 10 de marzo».

<speak>
Today is <say-as interpret-as="date" format="dm">10/3</say-as>
</speak>

Frases y párrafos

Frases

Puede envolver frases en el s etiqueta. Esto equivale a poner un punto al final de la frase.

<speak>
<s>Thank you Mario</s>
<s>But our princess is in another castle</s>
</speak>

Párrafos

El p le permite especificar párrafos en su discurso.

<speak>
<p>Hello.</p>
<p>How are you?</p>
</speak>

Sustitución

El sub le permite proporcionar una pronunciación alternativa. El contenido de la etiqueta alias se leerá en su lugar.

<speak>
Welcome to the <sub alias="United States">US</sub>.
</speak>