Azure语音转文本报错“The recordings URI contains invalid data”求助
解决Azure批量语音转文本报错“Transcription failed: The recordings URI contains invalid data”
针对你遇到的问题,按以下步骤逐一排查:
1. 验证Blob SAS URL的有效性
- 检查SAS权限:确保生成的SAS token包含**读取(r)**权限,批量转录服务需要读取音频文件的权限,权限不足会直接导致URI无效报错。
- 测试URL可访问性:直接在浏览器中输入该URL,或者用命令行工具验证:
返回curl -I "https://gruppofinservi7339283933.blob.core.windows.net/audio/giacomo3.wav?sv=xxx"200 OK说明URL有效;若返回403/404,说明URL存在token过期、权限不足或文件不存在等问题。 - 检查URL编码:确保SAS token中的特殊字符(如
+、/、=)未被错误转义,保持生成时的原始格式。
2. 确认音频文件的合规性
Azure批量转录对WAV文件有明确要求:
- 编码格式:必须为PCM 16位,采样率推荐16kHz(支持8kHz),单声道或立体声。用以下命令检查文件信息:
查看输出的ffmpeg -i giacomo3.wavAudio行,确认编码为pcm_s16le(16位PCM)。 - 文件完整性:用本地音频播放器完整播放文件,确认无损坏、时长匹配。
3. 排查转录配置参数干扰
- 暂时关闭说话人分离:你当前启用了
diarization_enabled=True并设置max_count=30,虽不是URI报错的直接原因,但可临时将diarization_enabled改为False发起测试转录,排除配置冲突可能。 - 核对语言设置:确认
locale设置的it-IT是你所用Azure语音资源区域支持的语言(该语言本身受支持,重点确认资源区域覆盖意大利语模型)。
4. 检查存储账户的网络访问限制
若Azure存储账户设置了防火墙或虚拟网络限制:
- 确认运行转录代码的环境IP在存储账户的允许访问列表中;
- 可临时关闭存储账户的防火墙限制,测试是否能正常转录,以此排除网络访问问题。
内容的提问来源于stack exchange,提问作者Federicofkt
相关产品推荐
相关产品推荐

