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:
noneox-weak(que suprime la pausa que podría existir después de 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, 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.moderatepor 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
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.En
ratecambia la velocidad del habla. Los valores aceptables son:x-slow,slow,medium,fastyx-fast.En
pitchcambia el tono de la voz. Puede especificar mediante etiquetas de valor predefinidas o numéricamente. Las etiquetas son:default,x-low,low,medium,highyx-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>