Compartir a través de


Personalización de la voz y el sonido con SSML

Puede usar el lenguaje de marcado de síntesis de voz (SSML) para especificar la voz de la capacidad "texto a voz", así como el idioma, el nombre, el estilo y el rol de la salida de voz. También puede usar varias voces en un único documento SSML y ajustar el énfasis, la velocidad de habla, el tono y el volumen. Además, SSML cuenta con la capacidad de insertar audio grabado previamente, como efectos de sonido o notas musicales.

En el artículo se muestra cómo usar elementos de SSML para especificar voz y sonido. Para obtener más información sobre la sintaxis de SSML, vea Estructura y eventos del documento de SSML.

Uso de elementos de voz

Se debe especificar al menos un elemento voice dentro de cada elemento speak de SSML. Este elemento determina la voz que se usa para la conversión de texto a voz.

Puede incluir varios elementos voice en un único documento SSML. Cada elemento voice puede especificar una voz diferente. También puede usar la misma voz varias veces con configuraciones diferentes, como cuando se cambia la duración del silencio entre oraciones.

En la tabla siguiente se describe el uso de los atributos del elemento voice:

Atributo Descripción Obligatorio u opcional
name La voz que se usa para la salida de texto a voz. Para obtener una lista completa de voces compatibles pregeneradas, vea Compatibilidad con idiomas. Obligatorio
effect Procesador de efectos de audio que se usa para optimizar la calidad de la salida de voz sintetizada para escenarios específicos en dispositivos.

En algunos escenarios de entornos de producción, la experiencia auditiva puede degradarse debido a la distorsión de la reproducción en ciertos dispositivos. Por ejemplo, la voz sintetizada de un altavoz de coche puede sonar apagada debido a factores ambientales como la respuesta del hablante, la reverberación de la sala y el ruido de fondo. Es posible que el pasajero tenga que subir el volumen para oír con más claridad. Para evitar las operaciones manuales en un escenario así, el procesador de efectos de audio puede hacer que el sonido sea más claro compensando la distorsión de la reproducción.

Se admiten los valores siguientes:
  • eq_car – Optimice la experiencia auditiva al proporcionar voz de alta calidad en coches, autobuses y otros vehículos cerrados.
  • eq_telecomhp8k – Optimice la experiencia auditiva para la voz de banda estrecha en escenarios de telecomunicaciones o telefonía. Debe usar una frecuencia de muestreo de 8 kHz. Si la frecuencia de muestreo no es de 8 kHz, la calidad auditiva de la voz de salida no se optimizará.

Si falta el valor o no es válido, este atributo se omitirá y no se aplicará ningún efecto.
Opcionales

Ejemplos de Voice

Para información sobre los valores admitidos de los atributos del elemento voice, consulte Uso de elementos de voz.

Ejemplo de voz única

En este ejemplo se usa la voz en-US-AvaMultilingualNeural.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-AvaMultilingualNeural">
        This is the text that is spoken.
    </voice>
</speak>

Ejemplo de múltiples voces

Dentro del elemento speak, puede especificar varias voces para la salida de texto a voz. Estas voces pueden estar en diferentes idiomas. Para cada voz, el texto se debe encapsular en un elemento voice.

En este ejemplo se alterna entre las voces en-US-AvaMultilingualNeural y en-US-AndrewMultilingualNeural. Las voces multilingües neuronales pueden hablar diferentes idiomas en función del texto de entrada.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-AvaMultilingualNeural">
        Good morning!
    </voice>
    <voice name="en-US-AndrewMultilingualNeural">
        Good morning to you too Ava!
    </voice>
</speak>

Ejemplo de voz neuronal personalizada

Para usar la voz neuronal personalizada, especifique el nombre del modelo como nombre de voz en SSML.

En este ejemplo se usa una voz personalizada llamada my-custom-voice.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="my-custom-voice">
        This is the text that is spoken.
    </voice>
</speak>

Ejemplo de efecto de audio

Use el atributo effect para optimizar la experiencia auditiva en escenarios como automóviles y telecomunicaciones. En el siguiente ejemplo de SSML se usa el atributo effect con la configuración en escenarios de automóviles.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-AvaMultilingualNeural" effect="eq_car">
        This is the text that is spoken.
    </voice>
</speak>

Uso de estilos y roles de habla

De forma predeterminada, las voces neuronales tienen un estilo de habla neutro. Puede ajustar el estilo del habla, el grado del estilo y el rol en el nivel de oración.

Nota:

El servicio de voz admite estilos, grados de estilo y roles para un subconjunto de voces neuronales, como se describe en la documentación de estilos y roles de voz. Para determinar qué estilos y roles admite cada voz, también puede usar la API de enumeración de voces y la aplicación web Creación de contenido de audio.

En la tabla siguiente se describe el uso de los atributos del elemento mstts:express-as:

