Convertir audio a texto en Visual Basic [SOLUCIONADO]

Transformación de Grabaciones de Voz a Texto Usando VB.NET

Herramientas Necesarias para el Proceso de Transcripción de Audio

Antes de sumergirse en el código para la transcripción de audio en Visual Basic, es crucial conocer las herramientas que se utilizarán. Microsoft ofrece Speech SDK, un conjunto de librerías para múltiples plataformas y lenguajes que facilita la conversión de voz a texto. La plataforma Microsoft Azure cuenta con servicios cognitivos, entre ellos, el Servicio de Voz, que proporciona las herramientas para tal fin.

Visual Basic .NET (VB.NET) es el lenguaje que se utilizará aquí para explicar cómo obtener texto a partir de archivos de audio. La tarea involucra cargar un archivo de sonido en la aplicación, inicializar el Servicio de Voz de Azure y luego manejar la respuesta en un formato utilizable. Nuestro enfoque estará en aplicaciones de escritorio, pero el SDK también permite trabajar en aplicaciones web.

Creación de una Aplicación de Escritorio para la Transcripción de Audio

Para comenzar con la creación de una aplicación en Visual Basic que maneje la transcripción de archivos de sonido, se debe tener configurado el entorno de desarrollo con Visual Studio y las suscripciones y credenciales apropiadas de Azure. A continuación, un paso a paso sencillo para integrar las herramientas necesarias.

  1. Instalar Visual Studio, si aún no está instalado, con el soporte para desarrollo de aplicaciones de escritorio en VB.NET.
  2. Crear una cuenta en Microsoft Azure y configurar un recurso de Servicio de Voz.
  3. Instalar el Speech SDK a través del administrador de paquetes NuGet en Visual Studio.
  4. Obtener las credenciales de Azure (clave de suscripción y región) para autenticar las peticiones al servicio de voz.

Con el entorno listo, es hora de poner manos a la obra con el código requerido para que nuestra aplicación pueda convertir las grabaciones de voz en contenido textual.

Código en VB.NET para la Transcripción de Audio

Lo primero es establecer una referencia a las librerías de Speech SDK. Esta acción se lleva a cabo importando los espacios de nombres adecuados en la parte superior del código fuente.


Imports Microsoft.CognitiveServices.Speech
Imports Microsoft.CognitiveServices.Speech.Audio

Luego, en la clase principal, se declara un método asincrónico que manejará la operación de transcribir el audio. Asegúrate de reemplazar “TuClaveDeAzure” y “TuRegionDeAzure” con tus propios valores de suscripción.


Public Class AudioTranscriptor
    Public Shared Async Function TranscribeAudioAsync(pathToFile As String) As Task(Of String)
        Dim config As SpeechConfig = SpeechConfig.FromSubscription("TuClaveDeAzure", "TuRegionDeAzure")
        Using audioInput As AudioConfig = AudioConfig.FromWavFileInput(pathToFile)
            Using recognizer As New SpeechRecognizer(config, audioInput)
                Dim result As SpeechRecognitionResult = Await recognizer.RecognizeOnceAsync()
                If result.Reason = ResultReason.RecognizedSpeech Then
                    Return result.Text
                ElseIf result.Reason = ResultReason.NoMatch Then
                    Throw New InvalidOperationException("No speech could be recognized.")
                Else
                    Throw New InvalidOperationException($"Error recognizing speech: {result.Reason}")
                End If
            End Using
        End Using
    End Function
End Class

En el método anterior, creamos una instancia de la configurara del servicio de voz y luego instanciamos un reconocedor de voz, utilizando la configuración y el archivo de audio como entrada. Al llamar a RecognizeOnceAsync, el servicio procesará el archivo proporcionado y devolverá un resultado con el texto reconocido, si este es el caso.

Para hacer uso de la función TranscribeAudioAsync, se puede llamar desde un botón en una interfaz de usuario de Windows Forms, por ejemplo, permitiendo al usuario indicar la ruta del archivo de audio que desea convertir en texto.


Private Async Sub btnTranscribe_Click(sender As Object, e As EventArgs) Handles btnTranscribe.Click
    Dim filePath As String = txtFilePath.Text
    Try
        Dim transcribedText As String = Await AudioTranscriptor.TranscribeAudioAsync(filePath)
        txtTranscription.Text = transcribedText
    Catch ex As Exception
        MessageBox.Show($"Error transcribing file: {ex.Message}")
    End Try
End Sub

El código mostrado es un ejemplo simplificado de cómo realizar la solicitud para la conversión de datos auditivos a texto. Sin embargo, existen muchas más opciones y configuraciones posibles que pueden ajustarse para mejorar la precisión, manejar diferentes idiomas, costos y rendimiento.

Manejo de Errores y Mejoras de la Aplicación

Es importante tener un buen manejo de errores para ofrecer una mejor experiencia al usuario. La aplicación debe ser capaz de manejar situaciones como errores en la autenticación con Azure, archivos de audio con formato no soportado, y problemas de conectividad, entre otros.

Además, yendo más allá de la transcripción simple de audio, se pueden explorar características como la transcripción en tiempo real, customización de modelos para mejorar el reconocimiento en ciertos dominios o dialectos y la implementación de funciones de análisis semántico para extraer más información del texto transcrito.

Este artículo fue desarrollado como una guía básica para la transcripción de audio usando VB.NET y los servicios de Azure, y es parte del contenido exclusivo del blog sobre programación y soluciones de software. Derechos reservados.

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad