1. 简介

讯飞开放平台提供开发者实时语音转写websocket接口,基于该接口,开发者可实现将连续的音频流内容,实时识别返回对应的文字流内容。

音频格式:采样率为16K,采样深度为16bits的pcm_s16le音频

2. 接口说明

接口调用包括两个阶段:握手阶段和实时通信阶段。

2.1. 握手阶段

接口地址

ws://rtasr.xfyun.cn/v1/ws?{请求参数}

wss://rtasr.xfyun.cn/v1/ws?{请求参数}

参数格式

key1=value1&key2=value2…(key和value都需要进行urlencode)

参数说明

参数类型必须说明示例appidstring是讯飞开放平台应用ID595f23df

tsstring是当前时间戳,从1970年1月1日0点0分0秒开始到现在的秒数1512041814

signastring是加密数字签名(基于HMACSHA1算法)IrrzsJeOFk1NGfJHW6SkHUoN9CU=

2.1.1. signa生成

1.获取baseString,baseString由appid和当前时间戳ts拼接而成,假如appid为595f23df,ts为1512041814,则baseString为

595f23df1512041814

2.对baseString进行MD5,假如baseString为上一步生成的595f23df1512041814,MD5之后则为

0829d4012497c14a30e7e72aeebe565e

3.以apiKey为key对MD5之后的baseString进行HmacSHA1加密,假如apiKey为d9f4aa7ea6d94faca62cd88a28fd5234,MD5之后的baseString为上一步生成的0829d4012497c14a30e7e72aeebe565e,则加密之后signa为

IrrzsJeOFk1NGfJHW6SkHUoN9CU=

备注:

apiKey:接口密钥,在应用中添加实时语音转写服务时自动生成,调用方注意保管;

signa的生成公式:HmacSHA1(MD5(appid + ts),api_key),具体的生成方法详见【调用示例】;

2.1.2. 请求示例ws://rtasr.xfyun.cn/v1/ws?appid=595f23df&ts=1512041814&signa=IrrzsJeOFk1NGfJHW6SkHUoN9CU=

2.1.3. 返回值

结果格式为json,字段说明如下:

参数类型说明actionstring结果标识,started:握手,result:结果,error:异常

codestring结果码(具体见错误码)

datastring结果数据

descstring描述

sidstring会话ID

其中sid字段主要用于DEBUG追查问题,如果出现问题,可以提供sid帮助确认问题。

成功

{

"action":"started",

"code":"0",

"data":"",

"desc":"success",

"sid":"rta0000000a@ch312c0e3f63609f0900"

}

失败

{

"action":"error",

"code":"10110",

"data":"",

"desc":"invalid authorization|illegal signa",

"sid":"rta0000000b@ch312c0e3f65f09f0900"

}

2.2. 实时通信阶段

握手成功后,进入实时通信阶段,此时客户端的主动操作有两种:上传数据和上传结束标识,被动操作有两种:接收转写结果和错误

2.2.1. 上传数据

在实时转写过程中,客户端不断构造binary message发送到服务端,内容是音频的二进制数据。此操作的频率影响到文字结果展现的实时性。

注意:

1.建议音频流每40ms发送1280字节,发送过快可能导致引擎出错;2.音频发送间隔超时时间为15秒,超时服务端报错并主动断开连接。

2.2.2. 上传结束标志

音频数据上传完成后,客户端需发送一个特殊的binary message到服务端作为结束标识,内容是:

{"end":true}

2.2.3. 接收转写结果

交互过程中,服务端不断返回 text message (转写结果) 到客户端。当所有结果发送完毕后,服务端断开连接,交互结束。

结果示例:

{

"action":"result",

"code":"0",

"data":"{\"cn\":{\"st\":{\"bg\":\"820\",\"ed\":\"0\",\"rt\":[{\"ws\":[{\"cw\":[{\"w\":\"啊\",\"wp\":\"n\"}],\"wb\":0,\"we\":0},{\"cw\":[{\"w\":\"喂\",\"wp\":\"n\"}],\"wb\":0,\"we\":0},{\"cw\":[{\"w\":\"!\",\"wp\":\"p\"}],\"wb\":0,\"we\":0},{\"cw\":[{\"w\":\"你好\",\"wp\":\"n\"}],\"wb\":0,\"we\":0},{\"cw\":[{\"w\":\"!\",\"wp\":\"p\"}],\"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\"}},\"seg_id\":5}\n",

"desc":"success",

"sid":"rta0000000e@ch312c0e3f6bcc9f0900"

}