Atributo Descripción Obligatorio u opcional
style Estilo de habla específico de voz. Puede expresar emociones como alegría, empatía y calma. También puede optimizar la voz para distintos escenarios, como el servicio de atención al cliente, las noticias y el asistente de voz. Si falta el valor de estilo o no es válido, se omite todo el elemento mstts:express-as y el servicio usa la voz neutra predeterminada. Para conocer los estilos de voz neuronal personalizados, consulte el ejemplo de estilo de voz neuronal personalizado. Obligatorio
styledegree La intensidad del estilo de voz. Puede especificar un estilo más seguro o más suave para que la voz sea más expresiva o moderada. El intervalo de valores aceptados es de 0.01 a 2, ambos inclusive. El valor predeterminado es 1, que indica la intensidad de estilo predefinida. La unidad mínima es 0.01, que da lugar a una ligera tendencia hacia el estilo de destino. Un valor de 2 duplica la intensidad de estilo predeterminada. Si falta el grado de estilo o no se admite para la voz, este atributo se omite. Opcional
role El rol del habla. La voz puede imitar una edad y sexo diferentes, pero el nombre de la voz no cambia. Por ejemplo, una voz masculina puede subir el tono y cambiar la entonación para que parezca femenina, pero el nombre de la voz cambia. Si falta el rol o la voz no lo admite, este atributo se omite. Opcionales

En la siguiente tabla se describe cada atributo de style admitido:

Estilo Descripción
style="advertisement_upbeat" Expresa un tono emocionado y con mucha energía para promover un producto o servicio.
style="affectionate" Expresa un tono cálido y afectuoso, agudo y con una energía vocal alta. El hablante está en un estado que atrae la atención de su interlocutor. La personalidad del hablante suele ser simpática por naturaleza.
style="angry" Expresa un tono enfadado y molesto.
style="assistant" Expresa un tono cálido y relajado para los asistentes digitales.
style="calm" Expresa una actitud interesante, recolectada y compuesta al hablar. El tono, la intensidad y la prosodia son más uniformes en comparación con otros tipos de voz.
style="chat" Expresa un tono casual y relajado.
style="cheerful" Expresa un tono positivo y feliz.
style="customerservice" Expresa un tono amistoso y servicial para la asistencia al cliente.
style="depressed" Expresa un tono melancólico y pesimista, con un tono más grave y energía vocal.
style="disgruntled" Expresa desdén y un tono de queja. La voz de esta emoción muestra desagrado y desprecio.
style="documentary-narration" Narra documentales en un estilo relajado, interesado e informativo adecuado para documentales, comentarios expertos y contenido similar.
style="embarrassed" Expresa un tono vacilante e inseguro cuando quien habla se siente incómodo.
style="empathetic" Expresa un sentimiento de cuidado y comprensión.
style="envious" Expresa un tono de admiración cuando desea algo que otra persona tiene.
style="excited" Expresa un tono optimista y esperanzador. Suena como si algo grande estuviera sucediendo y el orador estuviera feliz por ello.
style="fearful" Expresa un tono asustado y nervioso, agudo, con energía vocal alta y más velocidad. El hablante está en un estado de tensión y desasosiego.
style="friendly" Expresa un tono agradable, acogedor y cálido. Suena sincero y cariñoso.
style="gentle" Expresa un tono dulce, educado y agradable, con un tono más grave y energía vocal.
style="hopeful" Expresa un tono cálido y de deseo. Parece que algo bueno le pasará al orador.
style="lyrical" Expresa emociones de manera melódica y sentimental.
style="narration-professional" Exprese un tono objetivo y profesional para la lectura de contenido.
style="narration-relaxed" Expresa un tono relajante y melodioso para la lectura de contenidos.
style="newscast" Expresa un tono formal y profesional para narrar noticias.
style="newscast-casual" Expresa un tono versátil e informal para la difusión de noticias generales.
style="newscast-formal" Expresa un tono formal, seguro y autoritario para la difusión de noticias.
style="poetry-reading" Expresa un tono emocional y rítmico mientras lee un poema.
style="sad" Expresa un tono afligido.
style="serious" Expresa un tono estricto e imponente. A menudo, el hablante suena rígido y mucho menos relajado, con una cadencia firme.
style="shouting" Expresa un tono que suena como si la voz estuviera distante o en otro lugar y haciendo un esfuerzo para que se le oiga claramente.
style="sports_commentary" Expresa un tono relajado e interesado para retransmitir un acontecimiento deportivo.
style="sports_commentary_excited" Expresa un tono intenso y enérgico para transmitir momentos emocionantes en un evento deportivo.
style="whispering" Expresa un tono suave que intenta emitir un sonido tranquilo y apacible.
style="terrified" Expresa un tono asustado, con un ritmo más rápido y una voz más temblorosa. Suena como si el orador estuviera en un estado inestable y frenético.
style="unfriendly" Expresa un tono frío e indiferente.

La tabla siguiente contiene descripciones de cada atributo de role admitido:

