讯飞星火语音听写流式 API 的 Python 接入流程可总结为:
·
- 首先准备 Python3.7 运行环境,安装代码指定版本的第三方依赖库;接着在讯飞开放平台获取 APPID、APIKey、APISecret 密钥,并准备好待识别的音频文件;
- 然后通过密钥完成鉴权加密,生成 WebSocket 连接 URL;
- 之后创建 WebSocket 客户端并与服务端建立连接,连接成功后将音频文件按固定帧大小分帧,以第一帧、中间帧、最后一帧的格式流式发送音频数据;
- 最后接收并解析服务端返回的识别结果,提取并输出文字内容,识别完成后自动关闭连接。
过程中可参考官方错误码排查问题,也可在平台配置热词、语种方言。
5.1.4 接口要求

这里主要讲了 API 接口要求,包括:
- 基础协议与调用地址:
- 请求协议:支持
ws(WebSocket)/wss(加密 WebSocket),强烈推荐使用 wss 以提升安全性 - 请求地址:
ws[s]://iat.xf-yun.com/v1(中英文语音识别专属接口)
- 请求协议:支持
- 通用规范与鉴权要求:
- 接口鉴权:采用签名认证机制,需按照官方规则生成鉴权信息后才可调用
- 字符编码:统一使用
UTF-8编码 - 响应格式:服务端返回结果统一为
JSON格式 - 开发语言:无限制,只要可向讯飞云服务发起 HTTP 请求的语言均可开发
- 音频参数要求:
- 音频属性:采样率支持 16k 或 8K、位长 16bit、单声道
- 音频格式:支持
pcm(需传参audio.encoding=raw)、mp3(需传参audio.encoding=lame) - 音频长度:单段待识别音频最长不超过 60 秒
5.1.4.1 接口鉴权



本接口采用 URL 参数鉴权 机制,是调用服务的前置安全校验:通过在 WebSocket 请求地址后拼接 3 个必填鉴权参数,完成「身份校验 + 防篡改 + 防重放」三重安全防护,仅合法授权用户可成功调用接口。
必填鉴权参数说明:

authorization 参数完整生成步骤为:
在讯飞开放平台控制台,完成以下操作获取 2 个 32 位核心密钥:
- 创建 WebAPI 平台应用
- 开通「语音听写(流式版)」服务
- 查看并保存:
APIKey(身份标识)、APISecret(签名密钥,需严格保密)
生成合规 date 参数:
- 格式要求:严格遵循 RFC1123 标准,时区必须为 UTC+0/GMT
- 校验规则:服务端会校验本地时间与服务器时间的偏差,超时请求直接拦截,需确保本地时间同步
构造签名原始字段(signature_origin):按固定规则拼接 3 个参数(\n 为换行符,: 后必须保留 1 个空格):
host: $host\n |
date: $date\n |
$request-line |
字段说明:
$host:固定为iat.xf-yun.com$date:步骤 2 生成的 RFC1123 格式时间$request-line:固定为GET /v1 HTTP/1.1(对应接口请求路径)
示例:
host: iat.xf-yun.com |
date: Tue, 14 May 2024 08:46:48 GMT |
GET /v1 HTTP/1.1 |
接着,使用 hmac-sha256 加密算法,以 APISecret 为密钥,对 signature_origin 进行加密签名:
signature_sha = hmac-sha256(signature_origin, $apiSecret) |
对 signature_sha 进行Base64 编码,得到可用于拼接的 signature 字符串。
按固定格式拼接(注意引号、空格不可错漏,headers 为固定参数名,不可修改):
api_key="$api_key", algorithm="hmac-sha256", headers="host date request-line", signature="$signature" |
- 关键提示:
headers的值为固定字符串"host date request-line",仅代表参与签名的参数名,不是参数实际值
对 authorization_origin 进行Base64 编码,得到最终可拼接到 URL 的 authorization 参数
最终请求格式为(推荐使用wss加密协议提升安全性):
ws[s]://iat.xf-yun.com/v1?authorization={authorization}&date={date}&host={host} |
5.1.4.2 数据传输示例



更多推荐
所有评论(0)