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 de síntesis de voz (SSML). Este marcado basado en XML permite mezclar varios idiomas, proporcionar sugerencias de pronunciación para palabras y números concretos y controlar la velocidad, el volumen y el tono del texto sintetizado.

En un OCN talk puede enviar Etiquetas SSML como parte de la cadena de texto. Pero antes, debe 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 quitar énfasis al 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
  • Diga como: Proporciona sugerencias para la pronunciación de palabras, números y fechas.
  • Frases y párrafos: Obliga a la API a reconocer frases y párrafos al pronunciar tu texto.
  • Sustitución: Sustituye un texto específico por una pronunciación de tu elección

Rompe

En break permite añadir pausas al texto. La duración de la pausa puede especificarse mediante 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 (que suprime la pausa que podría existir después de 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, utilice la tecla emphasis etiqueta. Al enfatizar las palabras se modifica el ritmo y el volumen del habla. Más énfasis hace que el texto se pronuncie más alto y más despacio. Con menos énfasis, más bajo y rápido.

Nota emphasis no está disponible para las voces Premium TTS.

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

Válido level valores incluyen:

  • strong: Aumenta el volumen y ralentiza la velocidad del habla para que el discurso sea más alto y más lento.
  • moderate: Aumenta el volumen y ralentiza la velocidad de habla, pero menos que fuerte. moderate por defecto.
  • reduced: Disminuye 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

En 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 inglés británico), incluso en el caso de lenguas sin variantes nacionales en las que un código de país podría ser redundante (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 acción/petición se establece en en-USy 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 o el parámetro talk acción/petición.

No todos los estilos de voz admiten lang etiqueta.

Fonemas

En phoneme permite enviar una representación del alfabeto fonético (IPA) de una palabra. Para ello, debe especificar una 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

En prosody permite ajustar el tono, la velocidad y el volumen del texto. texto.

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

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

  • En pitch cambia el tono de la voz. Puede especificar mediante etiquetas de valor predefinidas o numéricamente. Las etiquetas son: default, x-low, low, medium, high y x-high. El formato para especificar un cambio de tono numérico es: +n% y -n%.

Nota: Cuando se utilizan voces TTS Premium, la opción pitch no está soportado.

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>

Decir Como

En 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 le permite marcarlos específicamente.

En 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 ordinal. Por ejemplo, "1" se pronunciaría "primero" y "33" se pronunciaría "trigésimo tercero".
digits Lee 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 Especifique cómo se pronuncian las fechas. Véase 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 pueden formatearse 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 (por ejemplo, "10/3")
ym año-mes (por ejemplo, "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

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

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

Sustitución

En 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>