如何使用python将音频缓冲区传递给语音到文本服务

问题描述

我正在使用 azure 语音到文本服务,使用 python 来处理一堆音频。为了处理音频,这些是执行的步骤-

  1. 将音频从网络服务器下载到本地“C:/audio”驱动器。
  2. 将下载的音频路径传递给语音 SDK - Audioconfig(filename ='C:/audio/my_audio.wav')

我想从服务器获取文件并将其直接传递给语音到文本服务,而不是下载到本地机器。其中,

  1. 我将音频以 bytes 形式存储在这样的音频缓冲区中 - raw_audio = my_audio_in_bytes # class <'bytes'>

  2. 然后,我将音频缓冲区传递给 AudioConfig(filename = raw_audio) - 它不起作用。因为它需要一个文件路径

有没有办法将音频缓冲区传递给这个服务?

配置python代码

speech_config = speechsdk.SpeechConfig(subscription=speech_key,region=service_region)
audio_config = speechsdk.audio.AudioConfig(filename='C:/audios/audio1.wav')
speech_recognizer = speechsdk.SpeechRecognizer(speech_config=speech_config,audio_config=audio_config)  

解决方法

@user1990,根据我们的讨论 on this GitHub issue,请使用 batch transcription,因为语音 SDK 不直接支持从托管在网络服务上的 WAV 文件中识别(您首先需要在本地下载) .