Conversión de Texto a Voz con Azure Cognitive Services

Clase 11 de 27Curso de Azure Cognitive Services

Resumen

¿Cómo convertir texto en voz usando Azure Cognitive Services?

El mundo del desarrollo tecnológico está lleno de sorpresas y hoy nos sumergimos en el increíble ámbito de la conversión de texto a voz mediante Azure Cognitive Services. Este proceso te permite generar audios de salida en tus bocinas o crear archivos de audio con una voz sintetizada, ofreciendo la posibilidad de enriquecer aplicaciones con características accesibles y avanzadas.

¿Qué necesitas para empezar?

Para empezar con la implementación, primero necesitas crear un servicio cognitivo de tipo speech en Azure. A continuación, detallamos los pasos iniciales:

  1. Crea un servicio de tipo speech:

    • Inicia sesión en el portal de Azure.
    • Selecciona Create a Resource y busca el servicio Speech.
    • Llena las opciones requeridas como nombre, ubicación (se recomienda WestUS para mejor latencia), tipo de tarifa y grupo de recursos.
  2. Configura el proyecto en Visual Studio:

    • Crea un nuevo proyecto de aplicación de consola en Visual Studio.
    • Instala el paquete NuGet Microsoft.CognitiveServices.Speech para poder utilizar el servicio de texto a voz.

¿Cómo configurar y utilizar el servicio en tu proyecto?

El proceso de configuración y uso del servicio requiere de ciertos pasos técnicos en tu proyecto de Visual Studio:

  1. Adicional los usings necesarios:

    Agrega los siguientes using en tu clase Program.cs para poder utilizar el servicio de speech y trabajar con el sistema de archivos de Windows.

    using Microsoft.CognitiveServices.Speech;
    
  2. Configuración de la llave de suscripción y región:

    Copia la llave de suscripción y la región desde el portal de Azure para configurarlos en tu proyecto.

    string subscriptionKey = "tu_llave_de_suscripción";
    string region = "WestUS";
    
  3. Crear métodos para sintetizar voz:

    Los métodos deben ser creados tanto para sintetizar directamente al speaker como para generar un archivo de audio:

    private async Task SynthesizeToSpeakerAsync()
    {
        var config = SpeechConfig.FromSubscription(subscriptionKey, region);
        using var synthesizer = new SpeechSynthesizer(config);
        await synthesizer.SpeakTextAsync("Hello World");
    }
    
    private async Task SynthesizeToFileAsync()
    {
        var config = SpeechConfig.FromSubscription(subscriptionKey, region);
        using var synthesizer = new SpeechSynthesizer(config, null);
        var result = await synthesizer.SpeakTextAsync("Your text here");
        if (result.Reason == ResultReason.SynthesizingAudioCompleted)
        {
            File.WriteAllBytes("outputfile.wav", result.AudioData);
        }
    }
    

¿Cómo funciona el uso de archivos XML para especificar el sintetizador?

Los archivos XML son esenciales para definir las características del sintetizador:

  • Crea un archivo XML (SSML): Define el contenido y la voz en el que debería sintetizarse.

    <speak version="1.0" xml:lang="en-US">
        <voice name="en-US-JennyNeural">Your text here</voice>
    </speak>
    
  • Configura el archivo en el proyecto: Asegúrate de que el archivo se copie correctamente al directorio de salida.

    <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    

Recomendaciones para implementar el servicio

Este tipo de tecnologías puede enriquecer cualquier proyecto, ofreciendo funcionalidades para mejorar la accesibilidad y la experiencia del usuario. Considera implementar estos servicios en:

  • Aplicaciones móviles.
  • Asistentes virtuales.
  • Herramientas educativas inclusive para personas con discapacidades visuales.

Te invitamos a investigar y probar diferentes configuraciones. El conocimiento aplicado es la clave para avanzar en el fascinante mundo de la inteligencia artificial. ¡Mucho éxito en tu aprendizaje continuo!