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:
noneox-weak(lo que elimina una pausa que, de otro modo, podría producirse tras un punto)weakomedium(equivalente a una coma)strongox-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.moderatees 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
volumepuede tener los siguientes valores:default,silent,x-soft,soft,medium,loudyx-loud. También puede también especificar un valor relativo de decibelios de la forma+ndBo-ndBdondenes un valor entero. -
El
ratecambia la velocidad del habla. Los valores aceptables son:x-slow,slow,medium,fastyx-fast. -
El
pitchEl 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,highyx-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>