极速语音转写 API 文档
接口说明
#接口Demo
#接口要求
内容 | 说明 |
---|---|
传输方式 | http[s](为提高安全性,强烈推荐https) |
请求地址 | 1、小文件上传(小于30M)https://upload-ost-api.xfyun.cn/file/upload 2、大文件分块上传 (1)初始化分块信息 https://upload-ost-api.xfyun.cn/file/mpupload/init (2)分块上传 https://upload-ost-api.xfyun.cn/file/mpupload/upload (3)分块上传完成 https://upload-ost-api.xfyun.cn/file/mpupload/complete 3、创建任务 https://ost-api.xfyun.cn/v2/ost/pro_create 4、查询任务 https://ost-api.xfyun.cn/v2/ost/query |
请求行 | POST /xxx/xxx HTTP/1.1 (/xxx/xxx根据请求地址替换,如/file/upload或/v2/ost/pro_create等) |
接口鉴权 | 签名机制,详情请参照下方鉴权认证 |
字符编码 | UTF-8 |
响应格式 | 统一采用JSON格式 |
开发语言 | 任意,只要可以向讯飞云服务发起HTTP请求的均可 |
音频属性 | 采样率16k、位长16、单声道 |
音频格式 | wav/pcm/mp3 |
音频大小 | 不超过500M |
音频时长 | 不超过5小时,建议5分钟以上 |
语言种类 | 中文、英文、中英文混合 |
转写结果保存时长 | 7天 |
#接口调用流程
• 将请求参数以及数据放在Http Request Body中,以POST表单的形式提交,详见下方 请求参数 。
• 向服务器端发送Http请求后,接收服务器端的返回结果。
#鉴权认证
#鉴权方法
#1、Header参数描述,请以键值对形式传递
'host': 'upload-ost-api.xfyun.cn'
'date': 'Wed, 29 Dec 2021 07:06:31 GMT'
'authorization': 'api_key="91205afe0d17e38c61be35fca346503c", algorithm="hmac-sha256", headers="host date request-line digest", signature="rbzT4wmZc050+52AtnSNWfcmRMPFHdzThqnR0cE4QcY="'
'digest': 'SHA-256=47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='
'content-type': 'multipart/form-data; boundary=a0df7967173af147fe3ae65068b9b622'
参数 | 类型 | 必须 | 说明 | 示例 |
---|---|---|---|---|
host | string | 是 | 请求主机,根据请求url不同而不同 | upload-ost-api.xfyun.cn |
date | string | 是 | 当前时间戳,RFC1123格式("EEE, dd MMM yyyy HH:mm:ss z") | Wed, 29 Dec 2021 07:06:31 GMT |
digest | string | 是 | body 的摘要,用sha256计算,计算方法为 Digest="SHA256="+base64(sha256(body)) | SHA-256=47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU= |
authorization | string | 是 | 鉴权参数,具体构建方法如下 | 详细生成规则参考下方 |
content-type | string | 是 | 互联网媒体类型 | 有文件上传multipart/form-data 无文件上传application/json |
#2、参数生成规则
https://upload-ost-api.xfyun.cn/file/upload 对应的Host为upload-ost-api.xfyun.cn
https://ost-api.xfyun.cn/v2/ost/query 对应的Host为ost-api.xfyun.cn
(2) date生成规则:
date必须是UTC+0或GMT时区,RFC1123格式(Wed, 05 Jan 2022 09:29:14 GMT)。
服务端会对date进行时钟偏移检查,最大允许300秒的偏差,超出偏差的请求都将被拒绝。
(3) digest生成规则:
计算规则固定,不受任何参数值的影响,Java计算示例如下:
Authorization的格式如下,其需要用到signature的值:
注:headers是参与签名的参数,请注意是固定的参数名("host date request-line"),而非 这些参数的值。
api_key="$api_key",algorithm="hmac-sha256",headers="host date request-line digest",signature="$signature"
host: $host\ndate: $date\n$request-line\ndigest: $digest
假设以小文件上传url为例:
请求url = "https://upload-ost-api.xfyun.cn/file/upload"
date = "Wed, 05 Jan 2022 09:29:14 GMT"
那么最终signature原始字段(signature_origin)示例如下:
-----------------------------------------------
host: upload-ost-api.xfyun.cn
date: Wed, 05 Jan 2022 09:29:14 GMT
POST /file/upload HTTP/1.1
digest: SHA-256=47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=
假设APISecret="apisecretXXXXXXXXXXXXXXXXXXXXXXX"
则:
signature_sha=hmac-sha256(signature_origin,$apiSecret)
signature=base64(signature_sha)
示例:bsLfoGMgZJkoDTuytkPra2NGLS/jzTMHOwbLZusw65A=
假设api_key="apikeyXXXXXXXXXXXXXXXXXXXXXXXXXX"
则authorization最终示例如下:
api_key="apikeyXXXXXXXXXXXXXXXXXXXXXXXXXX", algorithm="hmac-sha256", headers="host date request-line digest", signature="bsLfoGMgZJkoDTuytkPra2NGLS/jzTMHOwbLZusw65A="
错误码
错误码 | 错误描述 | 处理策略 |
---|---|---|
10107 | 自定音频编码字段错误 | 请检查encoding的传值是否规范 |
10303 | 参数值传递不规范 | 请检查传参值是否有误 |
10043 | 音频解码失败 | 请检查所传的音频是否与encoding字段描述的编码格式对应 |
20304 | 静音音频、音频格式与传参不匹配、音频格式不符 | 检查音频是否为16k、16bit单声道音频 |
10043 | 使 用音频格式与编码格式encoding没有按文档描述对应 | 参照data.encoding参数取值进行比对 |
#鉴权结果
HTTP Code | 说明 | 错误描述信息 | 解决方法 |
---|---|---|---|
401 | 缺少authorization参数 | {"message":"Unauthorized"} | 检查是否有authorization参数,详情见authorization参数详细生成规则 |
401 | 签名参数解析失败 | {“message”:”HMAC signature cannot be verified”} | 检查签名的各个参数是否有缺失是否正确,特别确认下复制的api_key是否正确 |
401 | 签名校验失败 | {“message”:”HMAC signature does not match”} | 签名验证失败,可能原因有很多。 1. 检查api_key,api_secret 是否正确。 2.检查计算签名的参数host,date,request-line是否按照协议要求拼接。 3. 检查signature签名的base64长度是否正常(正常44个字节)。 |
403 | 时钟偏移校验失败 | {“message”:”HMAC signature cannot be verified, a valid date or x-date header is required for HMAC Authentication”} | 检查服务器时间是否标准,相差5分钟以上会报此错误 |
HTTP/1.1 403 Forbidden
Date: Mon, 30 Nov 2020 02:34:33 GMT
Content-Length: 116
Content-Type: text/plain; charset=utf-8
{
"message": "HMAC signature does not match, a valid date or x-date header is required for HMAC Authentication"
}
修改于 2023-12-18 08:28:25