Cómo convertir texto en voz con Azure AI Speech
La síntesis de voz (text-to-speech) convierte texto escrito en audio con sonido natural y resulta útil para crear locuciones de vídeos, hacer las aplicaciones más accesibles o dar una respuesta hablada en un asistente virtual. Con Azure AI Speech y unas pocas líneas de Python puedes convertir texto en voz de alta calidad en decenas de idiomas sin entrenar ningún modelo.
Requisitos previos
- Una suscripción de Azure con un recurso Speech creado — anota la clave y la región (por ejemplo,
westeurope). - Python 3.8 o superior instalado en tu equipo.
- Conocimientos básicos de terminal y de Python.
- Altavoces o auriculares para escuchar el resultado.
Paso 1: Instalar el SDK de Azure AI Speech
Para convertir texto en voz usarás la biblioteca oficial de Microsoft. Abre el terminal e instala el paquete con pip:
pip install azure-cognitiveservices-speechEste paquete incluye todo lo necesario para comunicarte con el servicio. Si usas un entorno virtual (recomendado), actívalo antes de ejecutar el comando para mantener ordenadas las dependencias.
Paso 2: Configurar la clave y la región
El servicio te identifica mediante la clave y la región de tu recurso Speech. Encuentra ambas en el portal de Azure, en la página del recurso, en la sección Keys and Endpoint. Para no dejar secretos escritos en el código, guárdalos en variables de entorno y léelos así:
import os
import azure.cognitiveservices.speech as speechsdk
speech_key = os.environ["SPEECH_KEY"]
service_region = os.environ["SPEECH_REGION"]
speech_config = speechsdk.SpeechConfig(subscription=speech_key, region=service_region)El objeto speech_config guarda la configuración que reutilizarás en los pasos siguientes.
Paso 3: Elegir la voz y el idioma
Azure ofrece voces neuronales muy realistas en muchos idiomas. Para portugués de Portugal puedes usar pt-PT-RaquelNeural; para portugués de Brasil, pt-BR-FranciscaNeural. Solo tienes que indicar el nombre de la voz en la configuración:
speech_config.speech_synthesis_voice_name = "pt-PT-RaquelNeural"Si no defines ninguna voz, el servicio usa una predeterminada. Cambiar de voz es tan sencillo como modificar este nombre, así que merece la pena probar varias hasta dar con la que mejor suene para tu caso.
Paso 4: Generar el audio y guardarlo en un archivo
Ahora conectarás la salida de audio a un archivo WAV y pedirás la síntesis del texto. El método speak_text_async devuelve un objeto de resultado cuando termina:
audio_config = speechsdk.audio.AudioOutputConfig(filename="saida.wav")
synthesizer = speechsdk.SpeechSynthesizer(
speech_config=speech_config,
audio_config=audio_config)
texto = "Olá! Este áudio foi criado com o Azure AI Speech."
result = synthesizer.speak_text_async(texto).get()Si prefieres escuchar el sonido directamente por los altavoces en lugar de guardar un archivo, sustituye la línea de audio_config por speechsdk.audio.AudioOutputConfig(use_default_speaker=True).
Paso 5: Comprobar el estado y gestionar errores
Es una buena práctica verificar que la síntesis terminó correctamente y, si falla, mostrar el motivo. Esto ahorra mucho tiempo al diagnosticar problemas de clave o de región:
if result.reason == speechsdk.ResultReason.SynthesizingAudioCompleted:
print("Áudio gravado com sucesso em saida.wav")
elif result.reason == speechsdk.ResultReason.Canceled:
details = result.cancellation_details
print("Síntese cancelada:", details.reason)
if details.reason == speechsdk.CancellationReason.Error:
print("Detalhes do erro:", details.error_details)Los errores más habituales son una clave no válida o una región incorrecta; el mensaje en error_details suele indicar exactamente qué corregir.
Comprobar el resultado
Ejecuta el script y busca el archivo saida.wav en la misma carpeta. Ábrelo en un reproductor de audio y deberías oír la frase leída con voz natural. Si escuchas la frase completa y sin cortes, la integración funciona. Si el archivo está vacío o no aparece, vuelve al Paso 5 y lee el mensaje de error — casi siempre es la clave o la región.
Conclusión
En cinco pasos has conectado Python con Azure AI Speech y has convertido texto en audio natural. A partir de aquí, el siguiente salto es usar SSML para controlar pausas, entonación y velocidad del habla, probar voces de otros idiomas o integrar esta función en una API o aplicación web. ¿Cuál será la primera frase a la que darás voz en tu proyecto?