集成语音听写流式API时,需按照以下要求。
- 通过接口密钥基于计算签名,向服务器端发送Websocket协议握手请求。详见下方 接口鉴权 。
- 握手成功后,客户端通过Websocket连接同时上传和接收数据。数据上传完毕,客户端需要上传一次数据结束标识。详见下方 接口数据传输与接收 。
- 接收到服务器端的结果全部返回标识后断开Websocket连接。
注: Websocket使用注意事项如下
- 服务端支持的websocket-version 为13,请确保客户端使用的框架支持该版本。
- 服务端返回的所有的帧类型均为TextMessage,对应于原生websocket的协议帧中opcode=1,请确保客户端解析到的帧类型一定为该类型,如果不是,请尝试升级客户端框架版本,或者更换技术框架。
- 如果出现分帧问题,即一个json数据包分多帧返回给了客户端,导致客户端解析json失败。出现这种问题大部分情况是客户端的框架对websocket协议解析存在问题,如果出现请先尝试升级框架版本,或者更换技术框架。
- 客户端会话结束后如果需要关闭连接,尽量保证传给服务端的错误码为websocket错误码1000(如果客户端框架没有提供关闭时传错误码的接口。则无需关注本条)。
在握手阶段,请求方需要对请求进行签名,服务端通过签名来校验请求的合法性。
#鉴权方法
通过在请求地址后面加上鉴权相关参数的方式。示例url:
鉴权参数:
· date参数生成规则
· authorization参数生成规则
1)获取接口密钥APIKey 和 APISecret。
在讯飞开放平台控制台,创建WebAPI平台应用并添加语音听写(流式版)服务后即可查看,均为32位字符串。
2)参数authorization base64编码前(authorization_origin)的格式如下。
其中:
- api_key 是在控制台获取的APIKey
- algorithm 是加密算法(仅支持hmac-sha256)
- headers 是参与签名的参数(注: headers是参与签名的参数,请注意是固定的参数名(”host date request-line”),而非这些参数的值。)
- signature 是使用加密算法对参与签名的参数签名后,并使用base64编码的字符串,详见下方。
3)signature的原始字段(signature_origin)规则如下
假设
那么 signature原始字段(signature_origin)则为:
4)使用hmac-sha256算法结合 apiSecret 对 签名,获得签名后的摘要 。
其中是在控制台获取的APISecret
5)使用base64编码对 进行编码, 获得最终的signature。
假设
则signature为
6)根据以上信息拼接authorization base64编码前(authorization_origin)的字符串,示例如下。
7)最后再对authorization_origin进行base64编码获得最终的authorization参数。
#鉴权url示例(golang)
鉴权结果
如果握手成功,会返回HTTP 101状态码,表示协议升级成功;如果握手失败,则根据不同错误类型返回不同HTTP Code状态码,同时携带错误描述信息,详细错误说明如下:
握手失败返回示例:
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/225933.html