Role Descripción
role="Girl" La voz imita una chica.
role="Boy" La voz imita un chico.
role="YoungAdultFemale" La voz imita una mujer adulta joven.
role="YoungAdultMale" La voz imita un hombre adulto joven.
role="OlderAdultFemale" La voz imita a la de una mujer adulta anciana.
role="OlderAdultMale" La voz imita un hombre adulto anciano.
role="SeniorFemale" La voz imita una mujer anciana.
role="SeniorMale" La voz imita un hombre anciano.

Ejemplos mstts express-as

Para información sobre los valores admitidos de los atributos del elemento mstts:express-as, consulte Uso de estilos y roles de habla.

Ejemplo de estilo y grado

El elemento mstts:express-as se usa para expresar emociones como la alegría, la empatía y la calma. También puede optimizar la voz para distintos escenarios, como el servicio de atención al cliente, las noticias y el asistente de voz.

En el siguiente ejemplo de SSML se usa el elemento <mstts:express-as> con un grado de estilo sad de 2.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xmlns:mstts="https://www.w3.org/2001/mstts" xml:lang="zh-CN">
    <voice name="zh-CN-XiaomoNeural">
        <mstts:express-as style="sad" styledegree="2">
            快走吧,路上一定要注意安全,早去早回。
        </mstts:express-as>
    </voice>
</speak>

Ejemplo de rol

Además de ajustar los estilos de habla y el grado del estilo, también puede ajustar el parámetro role para que la voz parezca que es de alguien de otra edad y género. Por ejemplo, una voz masculina puede subir el tono y cambiar la entonación para que parezca femenina, pero el nombre de la voz cambia.

Este fragmento de código SSML muestra cómo se usa el atributo role para cambiar la representación de zh-CN-XiaomoNeural.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xmlns:mstts="https://www.w3.org/2001/mstts" xml:lang="zh-CN">
    <voice name="zh-CN-XiaomoNeural">
        女儿看见父亲走了进来,问道:
        <mstts:express-as role="YoungAdultFemale" style="calm">
            “您来的挺快的,怎么过来的?”
        </mstts:express-as>
        父亲放下手提包,说:
        <mstts:express-as role="OlderAdultMale" style="calm">
            “刚打车过来的,路上还挺顺畅。”
        </mstts:express-as>
    </voice>
</speak>

Ejemplo de estilo de voz neuronal personalizado

Puede entrenar una voz neuronal personalizada para hablar con algunos estilos preestablecidos, como cheerful, sady whispering. También puede entrenar una voz neuronal personalizada para hablar en un estilo personalizado determinado por los datos de entrenamiento. Para usar el estilo de voz neuronal personalizado en SSML, especifique el nombre de estilo que especificó previamente en Speech Studio.

En este ejemplo se usa una voz personalizada llamada my-custom-voice. La voz personalizada habla con el estilo predefinido cheerful y el grado de estilo 2 y, luego, con un estilo personalizado llamado my-custom-style y el grado de estilo de 0.01.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xmlns:mstts="https://www.w3.org/2001/mstts" xml:lang="en-US">
    <voice name="my-custom-voice">
        <mstts:express-as style="cheerful" styledegree="2">
            That'd be just amazing!
        </mstts:express-as>
        <mstts:express-as style="my-custom-style" styledegree="0.01">
            What's next?
        </mstts:express-as>
    </voice>
</speak>

Id. de perfil del hablante

Use el elemento mstts:ttsembedding para especificar la propiedad speakerProfileId de una voz personal. La voz personal es una voz neuronal personalizada que está entrenada en función de su propia voz o de la voz de su cliente. Para obtener más información, consulte Creación de una voz personal.

En el siguiente ejemplo de SSML se usa el elemento <mstts:ttsembedding> con un nombre de voz y un identificador de perfil de hablante.

<speak version='1.0' xmlns='http://www.w3.org/2001/10/synthesis' xmlns:mstts='http://www.w3.org/2001/mstts' xml:lang='en-US'>
    <voice xml:lang='en-US' xml:gender='Male' name='PhoenixV2Neural'> 
    <mstts:ttsembedding speakerProfileId='your speaker profile ID here'> 
    I'm happy to hear that you find me amazing and that I have made your trip planning easier and more fun. 我很高兴听到你觉得我很了不起,我让你的旅行计划更轻松、更有趣。Je suis heureux d'apprendre que vous me trouvez incroyable et que j'ai rendu la planification de votre voyage plus facile et plus amusante.  
    </mstts:ttsembedding> 
    </voice> 
</speak> 

Ajuste de idiomas de habla

De forma predeterminada, las voces multilingües pueden detectar automáticamente el idioma del texto de entrada y hablar en el idioma de la configuración regional predeterminada del texto de entrada sin usar SSML. Si lo desea, puede usar el elemento <lang xml:lang> para ajustar el lenguaje de habla para estas voces para establecer el acento preferido, como en-GB para inglés británico. Puede ajustar el idioma de habla tanto en el nivel de oración como en el nivel de palabra. Para información sobre los idiomas admitidos para voces multilingües, consulte Voces multilingües con el elemento lang y verá una tabla que muestra la sintaxis y las definiciones de atributos de <lang>.

