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 流程说明

  1. 注册DUI账号并进行实名认证,点此进行注册:注册账号
  2. 在DUI控制台上创建基础技术产品,并完成产品授权;
  3. 创建websocket连接,完成长语音服务接口鉴权
  4. 调用长语音接口,实现语音转写功能。

3.2 产品创建与授权

3.2.1 创建基础技术产品

集成录音文件长语音转写API,需要先创建基础技术服务产品。

    1. 登录DUI控制台后,点击导航栏的【基础技术】,进入基础技术产品列表页。
    2. 在列表页,点击【基础技术接入】,创建基础技术产品,选择接实时转写服务。
    3. 选择需要接入的实时长语音转写。

                 

 

3.2.2 产品授权

  1. 进入基础技术产品详情页, 点击【授权管理】,进入授权页。
  2. 在授权页,根据业务需求,选择授权方式。云端对云端的情况请选择 【服务授权】。
  3. 选择【配置IP白名单】,填写需要调用识别服务的IP地址,提交后,会生成授权所需的APIkey。请注意,IP地址为实际访问长语音服务的IP地址。

3.3 创建websocket连接

3.2.1 建立请求连接

ws(s)://<HOST>/live/ws2?productId=278588090&apikey=0ddddeeeeeeeeeeee88888888260c8ab
【Host】:lasr.duiopen.com

连接上需要携带的授权参数说明,详见:接口鉴权

 

3.2.2 响应结果

链接成功,回复http status 101

 

四 接口调用

4.1 实时转写流程

 

 

步骤1~5描述转写的整个流程:

  1. 通过websocket协议链接API网关,握手成功后才能保持链接;
  2. 通过本次链接,发送开始(start)消息,通知系统准备接受实时转写的任务;
  3. 按照每40ms的固定帧频发送feed消息,同时接受实时转写结果;
  4. 如需停止转写,发送停止(stop)消息,结束本次转写
  5. 断开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

【消息内容】:

  1. 当errno = 9时,表示为客户端发完空帧后的最后一句,客户端可以断开链接。
  2. 当errno = 8时,表示本次返回为识别中间var结果。
  3. 当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、实时语音转写支持多长的音频?

理论上音频流长度不做限制。