Síntesis de voz

Completado

Sugerencia

Consulte la pestaña Texto e imágenes para obtener más detalles.

La síntesis de voz, a menudo denominada texto a voz (TTS), se preocupa por la vocalización de datos, normalmente mediante la conversión de texto a voz. La síntesis de voz normalmente genera voz audible a partir de un origen basado en texto.

Normalmente, una solución de texto a voz requiere la siguiente información:

  • Texto que será hablado
  • La voz que se va a usar para vocalizar el habla

Para sintetizar la voz, el sistema suele tokenizar el texto para dividirlo en palabras individuales y asigna sonidos fonéticos a cada palabra. A continuación, divide la transcripción fonética en unidades prosódicas (como frases, cláusulas o oraciones). El sistema crea phonemes a partir de las unidades prosódicas. A continuación, estos phonemes se sintetizan como audio y se pueden asignar una voz determinada, velocidad de habla, tono y volumen.

Puede usar la salida de la síntesis de voz para muchos fines, como:

  • Generación de respuestas habladas a la entrada del usuario.
  • Leer mensajes en voz alta.
  • Anuncios de difusión.

Voz de Azure: texto a voz

Azure Speech incluye una API de texto a voz que se puede explorar en el portal de Microsoft Foundry.

La API de texto a voz permite convertir la entrada de texto a voz audible, que se puede reproducir directamente a través de un altavoz del equipo o escribir en un archivo de audio. El servicio incluye varias voces predefinidas compatibles con varios lenguajes y pronunciación regional, incluidas las voces neuronales que usan redes neuronales. Las voces neuronales pueden superar las limitaciones comunes en la síntesis de voz, como problemas con la entonación, lo que da lugar a una voz de sonido más natural. También puede desarrollar voces personalizadas y usarlas con la API de texto a voz.

En el nuevo portal de Microsoft Foundry, podemos explorar las funcionalidades de conversión de texto a voz de Azure en el área de juegos de Foundry. En el área de juegos de Foundry de Azure Speech - Texto a voz, puede elegir una voz sintética de la selección disponible. También puede ajustar algunos parámetros para controlar la entrega del audio, como la velocidad y el tono. La salida de audio se genera a partir del texto sintetizado.

Captura de pantalla de texto a voz en el área de juegos de Foundry.

Uso del SDK de texto a voz de Azure

Puede usar Azure Speech para desarrollar una aplicación que use la síntesis de voz. El SDK de texto a voz de Azure permite a las aplicaciones convertir texto escrito en audio hablado de sonido natural.

El SDK permite a la aplicación:

  • Envía texto a Azure Speech
  • Generación de audio hablado mediante voces neuronales
  • Reproducir o guardar el audio en altavoces o en un archivo de audio

El SDK controla la autenticación, la comunicación de red, el formato de audio y la reproducción para que pueda centrarse en la experiencia de la aplicación.

Desarrollo de una aplicación

El SDK de texto a voz se usa normalmente en:

  • Aplicaciones cliente para convertir texto a voz y reproducirlo inmediatamente (por ejemplo, una aplicación móvil o de escritorio)
  • Servicios back-end: para generar archivos de audio para reproducirlos más adelante

Después de instalar el SDK de Python, puede crear y ejecutar el programa. Tenga en cuenta el siguiente código de Python. Al ejecutarlo:

  1. La aplicación inicializa el SDK de Voz: proporciona un punto de conexión y autenticación (clave o id. de Microsoft Entra).
  2. Se proporciona texto
  3. Texto se envía a Azure Speech: el SDK gestiona la solicitud y el formato.
  4. La síntesis de voz se ejecuta en la nube: los modelos neuronales generan audio
  5. Se devuelve audio: la aplicación reproduce, transmite o guarda temporalmente el audio.
import os
import azure.cognitiveservices.speech as speechsdk

# This example requires environment variables named "FOUNDRY_KEY" and "ENDPOINT"
speech_config = speechsdk.SpeechConfig(subscription=os.environ.get('FOUNDRY_KEY'), endpoint=os.environ.get('ENDPOINT'))
audio_config = speechsdk.audio.AudioOutputConfig(use_default_speaker=True)

# The neural multilingual voice can speak different languages based on the input text.
speech_config.speech_synthesis_voice_name='en-US-Ava:DragonHDLatestNeural'

speech_synthesizer = speechsdk.SpeechSynthesizer(speech_config=speech_config, audio_config=audio_config)

# Get text from the console and synthesize to the default speaker.
print("Enter some text that you want to speak >")
text = input()

speech_synthesis_result = speech_synthesizer.speak_text_async(text).get()

if speech_synthesis_result.reason == speechsdk.ResultReason.SynthesizingAudioCompleted:
    print("Speech synthesized for text [{}]".format(text))
elif speech_synthesis_result.reason == speechsdk.ResultReason.Canceled:
    cancellation_details = speech_synthesis_result.cancellation_details
    print("Speech synthesis canceled: {}".format(cancellation_details.reason))
    if cancellation_details.reason == speechsdk.CancellationReason.Error:
        if cancellation_details.error_details:
            print("Error details: {}".format(cancellation_details.error_details))
            print("Did you set the speech resource key and endpoint values?")

Ejemplo de aplicación cliente

Por ejemplo, supongamos que crea una aplicación que vocaliza mensajes de texto. En el editor de código, tiene un archivo de texto y un archivo de Python que contiene código de aplicación.

Captura de pantalla del archivo de texto en Visual Studio Code.

En primer lugar, conéctese al punto de conexión de Azure Speech. A continuación, cree un SpeechSynthesizer objeto . A continuación, la aplicación procesa el archivo de texto que contiene el mensaje y usa el SpeechSynthesizer objeto para generar el audio hablado.

Captura de pantalla del código de Python de texto a voz.

Al ejecutar la aplicación, tomará el texto y devolverá una salida de audio del mensaje.

Captura de pantalla de los resultados de un script de Python de texto a voz.

A continuación, aprenda a incorporar funcionalidades de voz a voz en una aplicación con Azure Speech - Voice Live.