En la tabla siguiente se describe el uso de los atributos del elemento <lang xml:lang>:

Atributo Descripción Obligatorio u opcional
xml:lang El idioma en el que quiere que hable la voz neuronal. Necesario para ajustar el idioma de habla de la voz neuronal. Si usa lang xml:lang, se debe proporcionar la configuración regional.

Nota

El elemento <lang xml:lang> no es compatible con los elementos prosody y break. No se pueden ajustar la pausa y la prosodia como el tono, el contorno, la velocidad o el volumen en este elemento.

Las voces no multilingües no admiten el elemento <lang xml:lang> de manera predeterminada.

Voces multilingües con el elemento lenguage

Use la sección voces multilingües para determinar qué idiomas de habla admite el servicio voz para cada voz neuronal, como se muestra en la tabla de ejemplo siguiente. Si la voz no habla el idioma del texto de entrada, el servicio de Voz no genera audio sintetizado.

Voz Número de idioma detectado automáticamente Idioma detectado automáticamente (configuración regional) Número de todas las configuraciones regionales Todos los idiomas (configuración regional) compatibles con SSML
en-US-AndrewMultilingualNeural1 (masculina)
en-US-AvaMultilingualNeural1 (femenina)
en-US-BrianMultilingualNeural1 (masculina)
en-US-EmmaMultilingualNeural1 (femenina)
77 Afrikáans (af-ZA), albanés (sq-AL), amárico (am-ET), árabe (ar-EG), armenio (hy-AM), azerbaiyano (az-AZ), bahasa indonesio (id-ID), bengalí (bn-BD), vasco (eu-ES), bengalí (bn-IN), bosnio (bs-BA), búlgaro (bg-BG), birmano (my-MM), catalán (ca-ES), chino cantonés (zh-HK), chino mandarín (zh-CN), chino taiwanés (zh-TW), croata (hr-HR), checo (cs-CZ), danés (da-DK), neerlandés (nl-NL), inglés (en-US), estonio (et-EE), filipino (fil-PH), finés (fi-FI), francés (fr-FR), gallego (gl-ES), georgiano (ka-GE), alemán (de-DE), griego (el-GR), hebreo (he-IL), hindi (hi-IN), húngaro (hu-HU), islandés (is-IS), irlandés (ga-IE), italiano (it-IT), japonés (ja-JP), javanés (jv-ID), canarés (kn-IN), kazajo (kk-KZ), jemer (km-KH), coreano (ko-KR), laosiano (lo-LA), letón (lv-LV), lituano (lt-LT), macedonio (mk-MK), malabar (ms-MY), malayo (ml-IN), maltés (mt-MT), mongol (mn-MN), nepalí (ne-NP), bokmål noruego (nb-NO), pastún (ps-AF), persa (fa-IR), polaco (pl-PL), portugués (pt-BR), rumano (ro-RO), ruso (ru-RU), serbio (sr-RS), cingalés (si-LK), eslovaco (sk-SK), esloveno (sl-SI), somalí (so-SO), español (es-ES), sundanés (su-ID), swahili (sw-KE), sueco (sv-SE), tamil (ta-IN), telugu (te-IN), tailandés (th-TH), turco (tr-TR), ucraniano (uk-UA), urdu (ur-PK), uzbeko (uz-UZ), vietnamita (vi-VN), galés (cy-GB), zulú (zu-ZA) 91 Afrikáans (Sudáfrica) (af-ZA), albanés (Albania) (sq-AL), amárico (Etiopía) (am-ET), árabe (Egipto) (ar-EG), árabe (Arabia Saudí) (ar-SA), armenio (Armenia) (hy-AM), azerbaiyano (Azerbaiyán) (az-AZ), vasco (euskera) (eu-ES), bengalí (India) (bn-IN), bosnio (Bosnia y Herzegovina) (bs-BA), búlgaro (Bulgaria) (bg-BG), birmano (Myanmar) (my-MM), catalán (España) (ca-ES), chino (cantonés, tradicional) (zh-HK), chino (mandarín, simplificado) (zh-CN), chino (mandarín taiwanés) (zh-TW), croata (Croacia) (hr-HR), checo (checo) (cs-CZ), danés (Dinamarca) (da-DK), neerlandés (Bélgica) (nl-BE), holandés (Países Bajos) (nl-NL), inglés (Australia) (en-AU), inglés (Canadá) (en-CA) inglés (RAE de Hong Kong) (en-HK), inglés (India) (en-IN), inglés (Irlanda) (en-IE), inglés (Reino Unido) (en-GB), inglés (Estados Unidos) (en-US), estonio (Estonia) (et-EE), filipino (Filipinas) (fil-PH), finés (Finlandia) (fi-FI), francés (Bélgica) (fr-BE), francés (Canadá) (fr-CA), francés (Francia) (fr-FR), francés (Suiza) (fr-CH), gallego (Galicia) (gl-ES), georgiano (Georgia) (ka-GE), alemán (Austria) (de-AT), alemán (Alemania) (de-DE), alemán (Suiza) (de-CH), griego (Grecia) (el-GR), hebreo (Israel) (he-IL), hindi (India) (hi-IN), húngaro (Hungría) (hu-HU), islandés (Islandia) (is-IS), indonesio (Indonesia) (id-ID), irlandés (Irlanda) (ga-IE), italiano (Italia) (it-IT), japonés (Japón) (ja-JP), javanés (Indonesia) (jv-ID), kannada (India) (kn-IN), kazajo (Kazajstán) (kk-KZ), jemer (Camboya) (km-KH), coreano (Corea) (ko-KR), laosiano (Laos) (lo-LA), letón (Letonia) (lv-LV), lituano (Lituania) (lt-LT), macedonio (Macedonia del Norte) (mk-MK), malayo (Malasia) (ms-MY), malayalam (India) (ml-IN), maltés (Malta) (mt-MT), mongol (Mongolia) (mn-MN), nepalí (Nepal) (ne-NP), noruego (Bokmål, Noruega) (nb-NO), pastún (Afganistán) (ps-AF), persa (Irán) (fa-IR), polaco (Polonia) (pl-PL), portugués (Brasil) (pt-BR), portugués (Portugal) (pt-PT) rumano (Rumanía) (ro-RO), ruso (Rusia) (ru-RU), serbio (cirílico, Serbia) (sr-RS), cingalés (Sri Lanka) (si-LK), eslovaco (Eslovaquia) (sk-SK), esloveno (Eslovenia) (sl-SI), somalí (Somalia) (so-SO), español (México) (es-MX), español (España) (es-ES), sundanés (Indonesia) (su-ID), swahili (Kenia) (sw-KE), sueco (Suecia) (sv-SE), tamil (India) (ta-IN), telugu (India) (te-IN), tailandés (Tailandia) (th-TH), turco (Turquía) (tr-TR), ucraniano (Ucrania) (uk-UA), urdu (Pakistán) (ur-PK), uzbeko (Uzbekistán) (uz-UZ), vietnamita (Vietnam) (vi-VN), galés (Reino Unido) (cy-GB), zulú (Sudáfrica) (zu-ZA)

