You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure Speech Recognition中传入二进制/十六进制数据替代WAV文件路径

解决方案

核心逻辑是使用Azure语音SDK内置的PushAudioInputStream类直接加载内存中的二进制音频数据,无需写入本地磁盘。

完整修改后代码

import azure.cognitiveservices.speech as speechsdk

# 原有获取音频二进制数据的逻辑不变
raw_data = self.audio.get_wav_data()

# 配置语音识别参数,这部分和原有逻辑一致
speech_config = speechsdk.SpeechConfig(subscription="<subscription>", region="westeurope")
speech_config.speech_recognition_language="pt-BR"

# 替换原有基于本地文件的AudioConfig构造逻辑
# 1. 创建推送音频流
push_stream = speechsdk.audio.PushAudioInputStream()
# 2. 将内存中的WAV二进制数据写入流
push_stream.write(raw_data)
# 3. 写入完成后关闭流,告知识别器没有更多音频数据
push_stream.close()
# 4. 基于流构造AudioConfig
audio_config = speechsdk.audio.AudioConfig(stream=push_stream)

# 后续识别逻辑不变
speech_recognizer = speechsdk.SpeechRecognizer(speech_config=speech_config, audio_config=audio_config)
result = speech_recognizer.recognize_once_async().get()
user_request = result.text

注意事项

  • 该方案仅适用于你当前获取到的raw_data是带标准WAV头的完整二进制数据的场景,如果你拿到的是裸PCM音频数据,需要额外通过AudioStreamFormat指定采样率、位深、声道数参数,再传入PushAudioInputStream构造方法。
  • 如果你需要处理大体积音频,可以分段调用push_stream.write()方法推送音频块,全部推送完成后再调用close()即可。

内容的提问来源于stack exchange,提问作者Julio S.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 22:54:03