1. 简介
讯飞开放平台提供开发者实时语音转写websocket接口,基于该接口,开发者可实现将连续的音频流内容,实时识别返回对应的文字流内容。
音频格式:采样率为16K,采样深度为16bits的pcm_s16le音频
2. 接口说明
接口调用包括两个阶段:握手阶段和实时通信阶段。
接口地址
参数格式
参数说明
1.获取baseString,baseString由appid和当前时间戳ts拼接而成,假如appid为595f23df,ts为1512041814,则baseString为
2.对baseString进行MD5,假如baseString为上一步生成的595f23df1512041814,MD5之后则为
3.以apiKey为key对MD5之后的baseString进行HmacSHA1加密,假如apiKey为d9f4aa7ea6d94faca62cd88a28fd5234,MD5之后的baseString为上一步生成的0829d4012497c14a30e7e72aeebe565e,则加密之后signa为
备注:
- apiKey:接口密钥,在应用中添加实时语音转写服务时自动生成,调用方注意保管;
- signa的生成公式:HmacSHA1(MD5(appid + ts),api_key),具体的生成方法详见【调用示例】;
2.1.2. 请求示例
结果格式为json,字段说明如下:
其中sid字段主要用于DEBUG追查问题,如果出现问题,可以提供sid帮助确认问题。
{
"action":"started",
"code":"0",
"data":"",
"desc":"success",
"sid":"rta0000000a@ch312c0e3f63609f0900"
}
握手成功后,进入实时通信阶段,此时客户端的主动操作有两种:上传数据和上传结束标识,被动操作有两种:接收转写结果和错误
2.2.1. 上传数据
在实时转写过程中,客户端不断构造binary message发送到服务端,内容是音频的二进制数据。此操作的频率影响到文字结果展现的实时性。
1.建议音频流每40ms发送1280字节,发送过快可能导致引擎出错;2.音频发送间隔超时时间为15秒,超时服务端报错并主动断开连接。
音频数据上传完成后,客户端需发送一个特殊的binary message到服务端作为结束标识,内容是:
{"end": true}
2.2.3. 接收转写结果
交互过程中,服务端不断返回 text message (转写结果) 到客户端。当所有结果发送完毕后,服务端断开连接,交互结束。
结果示例:
其中data为转写结果的json字符串
data:
{
"cn":{
"st":{
"bg":"820",
"ed":"0",
"ws":[{
"cw":[{
"w":"啊",
"wp":"n"
}],
"wb":0,
"we":0
},{
"cw":[{
"wp":"n"
}],
"wb":0,
"we":0
},{
"cw":[{
"w":"!",
"wp":"p"
}],
"wb":0,
"we":0
},{
"cw":[{
"w":"你好",
"wp":"n"
}],
"wb":0,
"we":0
},{
"cw":[{
"w":"!",
}],
"wb":0,
"we":0
"cw":[{
"w":"我",
"wp":"n"
}],
"wb":0,
"we":0
},{
"cw":[{
"w":"是",
"wp":"n"
}],
"wb":0,
"we":0
},{
"cw":[{
"w":"上",
"wp":"n"
}],
"wb":0,
"we":0
}]
}],
"type":"1"
}
},
}
转写结果data字段说明如下:
交互过程中,在服务端出现异常而中断服务时(如会话超时),会将异常信息以 text message 形式返回给客户端并关闭连接。
3. 附录
Copyright © iflytek.com 2018 all right reserved,powered by Gitbook该文件修订时间:2019-05-07 07:12:51