使用Azure Speech-to-Text转写音频失败,报错SPXERR_INVALID_HEADER求助
解决Azure Speech-to-Text的SPXERR_INVALID_HEADER错误
问题根源
错误码0xa (SPXERR_INVALID_HEADER)是因为Azure Speech-to-Text SDK不支持直接解析MP4视频文件,MP4属于视频容器格式,SDK无法直接读取其中的音频流。
解决步骤
1. 从MP4中提取兼容的音频文件
使用ffmpeg工具提取MP4中的音频,转成SDK支持的WAV格式(推荐PCM编码、16kHz采样率、单声道,是SDK最优适配配置):
- 先安装ffmpeg(添加到系统PATH)
- 执行以下命令:
ffmpeg -i "C:\\Users\\DELL\\Desktop\\flowlly.com\\demo\\003. Class 3 - Monolith, Microservices, gRPC, Webhooks.mp4" -vn -acodec pcm_s16le -ar 16000 -ac 1 "C:\\Users\\DELL\\Desktop\\flowlly.com\\demo\\output.wav"
2. 修改代码中的音频路径
将代码里的音频文件路径替换为提取后的WAV文件:
audio_config = speechsdk.audio.AudioConfig(filename="C:\\Users\\DELL\\Desktop\\flowlly.com\\demo\\output.wav")
3. 额外检查项
- 确保
my_key和my_region变量已正确替换为你的Azure Speech资源密钥和区域,建议通过环境变量读取更安全:speech_config = speechsdk.SpeechConfig(subscription=os.getenv("SPEECH_KEY"), region=os.getenv("SPEECH_REGION")) - 更新SDK到最新版本:
pip install --upgrade azure-cognitiveservices-speech
内容的提问来源于stack exchange,提问作者Vatsal A Mehta
相关产品推荐
相关产品推荐

