Server 接入(旧)
该技术服务已迁移至思必驰开放平台,本文档于2020年8月25日停止更新。最新版请查看:https://cloud.aispeech.com/docs/lasr_rt
一 功能介绍
实时语音转写通过与服务端建立websocket长连接,对连续的音频流进行实时识别,获取返回的文字流识别结果,达到“边说边出文字”的效果,内置智能断句,可用于大会演讲投屏、实时直播字幕、实时法庭庭审记录等场景。整个识别过程是实时的,支持:
- 可用于基于协议开发的:轻量级嵌入式设备;采用云对云的方式,接入DUI实时语音转写服务的产品;
- 支持wav, ogg(speex), ogg_opus, mp3格式的音频文件转写;
- 支持自定义热词和敏感词配置、语言模型自训练功能,请联系商务或项目经理进行定制。
二 调用限制
集成实时语音转写API时,需按照以下要求:
内容 | 说明 |
---|---|
请求协议 | ws[s] (为提高安全性,强烈推荐wss) |
接口鉴权 | 详见:接口授权 |
字符编码 | UTF-8 |
响应格式 | 统一采用JSON格式 |
开发语言 | 任意,只要可以向思必驰云服务发起WebSocket请求的均可 |
音频属性 | 采样率16k、位长16bits、单声道 |
音频格式 | wav, ogg(speex), ogg_opus, mp3 |
数据发送 | 调用端每隔40ms发送40ms的音频数据 |
语言种类 | 中文普通话 |
并发路数 | 默认50路并发,这里并发是指建立的websocket链接数 |
三 接入流程
3.1 流程说明
3.2 产品创建与授权
3.2.1 创建基础技术产品
集成录音文件长语音转写API,需要先创建基础技术服务产品。
- 登录DUI控制台后,点击导航栏的【基础技术】,进入基础技术产品列表页。
- 在列表页,点击【基础技术接入】,创建基础技术产品,选择接实时转写服务。
- 选择需要接入的实时长语音转写。
3.2.2 产品授权
- 进入基础技术产品详情页, 点击【授权管理】,进入授权页。
- 在授权页,根据业务需求,选择授权方式。云端对云端的情况请选择 【服务授权】。
- 选择【配置IP白名单】,填写需要调用识别服务的IP地址,提交后,会生成授权所需的APIkey。请注意,IP地址为实际访问长语音服务的IP地址。
3.3 创建websocket连接
3.2.1 建立请求连接
ws(s)://<HOST>/live/ws2?productId=278588090&apikey=0ddddeeeeeeeeeeee88888888260c8ab
连接上需要携带的授权参数说明,详见:接口鉴权
3.2.2 响应结果
链接成功,回复http status 101
四 接口调用
4.1 实时转写流程
步骤1~5描述转写的整个流程:
- 通过websocket协议链接API网关,握手成功后才能保持链接;
- 通过本次链接,发送开始(start)消息,通知系统准备接受实时转写的任务;
- 按照每40ms的固定帧频发送feed消息,同时接受实时转写结果;
- 如需停止转写,发送停止(stop)消息,结束本次转写
- 断开websocket链接
4.2 开始转写
【消息格式】:TEXT
4.2.1 请求示例
{
"command": "start",
"params": {
"env": {
"use_txt_smooth": 1, //口语顺滑,0:不使用;1:使用(默认)
"use_tprocess": 1, //逆文本,0:不使用,1:使用(默认)
"use_sensitive_wds_norm": 1, //敏感词开关,0:关闭敏感词;1:开启敏感词(默认)。
},
"audio": {
"audioType": "wav", //音频类型支持:wav, ogg(speex), ogg_opus, mp3
"sampleRate": 16000, //音频采样率。
"sampleBytes": 2, //取样字节数。
"channel": 1 //音频通道数
}
}
}
注意: 1. 在使用转写服务时,建议您打开敏感词开关。对于因关闭敏感词服务引起的法律风险,平台不予负责。 2. 如需体验定制敏感词服务,请线下联系商务。 |
4.2.2 响应结果
{
"errno":7,
"error":"",
"data":{
"current state:":"feeding"
}
}
4.3 发送音频数据
【消息格式】:BINARY
【方向】:Client → API Gateway
1. 调用端在ws连接上每隔40ms发送40ms的音频数据,使用binary帧;
2. 音频数据上传完成后,调用端需发送一个binary空帧作为结束标识,即表示停止本次实时转写
注意:在单向发送音频流之前,确认有正常监听服务器的result事件。
4.4 接收转写结果
【消息格式】:BINARY
【方向】:API Gateway → Client
【消息内容】:
- 当errno = 9时,表示为客户端发完空帧后的最后一句,客户端可以断开链接。
- 当errno = 8时,表示本次返回为识别中间var结果。
- 当errno= 0时,表示本次返回为识别中间rec结果。
4.4.1 参数说明
参数名 |
参数说明 |
参数 类型 |
取值示例 |
---|---|---|---|
data.bg |
开始时间,单位:毫秒 |
int |
0 |
data.ed |
结束时间,单位:毫秒 |
int |
1000 |
data.onebest |
返回的识别文本 |
string |
思必驰信息科技有限公司。 |
data.sessionId |
从start到stop为一次Session;sessionId在一次会话中唯一。 |
string |
DUIddeeeeeeeeeeee88888888260c8ab |
4.4.2 获取最终结果
{
"errno": 9,
"error": "",
"data": {
"sessionId": "be813762651a4f4ead1a31f6d76e9cda",
"bg": 0,
"ed": 3140,
"onebest": "...而机器做人会做的事情并不稀奇。",
}
}
完整音频为:这个工业化时代,人越来越像机器。现在很多人研究技术是为了让机器越来越像人,而机器做人会做的事情并不稀奇。
4.4.3获取中间结果
1)获取中间var结果
{
"errno": 8,
"error": "",
"data": {
"sessionId": "4eac558502f34de4a5ca6f1f4318ea33",
"var": "...这个 工业化 时代...",
"bg": 1300
}
}
完整音频为:这个工业化时代,人越来越像机器。现在很多人研究技术是为了让机器越来越像人,而机器做人会做的事情并不稀奇。
2)获取中间rec结果
{
"errno": 0,
"error": "",
"data": {
"sessionId": “94aadbaa39f046c1b2889dac9ccb1cff”,
"bg": 0,
"end": 3000,
"onebest": "这个工业化时代,人越来越像机器。现在很多人研究技术是为了让机器越来越像人,而机器做人",
}
}
完整音频为:这个工业化时代,人越来越像机器。现在很多人研究技术是为了让机器越来越像人,而机器做人会做的事情并不稀奇。
4.5 停止转写
发送二进制空帧到API Gateway,即表示停止本次实时转写。
五 错误码
errno | 说明 |
---|---|
7 | start响应成功 |
8 | 表示本次返回为识别中间var结果 |
0 | 表示本次返回为识别中间rec结果 |
9 | 表示为客户端发完空帧后的最后一个rec,客户端可以断开链接 |
10 | 客户端发送的数据错误 |
11 | 服务异常,比如live模块初始化失败,没有可用的计算进程,计算进程退出,计算进程计算超时等 |
5.1 识别服务错误码
http状态码 | 报文 | 报文解释 |
401 |
{"errId":"120000","errMsg":"apikey auth verify error"} |
鉴权失败 |
403 |
{"errId":"120100","errMsg":"ocs check error"} |
产品达到使用量上限,用量管控 |
403 |
{"errId":"120200","errMsg":"limit connection reach the limit"} |
产品触发流控
|
六 常见问题
1、 实时语音转写支持什么平台?
支持Server方式接入(指通过服务对接方式接入)、Android和ios(指通过设备对接方式接入)接入。
Android平台接入见:实时长语音转写接入(Android)
iOS平台接入见:实时长语音转写接入(iOS)
2、如何试用服务和购买服务
您可以直接购买实时长语音转写时长套餐。套餐量越大越优惠。点此了解:产品服务定价。
如果有更大量的需求,请线下联系商务或联系asrsupport_service@aispeech.com(邮件中请提供联系方式和需求详细描述)。
3、 支持的音频格式和语言
- 支持中文普通话
- 支持wav, ogg(speex), ogg_opus, mp3格式音频
- 16k 16bit 单声道
4、实时语音转写支持多长的音频?
理论上音频流长度不做限制。