其中data为转写结果的json字符串

data:

{

"cn":{

"st":{

"bg":"820",

"ed":"0",

"rt":[{

"ws":[{

"cw":[{

"w":"啊",

"wp":"n"

}],

"wb":0,

"we":0

},{

"cw":[{

"w":"喂",

"wp":"n"

}],

"wb":0,

"we":0

},{

"cw":[{

"w":"!",

"wp":"p"

}],

"wb":0,

"we":0

},{

"cw":[{

"w":"你好",

"wp":"n"

}],

"wb":0,

"we":0

},{

"cw":[{

"w":"!",

"wp":"p"

}],

"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"

}

},

"seg_id":5

}

转写结果data字段说明如下:

字段含义描述bg句子开始时间中间结果的bg为准确值

ed句子结束时间中间结果的ed为0

w词识别结果

wp词标识n-普通词;s-顺滑词;p-标点

wb词开始时间中间结果的 wb 为 0

we词结束时间中间结果的 we 为 0

type结果类型标识0-最终结果;1-中间结果

seg_id转写结果序号从0开始

2.2.4. 接收错误信息

交互过程中,在服务端出现异常而中断服务时(如会话超时),会将异常信息以 text message 形式返回给客户端并关闭连接。

3. 附录

3.1. 错误码错误码描述说明处理方式0success成功

10105illegal access没有权限检查apiKey,ip,ts等授权参数是否正确

10106invalid parameter无效参数上传必要的参数, 检查参数格式以及编码

10107illegal parameter非法参数值检查参数值是否超过范围或不符合要求

10110no license无授权许可检查参数值是否超过范围或不符合要求

10700engine error引擎错误提供接口返回值,向服务提供商反馈

10202websocket connect errorwebsocket连接错误检查网络是否正常

10204websocket write error服务端websocket写错误检查网络是否正常,向服务提供商反馈

10205websocket read error服务端websocket读错误检查网络是否正常,向服务提供商反馈

16003basic component error基础组件异常重试或向服务提供商反馈

10800over max connect limit超过授权的连接数确认连接数是否超过授权的连接数

3.2. 调用示例

Copyright © iflytek.com 2018 all right reserved,powered by Gitbook该文件修订时间:2019-05-07 07:12:51

python实时语音转写_语音识别 - 实时语音转写 - 《科大讯飞REST_API开发指南》 - 书栈网 · BookStack...相关推荐

  1. mediumtext和string转换_数据类型 - 字符串类型 - 《TiDB v3.0 用户文档》 - 书栈网 · BookStack...

    字符串类型 TiDB 支持 MySQL 所有的字符串类型,包括 CHAR.VARCHAR.BINARY.VARBINARY.BLOB.TEXT.ENUM 以及 SET,完整信息参考这篇文档. 类型定义 ...

  2. python3内存分析_调试和分析 - tracemalloc —- 跟踪内存分配 - 《Python 3.7 标准库》 - 书栈网 · BookStack...

    tracemalloc -- 跟踪内存分配 3.4 新版功能. The tracemalloc module is a debug tool to trace memory blocks alloca ...

  3. spark 相关性分析_基本统计 - correlations(相关性系数) - 《spark机器学习算法研究和源码分析》 - 书栈网 · BookStack...

    相关性系数 计算两个数据集的相关性是统计中的常用操作.在MLlib中提供了计算多个数据集两两相关的方法.目前支持的相关性方法有皮尔森(Pearson)相关和斯皮尔曼(Spearman)相关. Stat ...

  4. mysql pmod项目_内置函数 - 数学函数 - 《Apache Doris 文档(201812)》 - 书栈网 · BookStack...

    数学函数 abs(double a) 功能: 返回参数的绝对值 返回类型:double类型 使用说明:使用该函数需要确保函数的返回值是整数. acos(double a) 功能: 返回参数的反余弦值 ...

  5. mysql集群跨地域同步部署_跨地域冗余 - 跨数据中心部署方案 - 《TiDB v2.1 用户文档》 - 书栈网 · BookStack...

    跨数据中心部署方案 作为 NewSQL 数据库,TiDB 兼顾了传统关系型数据库的优秀特性以及 NoSQL 数据库可扩展性,以及跨数据中心(下文简称"中心")场景下的高可用.本文档 ...

  6. mysql t 保存_检查 (调试) - 离线消息保存到 MySQL - 《EMQ X Enterprise v4.1 中文文档》 - 书栈网 · BookStack...

    离线消息保存到 MySQL 搭建 MySQL 数据库,并设置用户名密码为 root/public,以 MacOS X 为例: $ brew install mysql $ brew services ...

  7. dateutil 日期计算_日期时间 - 日期时间工具-DateUtil - 《Hutool 参考文档》 - 书栈网 · BookStack...

    日期时间工具-DateUtil 由来 考虑到Java本身对日期时间的支持有限,并且Date和Calendar对象的并存导致各种方法使用混乱和复杂,故使用此工具类做了封装.这其中的封装主要是日期和字符串 ...

  8. wps在线预览接口_金山文档在线编辑 - 快速接入 - 《WPS开放平台技术文档》 - 书栈网 · BookStack...

    快速接入 一.申请和上线流程如下: 1.申请Appid和SecretKey 需要前往https://open.wps.cn 注册服务商,并且申请开通金山文档在线编辑服务. 2.实现回调接口 根据本文档 ...

  9. 华润大学ldap账号是什么_认证配置 - 接入 LDAP / AD 域账号(Beta) - 《KubeSphere v2.1 使用手册》 - 书栈网 · BookStack...

    接入 LDAP / AD 域账号(Beta) 如果您的企业使用 LDAP 作为用户认证系统,您可以在 KubeSphere 中通过脚本配置内置的 OpenLDAP 接入您的 LDAP 用户系统,从而允 ...

  10. mysql 中间件 租户管理_多租户的设计与实现 - 《Gaea - MySQL 中间件》 - 书栈网 · BookStack...

    多租户的设计与实现 背景 gaea多租户是为了实现一套gaea集群,可以接入多个业务系统的不同数据库,方便部署.运维.gaea多租户为软多租户,一个租户称为一个namespace,多个namespac ...

最新文章

  1. “代理”那点事儿-使用代理和搭建简单代理服务
  2. JavaScript实现levenshteinDistance字符串编辑距离算法(附完整源码)
  3. java ssm框架详解_Java的SSM框架怎样才算真正掌握?
  4. Mysql远程登录及常用命令
  5. elementui表格-改变某一列的样式
  6. 网络测试工具 - QCheck
  7. window系统服务器,远程连接mysql数据库。
  8. ModuleNotFoundError: No module named ‘pip‘
  9. Win7安装Mysql8.0步骤
  10. idea启动jsp项目
  11. 用计算机发传真,用电脑怎么发传真
  12. 分享CFA二级优质复习方法!
  13. 上传图片保存到mysql数据库并在网页上显示
  14. Java进阶-常用API
  15. [转]有关FMS(FCS)设置
  16. es数据更新时间_京东到家订单中心系统mysql到es的转化之路
  17. 公司企业邮箱登陆客户端,邮件服务器如何设置?
  18. 苹果手机备忘录怎么提取图片文字
  19. IC学习笔记3——异步FIFO
  20. 网络受限_受限人工神经网络对幸福的追求

热门文章

  1. stvd使用c语言编程,STVD使用教程.pdf
  2. h264和h265解码上的区别
  3. matlab中标准化降水指数程序,标准化降水指数(SPI)计算程序
  4. KEIL STC 仿真
  5. 计算机网络波特率公式,传输速率——比特率和波特率
  6. matlab 平滑曲线连接_MATLAB数据可视化
  7. VoLTE 信令分析手册
  8. HTML5 Metadata content(文档元数据)
  9. 供应链三道防线(读书笔记)1(共4)
  10. 记忆减退之----LM1117 电路连接图