1 son voces multilingües neuronales en Voz de Azure AI. Todas las voces multilingües pueden hablar en el idioma en la configuración regional predeterminada del texto de entrada sin mediante SSML. Sin embargo, todavía puede usar el elemento <lang xml:lang> para ajustar el énfasis de habla de cada idioma para establecer acentos preferidos como acento británico (en-GB) para inglés. La configuración regional principal de cada voz se indica mediante el prefijo en su nombre, como la voz en-US-AndrewMultilingualNeural, su configuración regional principal es en-US.

Nota:

Las voces multilingües no admiten completamente determinados elementos de SSML, como break, emphasis, silence y sub.

Ejemplos de idioma

Para información sobre los valores admitidos de los atributos del elemento lang, consulte Ajuste del lenguaje de habla.

Debe especificar en-US como idioma predeterminado en el elemento speak, independientemente de si el idioma se ajusta o no en otro lugar. En este ejemplo, el idioma principal de en-US-AvaMultilingualNeural es en-US.

Este fragmento de código SSML muestra cómo usar <lang xml:lang> para hablar de-DE con la voz neuronal en-US-AvaMultilingualNeural.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xmlns:mstts="https://www.w3.org/2001/mstts" xml:lang="en-US">
    <voice name="en-US-AvaMultilingualNeural">
        <lang xml:lang="de-DE">
            Wir freuen uns auf die Zusammenarbeit mit Ihnen!
        </lang>
    </voice>
</speak>

En el elemento speak, puede especificar varios idiomas, incluida la salida de texto a voz en-US. Para cada idioma ajustado, el texto debe coincidir con el idioma y ajustarse en un elemento voice. Este fragmento de código SSML muestra cómo usar <lang xml:lang> para cambiar los idiomas a es-MX, en-US y fr-FR.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xmlns:mstts="https://www.w3.org/2001/mstts" xml:lang="en-US">
    <voice name="en-US-AvaMultilingualNeural">
        <lang xml:lang="es-MX">
            ¡Esperamos trabajar con usted!
        </lang>
        <lang xml:lang="en-US">
           We look forward to working with you!
        </lang>
        <lang xml:lang="fr-FR">
            Nous avons hâte de travailler avec vous!
        </lang>
    </voice>
</speak>

Ajuste de la prosodia

Puede usar el elemento prosody para especificar los cambios en el tono, la curva melódica, el rango, la velocidad y el volumen de la salida de texto a voz. El elemento prosody puede contener texto y los siguientes elementos: audio, break, p, phoneme, prosody, say-as, sub y s.

