¿Por que la transcripcion de mis audios tarda tanto tiempo desde Python?

Christian Allende Vargas 0 Puntos de reputación
2024-07-10T01:53:45.09+00:00

Hice un servicio de Azure Speech en python para transcribir un audio que tengo en mi blob, ejecute el siguiente codigo que no tiene errores de permisos y accesos, y se tarda una barbaridad en transcribir un audio de 6 segundos. No sé exactamente cuanto puede demorarse pero puede sobrepasar los 20 minutos. Aqui les dejo mi codigo.

# Crea un reconocedor de voz y realiza el reconocimiento de voz
speech_recognizer = speechsdk.SpeechRecognizer(
speech_config=speech_config, 
audio_config=audio_input)
result=speech_recognizer.recognize_once()
Azure
Azure
Plataforma e infraestructura de informática en la nube para crear, implementar y administrar aplicaciones y servicios a través de una red mundial de centros de datos administrados por Microsoft.
475 preguntas
0 comentarios No hay comentarios
{count} votos

1 respuesta

Ordenar por: Lo más útil
  1. Gao Chen 4,305 Puntos de reputación Proveedor de Microsoft
    2024-11-27T17:47:19.8766667+00:00

    Hola Christian Allende Vargas,

    ¡Bienvenido(a) a Microsoft Q&A!

    Lamentamos mucho la demora en darle una respuesta a tu tema en este foro. Si tienes la misma consulta o problema, puedes seguir las siguientes recomendaciones para mejorar el rendimiento de tu servicio de Azure Speech:

    1. Asegúrate de que el recurso de Azure Speech esté lo más cerca posible de tu aplicación para reducir la latencia de red.
    2. En lugar de procesar todo el archivo de audio de una vez, utiliza la transmisión en tiempo real para enviar datos de audio en pequeños fragmentos. Esto permite un procesamiento inmediato y reduce la latencia general.
    3. Utiliza métodos asíncronos como start_continuous_recognition_async y stop_continuous_recognition_async en lugar de sus contrapartes sincrónicas. Esto permite operaciones no bloqueantes y reduce la latencia.
    4. Si conoces el idioma del audio, defínelo al inicio del proceso de transcripción para eliminar el tiempo adicional necesario para detectar el idioma.
    5. Si estás procesando archivos de audio grandes, divídelos en fragmentos más pequeños y ejecuta la transcripción para cada fragmento en paralelo.

    Aquí tienes un ejemplo de cómo podrías implementar la transmisión en tiempo real:

    import azure.cognitiveservices.speech as speechsdk
    
    def speech_recognize_continuous_async():
        speech_config = speechsdk.SpeechConfig(subscription="YourSubscriptionKey", region="YourServiceRegion")
        audio_config = speechsdk.AudioConfig(filename="YourAudioFile.wav")
        speech_recognizer = speechsdk.SpeechRecognizer(speech_config=speech_config, audio_config=audio_config)
    
        def recognized_cb(evt):
            print('RECOGNIZED: {}'.format(evt.result.text))
    
        def stop_cb(evt):
            print('CLOSING on {}'.format(evt))
            nonlocal done
            done = True
    
        speech_recognizer.recognized.connect(recognized_cb)
        speech_recognizer.session_stopped.connect(stop_cb)
    
        done = False
        result_future = speech_recognizer.start_continuous_recognition_async()
        result_future.get()
    
        while not done:
            pass
    
        speech_recognizer.stop_continuous_recognition_async()
    
    speech_recognize_continuous_async()
    

    Espero que información brindada fuera útil. Si necesitas más asistencia, estoy a tu disposición.

    Atentamente,

    Gao


    Si esta respuesta resolvió tu consulta, por favor haz clic en 'Aceptar respuesta'. Esto nos ayuda a mejorar continuamente la calidad y relevancia de nuestras soluciones.


Su respuesta

Las respuestas pueden ser marcadas como Respuestas aceptadas por el autor de la pregunta, lo que indica a los usuarios que la respuesta resolvió su problema.