Azure Speech to Text REST API:如何通过音频URL实现语音转文字?
Azure Speech to Text REST API 通过音频URL实现语音转文字指导
一、前置准备
- 已创建Azure Speech资源,从Azure门户的「密钥和终结点」页面获取资源密钥和对应的区域代码(例如
eastus) - 待转写的音频文件需托管在公开可访问的HTTP/HTTPS地址;如果存在Azure Blob私有容器中,要生成带读取权限的SAS令牌,拼接在Blob URL后使用
二、调用批量转录API(异步流程)
通过音频URL转写需要使用批量转录REST API,流程如下:
1. 创建转录任务
发送POST请求到对应区域的批量转录终结点:
POST https://<你的区域代码>.cris.ai/api/speechtotext/v3.2/transcriptions
请求头需包含:
Ocp-Apim-Subscription-Key: <你的Speech资源密钥>Content-Type: application/json
请求体示例(JSON格式):
{ "contentUrls": [ "https://example.com/your-audio-file.wav" ], "properties": { "diarizationEnabled": false, "wordLevelTimestampsEnabled": false, "punctuationMode": "DictatedAndAutomatic", "profanityFilterMode": "Masked" }, "locale": "zh-CN", "displayName": "自定义转录任务名称" }
参数说明:
contentUrls: 填入音频文件的公开URL,支持同时传入多个地址locale: 音频的语言代码,中文填zh-CN,英文填en-US,其他语言参考官方支持列表properties内的参数可按需调整:比如需要区分说话人就开启diarizationEnabled,需要词级时间戳就打开wordLevelTimestampsEnabled
2. 查询转录进度
任务创建成功后,响应会返回一个self字段的URL。用这个URL发送GET请求(请求头同样带资源密钥),即可查看任务状态:
- 状态为
Running时表示正在处理 - 状态变为
Succeeded时,响应中的resultsUrls.transcriptsUrl就是转录结果的下载地址
3. 获取转写文本
直接访问transcriptsUrl(临时公开地址,无需密钥),下载得到的JSON文件中,combinedRecognizedPhrases字段下的display值就是完整的转写文本。
三、关键注意事项
- 支持的音频格式包括WAV、MP3、OGG等,需确保音频采样率、比特率符合Azure Speech服务的要求
- 大文件转录耗时较长,建议间隔1-2分钟查询一次状态,避免频繁请求
- 资源密钥属于敏感信息,绝对不要在前端代码或公开场景中暴露
内容的提问来源于stack exchange,提问作者sariga ms
相关产品推荐
相关产品推荐