Dado que los valores de los atributos prosódicos pueden variar en un amplio rango, el reconocedor de voz interpreta los valores asignados como una sugerencia de cuáles deben ser los valores prosódicos reales de la voz seleccionada. La conversión de texto a voz limita o sustituye los valores que no son compatibles. Ejemplos de valores no compatibles son un tono de 1 MHz o un volumen de 120.

En la tabla siguiente se describe el uso de los atributos del elemento prosody:

Atributo Descripción Obligatorio u opcional
contour La curva melódica representa los cambios en el tono. Estos cambios se representan como una matriz de objetivos en posiciones de tiempo específicas en la salida de voz. Los conjuntos de pares de parámetros definen cada destino. Por ejemplo:

<prosody contour="(0%,+20Hz) (10%,-2st) (40%,+10Hz)">

El primer valor de cada conjunto de parámetros especifica la ubicación del cambio de tono como porcentaje de la duración del texto. El segundo valor especifica la cantidad que se va subir o bajar el tono, mediante un valor relativo o un valor de enumeración para el tono (consulte pitch). El contorno de tono no funciona en palabras simples y frases cortas. Se recomienda ajustar el contorno de tono en frases completas o frases largas.
Opcionales
pitch Indica el tono de la línea de referencia del texto. Los cambios de tono se pueden aplicar en el nivel de oración. Los cambios de tono deben estar comprendidos entre la 0,5 y 1,5 veces el audio original. Puede expresar el tono como:
  • Un valor absoluto: expresado como un número seguido de "Hz" (Hercios). Por ejemplo, <prosody pitch="600Hz">some text</prosody>.
  • Valor relativo:
    • Como número relativo: expresado como un número precedido por "+" o "-" y seguido por "Hz" o "st", que especifica una cantidad para cambiar el tono. Por ejemplo: <prosody pitch="+80Hz">some text</prosody> o <prosody pitch="-2st">some text</prosody>. La "st" indica que la unidad de cambio es un semitono, que es la mitad de un tono (medio paso) en la escala diatónica estándar.
    • Como porcentaje: expresado como un número precedido por "+" (opcionalmente) o "-" y seguido de "%", que indica el cambio relativo. Por ejemplo: <prosody pitch="50%">some text</prosody> o <prosody pitch="-50%">some text</prosody>.
  • Un valor constante:
    • x-low (equivalente a 0,55, -45 %)
    • low (equivalente a 0,8, -20 %)
    • medium (equivalente a 1, valor predeterminado)
    • high (equivalente a 1,2, -20 %)
    • x-high (equivalente a 1,45, -45 %)
Opcionales
range Un valor que representa el rango del tono para el texto. Puede expresar el elemento range mediante los mismos valores absolutos, valores relativos o valores de enumeración usados para describir el elemento pitch. Opcional
rate Indica la velocidad de habla del texto. La velocidad de habla se puede aplicar tanto en el nivel de palabra como en el de frase. Los cambios de velocidad deben estar comprendidos entre 0.5 y 2 veces el audio original. Puede expresar rate como:
  • Valor relativo:
    • Como número relativo: expresado como un número que actúa como multiplicador del valor predeterminado. Por ejemplo, un valor de 1 no da como resultado ningún cambio en la velocidad original. Un valor de 0.5 da como resultado la mitad de la velocidad original. Un valor de 2 da como resultado el doble de la velocidad original.
    • Como porcentaje: expresado como un número precedido por "+" (opcionalmente) o "-" y seguido de "%", que indica el cambio relativo. Por ejemplo: <prosody rate="50%">some text</prosody> o <prosody rate="-50%">some text</prosody>.
  • Un valor constante:
    • x-slow (equivalente a 0,5, -50 %)
    • slow (equivalente a 0,64, -46 %)
    • medium (equivalente a 1, valor predeterminado)
    • fast (equivalente a 1,55, -55 %)
    • x-fast (equivalente a 2, -100 %)
Opcionales
volume Indica el nivel de volumen de la voz. Los cambios de volumen se pueden aplicar en el nivel de oración. Puede expresar el volumen como:
  • Un valor absoluto, expresado como un número en el rango de 0.0 a 100.0, de más silencioso a más alto, como 75. El valor predeterminado es 100.0.
  • Valor relativo:
    • Como número relativo: expresado como un número precedido por "+" o "-" que especifica una cantidad para cambiar el volumen. Algunos ejemplos son +10 o -5.5.
    • Como porcentaje: expresado como un número precedido por "+" (opcionalmente) o "-" y seguido de "%", que indica el cambio relativo. Por ejemplo: <prosody volume="50%">some text</prosody> o <prosody volume="+3%">some text</prosody>.
  • Un valor constante:
    • silent (equivalente a 0, -100 %)
    • x-soft (equivalente a 0,2, -100 %)
    • soft (equivalente a 0,4, -100 %)
    • medium (equivalente a 0,6, -100 %)
    • loud (equivalente a 0,8, -100 %)
    • x-loud (equivalente a 1, valor predeterminado)
