使用Azure Speech Services批量转录API持续遇URI无效数据错误求助
Azure Speech Batch Transcription API "InvalidData" 错误排查方向
验证S3链接的可访问性与权限
- 直接通过浏览器或命令行工具(如
curl -I https://s3.us-west-1.amazonaws.com/xxxx/out5.wav)测试链接,确认返回200状态码且能完整下载文件。S3公共桶可能存在隐性权限限制,比如桶策略未允许所有匿名用户读取,或对象本身被设置为私有,需确保Azure Speech服务能无限制访问该链接。 - 检查链接是否包含特殊字符,若有需进行URL编码。
- 直接通过浏览器或命令行工具(如
再次确认音频文件的完整性与格式
- 使用
ffmpeg -i out5.wav或mediainfo out5.wav工具重新验证音频参数,需完全匹配要求:单声道、16位深度、16kHz采样率、PCM编码、256kbps比特率。重点检查文件头是否完整,避免sox转码过程中出现损坏。 - 用一个已知正常的短音频文件(自行录制符合格式的音频)上传到S3测试,排除原音频文件本身的问题。
- 使用
检查API请求的细节
- 确认请求使用的是v3.1预览版endpoint:
https://westus.api.cognitive.microsoft.com/speechtotext/v3.1-preview.2/transcriptions,而非v3.0(用户要试用v3.1的新功能,endpoint版本不匹配可能引发错误)。 - 验证请求头中的
Ocp-Apim-Subscription-Key正确,且对应westus区域的Speech资源。 - 确保请求体JSON格式正确,无多余逗号,同时添加所需的预览版属性,示例请求体:
{ "contentUrls": [ "https://s3.us-west-1.amazonaws.com/xxxx/out5.wav" ], "locale": "en-US", "displayName": "Test", "properties": { "displayFormWordLevelTimestampsEnabled": true } }
- 确认请求使用的是v3.1预览版endpoint:
排查存储服务兼容性问题
- 尝试将音频上传至Azure Blob存储(设置容器为匿名公共访问),使用Blob的URL发起请求,排除S3与Azure Speech服务的兼容性问题。
- 查看S3桶的访问日志,确认Azure Speech服务的请求是否被拒绝,若有则调整桶的权限规则。
获取更详细的错误信息
- 登录Azure门户,进入对应的Speech资源,查看资源日志或监控指标,获取更具体的错误详情(如链接访问超时、文件格式检测失败等)。
内容的提问来源于stack exchange,提问作者shanewwarren
相关产品推荐
相关产品推荐

