Uso de Lenguaje de marcado de síntesis de voz
Aunque el SDK de Voz de Azure permite enviar texto sin formato para sintetizarse en voz, el servicio también admite una sintaxis basada en XML para describir las características de la voz que desea generar. Esta sintaxis del lenguaje de marcado de síntesis de voz (SSML) ofrece un mayor control sobre cómo suena la salida hablada, lo que le permite:
- Especifique un estilo de habla, como "excitado" o "alegre" al usar una voz neuronal.
- Insertar pausas o silencios.
- Especificar fonemas (pronunciaciones fonéticas), por ejemplo, para pronunciar el texto "SQL" como "sequel".
- Ajuste la prosodia de la voz (afectando la altura, timbre y velocidad de habla).
- Use reglas comunes de "say-as", por ejemplo, para especificar que una cadena determinada debe expresarse como una fecha, hora, número de teléfono u otro formulario.
- Inserte audio o voz grabada, por ejemplo, para incluir un mensaje grabado estándar o simular ruido de fondo.
Por ejemplo, considere el siguiente SSML:
<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-AriaNeural">
<mstts:express-as style="cheerful">
I say tomato
</mstts:express-as>
</voice>
<voice name="en-US-GuyNeural">
I say <phoneme alphabet="sapi" ph="t ao m ae t ow"> tomato </phoneme>.
<break strength="weak"/>Lets call the whole thing off!
</voice>
</speak>
Este SSML especifica un diálogo hablado entre dos voces neuronales diferentes, como esta:
- Ariana (alegremente): "Digo tomate:
- Chico: "Digo tomate (pronunciado to-ma-te) ... ¡Mejor olvidémoslo!"
Para enviar una descripción de SSML al servicio voz, puede usar un método adecuado de un objeto SpeechSynthesizer , de la siguiente manera:
speech_synthesizer.speak_ssml('<speak>...');
Para más información sobre SSML, consulte la documentación del SDK de Voz de Azure.