Opcionales

Ejemplos de prosodia

Para información sobre los valores admitidos de los atributos del elemento prosody, consulte Ajuste de la prosodia.

Ejemplo de cambio de la velocidad de habla

Este fragmento de código SSML muestra cómo se usa el atributo rate para aumentar un 30 % la velocidad de habla a partir de la velocidad predeterminada.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-AvaMultilingualNeural">
        <prosody rate="+30.00%">
            Enjoy using text to speech.
        </prosody>
    </voice>
</speak>

Ejemplo de cambio de volumen

Este fragmento de código SSML muestra cómo se usa el atributo volume para aumentar un 20 % el volumen a partir del volumen predeterminado.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-AvaMultilingualNeural">
        <prosody volume="+20.00%">
            Enjoy using text to speech.
        </prosody>
    </voice>
</speak>

Ejemplo de cambio de tono

Este fragmento de código SSML muestra cómo se usa el atributo pitch para que la voz hable en un tono alto.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-AvaMultilingualNeural">
        Welcome to <prosody pitch="high">Enjoy using text to speech.</prosody>
    </voice>
</speak>

Ejemplo de cambio de curva melódica

Este fragmento de código SSML muestra cómo se usa el atributo contour para cambiar el contorno.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-AvaMultilingualNeural">
        <prosody contour="(60%,-60%) (100%,+80%)" >
            Were you the only person in the room?
        </prosody>
    </voice>
</speak>

Ajuste del énfasis

Puede usar el elemento opcional emphasis para agregar o quitar el acento a nivel de palabra del texto. Este elemento solo puede contener texto y los siguientes elementos: audio, break, emphasis, lang, phoneme, prosody, say-as, sub y voice.

Nota

El ajuste del énfasis de nivel de palabra solo está disponible para estas voces neuronales: en-US-GuyNeural, en-US-DavisNeuraly en-US-JaneNeural.

Con aquellas palabras que tienen un tono bajo y una duración corta, es posible que el tono no se eleve lo suficiente para ser detectado.

En la tabla siguiente se describen los atributos del elemento emphasis:

Atributo Descripción Obligatorio u opcional
level Indica la intensidad del énfasis que se va a aplicar:
  • reduced
  • none
  • moderate
  • strong

Cuando no se especifica el atributo level, el nivel predeterminado es moderate. Para más información sobre cada atributo, consulte el elemento de énfasis.
Opcionales

Ejemplos de énfasis

Para información sobre los valores admitidos de los atributos del elemento emphasis, consulte Ajuste del énfasis.

Este fragmento de código SSML muestra cómo se usa el elemento emphasis para agregar énfasis de nivel moderado a la palabra "meetings".

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xmlns:mstts="https://www.w3.org/2001/mstts" xml:lang="en-US">
    <voice name="en-US-AndrewMultilingualNeural">
    I can help you join your <emphasis level="moderate">meetings</emphasis> fast.
    </voice>
</speak>

Adición del audio grabado

El elemento audio es opcional. Puede usarlo para insertar audio grabado previamente en un documento SSML. El cuerpo del elemento audio puede contener texto sin formato o marcado SSML hablado si el archivo de audio no está disponible o no se puede reproducir. El elemento audio también puede contener texto y los siguientes elementos: audio, break, p, s, phoneme, prosody, say-as y sub.

Cualquier audio incluido en el documento SSML debe cumplir estos requisitos:

  • El archivo de audio debe ser un archivo *.mp3, *.wav, *.opus, *.ogg, *.flac o *.wma.
  • El tiempo total combinado de todos los archivos de texto y audio de una sola respuesta no puede superar los 600 segundos.
  • El audio no debe contener información específica del cliente ni ningún tipo de información confidencial.

Nota

Long Audio API no admite el elemento audio. Para texto a voz de formato largo, use la API de síntesis por lotes en su lugar.

En la tabla siguiente se describe el uso de los atributos del elemento audio:

Atributo Descripción Obligatorio u opcional
src Ubicación del URI del archivo de audio. El audio debe estar hospedado en un punto de conexión HTTPS al que se pueda acceder desde Internet. Se requiere HTTPS. El dominio que hospeda el archivo debe presentar un certificado TLS/SSL válido y de confianza. Con el fin de minimizar la latencia, debe colocar el archivo de audio en Blob Storage en la misma región de Azure que el punto de conexión de texto a voz. Obligatorio

Ejemplos de audio

Para información sobre los valores admitidos de los atributos del elemento audio, consulte Agregar audio grabado.

Este fragmento de código SSML muestra cómo se usa el atributo src para insertar audio de dos archivos .wav.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-AvaMultilingualNeural">
        <p>
            <audio src="https://contoso.com/opinionprompt.wav"/>
            Thanks for offering your opinion. Please begin speaking after the beep.
            <audio src="https://contoso.com/beep.wav">
                Could not play the beep, please voice your opinion now.
            </audio>
        </p>
    </voice>
</speak>

Ajuste de la duración del audio

Use el elemento mstts:audioduration para establecer la duración del audio de salida. Use este elemento para ayudar a sincronizar el tiempo de finalización de la salida de audio. La duración del audio se puede reducir o aumentar entre 0.5 y 2 veces la velocidad del audio original. El audio original es el audio sin ninguna otra configuración de velocidad. La velocidad del habla se ralentiza o acelera según corresponda en función del valor establecido.

La configuración de la duración del audio se aplica a todo el texto de entrada dentro del elemento voice que lo contiene. Para restablecer o cambiar de nuevo la configuración de la duración del audio, debe usar un nuevo elemento voice con la misma voz o una diferente.

En la tabla siguiente se describe el uso de los atributos del elemento mstts:audioduration:

Atributo Descripción Obligatorio u opcional
value La duración solicitada del audio de salida en segundos, (como 2s) o en milisegundos (como 2000ms).

El valor máximo de la duración del audio de salida es de 300 segundos. Este valor debe estar comprendido entre 0.5 y 2 veces el audio original sin ninguna otra configuración de velocidad. Por ejemplo, si la duración solicitada del audio es 30s, el audio original debe estar entre 15 y 60 segundos. Si establece un valor fuera de estos límites, la duración se establece según el múltiplo mínimo o máximo respectivo. Para el audio de salida de más de 300 segundos, primero genere el audio original sin ninguna otra configuración de velocidad y, a continuación, calcule la velocidad a ajustar con la velocidad de prosodia para lograr la duración deseada.
Obligatorio

Ejemplos de duración de audio mstts

Para información sobre los valores admitidos de los atributos del elemento mstts:audioduration, consulte Ajuste de la duración del audio.

En este ejemplo, el audio original es de aproximadamente 15 segundos. El elemento mstts:audioduration se usa para establecer la duración del audio en 20 segundos o 20s.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xmlns:mstts="http://www.w3.org/2001/mstts" xml:lang="en-US">
<voice name="en-US-AvaMultilingualNeural">
<mstts:audioduration value="20s"/>
If we're home schooling, the best we can do is roll with what each day brings and try to have fun along the way.
A good place to start is by trying out the slew of educational apps that are helping children stay happy and smash their schooling at the same time.
</voice>
</speak>

Adición de audio de fondo

Puede usar el elemento mstts:backgroundaudio para agregar audio de fondo a los documentos SSML o mezclar un archivo de audio con la conversión de texto a voz. Con mstts:backgroundaudio, puede reproducir en bucle un archivo de audio de fondo, hacer que aparezca gradualmente al principio de la conversión de texto a voz y quitarlo gradualmente al final de la conversión de texto a voz.

Si el audio de fondo proporcionado dura menos que la conversión de texto a voz o el fundido de salida, se reproduce en bucle. Si es más largo que el texto para la voz, se detiene cuando finaliza el fundido.

Solo se permite un archivo de audio de fondo por cada documento SSML. Puede intercalar etiquetas audio dentro del elemento voice para agregar más audio al documento SSML.

Nota:

El elemento mstts:backgroundaudio debe colocarse delante de todos los elementos voice. Si se especifica, debe ser el primer elemento secundario del elemento speak.

Long Audio API no admite el elemento mstts:backgroundaudio. Para texto a voz de formato largo, use la API de síntesis por lotes (versión preliminar) en su lugar.

En la tabla siguiente se describe el uso de los atributos del elemento mstts:backgroundaudio:

Atributo Descripción Obligatorio u opcional
src Ubicación del URI del archivo de audio en segundo plano. Obligatorio
volume El volumen del archivo de audio de fondo. Valores aceptados: de 0 a 100, ambos inclusive. El valor predeterminado es 1. Opcional
fadein La duración de la intensificación de entrada del audio de fondo en milisegundos. El valor predeterminado es 0, que equivale a ningún fundido de entrada. Valores aceptados: de 0 a 10000, ambos inclusive. Opcional
fadeout Especifica la duración del fundido de salida del audio de fondo en milisegundos. El valor predeterminado es 0, que equivale a que no hay desvanecimiento. Valores aceptados: de 0 a 10000, ambos inclusive. Opcional

Ejemplos de mstss backgroundaudio

Para información sobre los valores admitidos de los atributos del elemento mstts:backgroundaudi, consulte Agregar audio de fondo.

<speak version="1.0" xml:lang="en-US" xmlns:mstts="http://www.w3.org/2001/mstts">
    <mstts:backgroundaudio src="https://contoso.com/sample.wav" volume="0.7" fadein="3000" fadeout="4000"/>
    <voice name="en-US-AvaMultilingualNeural">
        The text provided in this document will be spoken over the background audio.
    </voice>
</speak>

Pasos siguientes