upSpeechRecognitionModule 人工智能模块
模块概述
人工智能模块为H5页面提供语音识别能力。
方法列表
- sdkInit (sdk初始化)
- sdkRelease (sdk资源释放)
- initOk (查询sdk初始化结果)
- createAsrRecorder (创建语音识别对象)
- attachAsrRecorder (订阅语音识别结果)
- detachAsrRecorder (取消订阅语音识别结果)
- startAsrRecorder (开始语音录制)
- cancelAsrRecorder (取消语音录制)
- stopAsrRecorder (停止语音录制)
- createTtsPlayer (创建语音合成对象)
- attachTts (订阅语音合成)
- detachTts (取消语音合成订阅)
- startTts (启动语音合成)
- stopTts (停止语音合成)
- playTts (播放语音合成文本)
- pauseTts (语音合成播放器暂停播放)
- openSpeechView (打开语音浮窗)
- closeSpeechView (关闭语音浮窗)
公共数据
- 所有数据均以JSON结构返回,由代码,信息和数据三部分组成
-注意:在失败的情况下,reData结构如下:{ "retCode": "000000", //接口状态标识码,错误标识码以29开头 "retInfo": "操作成功",//接口信息说明 "retData": null //业务数据 }
"retData": { "msgCode": "xxxx", //语音sdk返回的errorCode均转为29开头的错误码,参见下方errorListener监听回调数据code "msgInfo": "xxx" //语音sdk返回的errorMsg均转为中文错误码,参见下方errorListener监听回调数据说明 }
具体定义:返回数据通用
- errorListener监听回调数据
code | 说明 |
---|---|
290001 | 内存不足 |
290002 | 参数错误 |
290003 | 配置错误 |
290004 | 执行功能时云端服务异常 |
290005 | 打开文件失败 |
290006 | 读取文件失败 |
290007 | 写入文件失败 |
290008 | SDK未初始化 |
290009 | SDK重复初始化 |
290010 | 执行功能时网络连接异常 |
290011 | 模块还没有处理结果 |
290012 | TTS模块输出结果失败(继承IFilter的输出过滤器) |
290013 | SDK调用通用错误 |
290100 | ASR模块调用失败 |
290101 | ASR模块已经在工作中 |
290102 | ASR模块没有语音输入 |
290103 | ASR模块还未开始工作 |
290104 | ASR模块没有识别结果 |
290200 | NLU模块调用失败 |
290300 | TTS模块调用失败 |
290301 | TTS模块已经在工作中 |
290302 | TTS模块没有输入 |
290303 | TTS模块输出结果失败(继承IFilter的输出过滤器) |
290304 | TTS模块不在工作状态 |
290305 | TTS模块语音合成失败 |
290400 | 保留 |
- eventListener监听回调数据
code | 说明 |
---|---|
0 | TTS播放器初始状态 |
1 | TTS空闲 |
2 | TTS语音合成录音机正在进行语音合成 |
3 | TTS语音合成录音机正在播放合成语音 |
4 | TTS语音合成录音机合成语音播放暂停 |
5 | TTS语音合成录音机发生错误 |
6 | TTS语音合成录音机语音合成播放停止 |
模块变更记录
V3.0.0
- 新增方法:
- sdkInit (sdk初始化)
- sdkRelease (sdk资源释放)
- initOk (查询sdk初始化结果)
- createTtsPlayer (创建语音合成对象)
- attachTts (订阅语音合成)
- detachTts (取消语音合成订阅)
- startTts (启动语音合成)
- stopTts (停止语音合成)
- playTts (播放语音合成文本)
- pauseTts (语音合成播放器暂停播放)
- openSpeechView (打开语音浮窗)
- closeSpeechView (关闭语音浮窗)
- 方法变更:
- attachAsrRecorder新增AsrEventListener和AsrVolumeListener两个入参;监听事件下新增sdk原始数据返回
- 新增方法:
V3.2.0
- 重构speechrecognition模块,修改返回数据的retCode和reInfo,具体值参照通用数据说明
V3.3.0
- openSpeechView新增入参frame:语音悬浮按钮的坐标尺寸
- openSpeechView新增入参isShowShortcut:是否显示创建语音快捷方式的入口
- openSpeechView新增入参shortcutUserId:快捷方式userid
V4.0.0
- 重构speechrecognition模块,支持调接口错误时的返回数据retData的传递,修改retInfo,重要改动:attach和detach方法必须成对使用,调用了attach方法后在create新的对象之前必须调用detach取消之前的监听,否则新创建的对象无法attach监听。
方法说明
sdkInit (sdk初始化)
sdkInit()
说明
- sdk初始化。
适用性
容器 | Nebula |
---|---|
支持情况 | 是 |
APP版本 | 6.12.0 及以上 |
params 输入参数:
属性名 | 类型 | 是否必填 | 描述 |
---|---|---|---|
config | String | 是 | 启动配置信息JSON字符串,没有可传空 |
错误返回 retCode说明:
参照通用retCode
code | 说明 |
---|---|
220005 | 缺少权限,语音模块初始化失败 |
正确返回 retData说明:
无
示例
调用方式
uplusapi.upSpeechRecognitionModule.sdkInit({
config: ''
}).then((result) =>console.log('result',result));
成功返回结果
{
"retCode": "000000",
"retInfo": "调用函数sdkInitForAi()成功",
"retData": null
}
sdkRelease (sdk资源释放)
sdkRelease()
说明
- sdk资源释放。
适用性
容器 | Nebula |
---|---|
支持情况 | 是 |
APP版本 | 6.12.0 及以上 |
params 输入参数:
无
错误返回 retCode说明:
参照通用reCode
正确返回 retData说明:
无
示例
调用方式
uplusapi.upSpeechRecognitionModule.sdkRelease().then((result) =>console.log('result',result));
成功返回结果
{
"retCode": "000000",
"retInfo": "调用函数sdkReleaseForAi()成功",
"retData": null
}
initOk (查询sdk初始化结果)
initOk()
说明
- 查询sdk初始化结果。
适用性
容器 | Nebula |
---|---|
支持情况 | 是 |
APP版本 | 6.12.0 及以上 |
params 输入参数:
无
错误返回 retCode说明:
参照通用reCode
正确返回 retData说明:
无
示例
调用方式
uplusapi.upSpeechRecognitionModule.initOk().then((result) =>console.log('result',result));
成功返回结果
{
"retCode": "000000",
"retInfo": "调用函数initOkForAi()成功",
"retData": null
}
createAsrRecorder (创建语音识别对象)
createAsrRecorder()
说明
- 创建一个默认的语音识别实例对象,后续版本会增加根据所传参数,创建自定义的语音识别实例对象。
- 语音识别的实例对象只能存在一个,重复创建语音识别对象,最后创建出的实例对象会覆盖之前的实例对象。
适用性
容器 | Nebula |
---|---|
支持情况 | 是 |
APP版本 | 6.12.0 及以上 |
params 输入参数:
无
错误返回 retCode说明:
参照通用reCode
正确返回 retData说明:
无
示例
调用方式
uplusapi.upSpeechRecognitionModule.createAsrRecorder().then((result) =>console.log('result',result));
成功返回结果
{
"retCode": "000000",
"retInfo": "调用函数createAsrRecorderForAi()成功",
"retData": null
}
attachAsrRecorder (订阅语音识别结果)
attachAsrRecorder()
说明
- 开始语音录制前,首先调用该方法订阅语音识别,否则无法获取到语音识别结果。
适用性
容器 | Nebula |
---|---|
支持情况 | 是 |
APP版本 | 6.12.0 及以上 |
params 输入参数:
属性名 | 类型 | 是否必填 | 描述 |
---|---|---|---|
AsrErrorListener | Function | 是 | 语音识别故障监听器 |
AsrRsultListener | Function | 是 | 语音识别结果监听器 |
AsrEventListener | Function | 是 | 语音识别事件监听器 |
AsrVolumeListener | Function | 是 | 语音识别音量监听器 |
错误返回 retCode说明:
参照通用reCode
正确返回 retData说明:
无
语音识别故障,AsrErrorListener监听器数据说明:
属性名 | 数据类型 | 说明 |
---|---|---|
retCode | String | 参照errorListener监听回调数据 |
retInfo | String | 参照errorListener监听回调数据 |
retData | Object | rawData |
rawData 说明
属性名 | 数据类型 | 说明 |
---|---|---|
errMsg | String | 语音sdk返回的错误信息 |
errCode | String | 语音sdk返回的错误码 |
AsrRsultListener监听器返回 retData说明:
语音返回的结果解析成功时:
属性名 | 数据类型 | 说明 |
---|---|---|
retCode | String | 000000 |
retInfo | String | 语音识别成功 |
retData | Object | recogniationText,rawData |
属性名 | 数据类型 | 说明 |
---|---|---|
recogniationText | String | 语音sdk返回的识别文案,非必有,只在识别成功下才有 |
rawData | String | 语音sdk返回识别原始结果 |
语音返回的结果解析失败时:
属性名 | 数据类型 | 说明 |
---|---|---|
retCode | String | 000001 |
retInfo | String | 语音识别失败 |
retData | Object | rawData |
属性名 | 数据类型 | 说明 |
---|---|---|
rawData | String | 语音sdk返回识别原始结果 |
语音识别事件,AsrEventListener监听器数据说明:
属性名 | 数据类型 | 说明 |
---|---|---|
retCode | String | 000000 |
retInfo | String | AsrEvent事件触发 |
retData | Object | rawData |
rawData 说明
属性名 | 数据类型 | 说明 |
---|---|---|
statusCode | Number | 语音sdk返回的状态码 |
paramCode | Number | 语音sdk返回的事件参数(保留) |
语音识别事件,AsrVolumeListener监听器数据说明:
属性名 | 数据类型 | 说明 |
---|---|---|
retCode | String | 000000 |
retInfo | String | 实时音量 |
retData | Number | 实时音量值 |
示例
调用方式
uplusapi.upSpeechRecognitionModule.attachAsrRecorder({
"AsrErrorListener": (errMessage) => console.log(errMessage),
"AsrRsultListener": (resultMessage) => console.log(resultMessage),
"AsrEventListener": (eventMessage) => console.log(eventMessage),
"AsrVolumeListener": (volumeMessage) => console.log(volumeMessage)
}).then((result) =>console.log('result',result));
订阅成功返回结果
{
"retCode": "000000",
"retInfo": "调用函数attachAsrRecorderForAi()成功",
"retData": null
}
detachAsrRecorder (取消订阅语音识别结果)
detachAsrRecorder()
说明
- 取消订阅语音识别结果后,如需再次进行语音识别,请先重新订阅语音识别结果。
适用性
容器 | Nebula |
---|---|
支持情况 | 是 |
APP版本 | 6.12.0 及以上 |
params 输入参数:
无
错误返回 retCode说明:
参照通用reCode
正确返回 retData说明:
无
示例
调用方式
uplusapi.upSpeechRecognitionModule.detachAsrRecorder().then((result) =>console.log('result',result));
获取成功返回结果
{
"retCode": "000000",
"retInfo": "调用函数detachAsrRecorderForAi()成功",
"retData": null
}
startAsrRecorder (开始语音录制)
startAsrRecorder()
说明
- 语音录制时,如果语音停顿超过2s,会自动停止语音录制,进行语音识别
适用性
容器 | Nebula |
---|---|
支持情况 | 是 |
APP版本 | 6.12.0 及以上 |
params 输入参数:
属性名 | 类型 | 是否必填 | 描述 |
---|---|---|---|
config | String | 是 | 启动配置信息JSON字符串,没有可传空 |
错误返回 retCode说明:
参照通用reCode
正确返回 retData说明:
无
示例
调用方式
uplusapi.upSpeechRecognitionModule.startAsrRecorder({
"config": ""
}).then((result) =>console.log('result',result));
获取成功返回结果
{
"retCode": "000000",
"retInfo": "调用函数startAsrRecorderForAi()成功",
"retData": null
}
cancelAsrRecorder (取消语音录制)
cancelAsrRecorder()
说明
- 取消语音录制后,之前录制的语音不会进行语音识别,监听器不会执行
适用性
容器 | Nebula |
---|---|
支持情况 | 是 |
APP版本 | 6.12.0 及以上 |
params 输入参数:
无
错误返回 retCode说明:
参照通用reCode
正确返回 retData说明:
无
示例
调用方式
uplusapi.upSpeechRecognitionModule.cancelAsrRecorder().then((result) =>console.log('result',result));
获取成功返回结果
{
"retCode": "000000",
"retInfo": "调用函数cancelAsrRecorderForAi()成功",
"retData": null
}
stopAsrRecorder (停止语音录制)
stopAsrRecorder()
说明
- 停止语音录制后,设备开始进行语音识别,监听器执行,返回识别结果
适用性
容器 | Nebula |
---|---|
支持情况 | 是 |
APP版本 | 6.12.0 及以上 |
params 输入参数:
无
错误返回 retCode说明:
参照通用reCode
正确返回 retData说明:
无
示例
调用方式
uplusapi.upSpeechRecognitionModule.stopAsrRecorder().then((result) =>console.log('result',result));
获取成功返回结果
{
"retCode": "000000",
"retInfo": "调用函数stopAsrRecorderForAi()成功",
"retData": null
}
createTtsPlayer (创建语音合成对象)
createTtsPlayer()
说明
- 创建一个默认的创建语音合成实例对象,后续版本会增加根据所传参数,创建自定义的语音识别实例对象。
- 语音合成的实例对象只能存在一个,重复创建语音合成对象,最后创建出的实例对象会覆盖之前的实例对象。
适用性
容器 | Nebula |
---|---|
支持情况 | 是 |
APP版本 | 6.12.0 及以上 |
params 输入参数:
无
错误返回 retCode说明:
参照通用reCode
正确返回 retData说明:
无
示例
调用方式
uplusapi.upSpeechRecognitionModule.createTtsPlayer().then((result) =>console.log('result',result));
成功返回结果
{
"retCode": "000000",
"retInfo": "调用函数createTtsPlayerForAi()成功",
"retData": null
}
attachTts (订阅语音合成)
attachTts()
说明
- 开始语音合成前,首先调用该方法订阅语音合成。
适用性
容器 | Nebula |
---|---|
支持情况 | 是 |
APP版本 | 6.12.0 及以上 |
params 输入参数:
属性名 | 类型 | 是否必填 | 描述 |
---|---|---|---|
TtsErrorListener | Function | 是 | 语音合成故障监听器 |
TtsRsultListener | Function | 是 | 语音合成结果监听器 |
TtsEventListener | Function | 是 | 语音合成事件监听器 |
错误返回 retCode说明:
参照通用reCode
正确返回 retData说明:
无
语音识别结果,TtsRsultListener监听器数据说明:
属性名 | 数据类型 | 说明 |
---|---|---|
retCode | String | 语音sdk返回状态码 |
retInfo | String | 语音合成结果 |
retData | String | 语音sdk返回信息 |
语音识别故障,TtsErrorListener监听器数据说明:
属性名 | 数据类型 | 说明 |
---|---|---|
retCode | String | 参照errorListener监听回调数据 |
retInfo | String | 参照errorListener监听回调数据 |
retData | String | 语音sdk返回错误数据 |
语音识别事件, TtsEventListener监听器数据说明:
属性名 | 数据类型 | 说明 |
---|---|---|
retCode | Number | 参照eventListener监听回调数据 |
retInfo | String | TtsEvent事件触发 |
retData | Number | 语音sdk返回错误数据 |
示例
调用方式
uplusapi.upSpeechRecognitionModule.attachTts({
"TtsErrorListener": (errMessage) => console.log(errMessage),
"TtsRsultListener": (resultMessage) => console.log(resultMessage),
"TtsEventListener": (eventtMessage) => console.log(eventtMessage)
}).then((result) =>console.log('result',result));
订阅成功返回结果
{
"retCode": "000000",
"retInfo": "调用函数attachTtsForAi()成功",
"retData": null
}
detachTts (取消语音合成订阅)
detachTts()
说明
- 取消订阅语音合成结果后,如需再次进行语音合成,请先重新订阅语音合成。
适用性
容器 | Nebula |
---|---|
支持情况 | 是 |
APP版本 | 6.12.0 及以上 |
params 输入参数:
无
错误返回 retCode说明:
参照通用reCode
正确返回 retData说明:
无
示例
调用方式
uplusapi.upSpeechRecognitionModule.detachTts().then((result) =>console.log('result',result));
获取成功返回结果
{
"retCode": "000000",
"retInfo": "调用函数detachTtsForAi()成功",
"retData": null
}
startTts (启动语音合成)
startTts()
说明
适用性
容器 | Nebula |
---|---|
支持情况 | 是 |
APP版本 | 6.12.0 及以上 |
params 输入参数:
属性名 | 类型 | 是否必填 | 描述 |
---|---|---|---|
config | String | 是 | 启动配置信息JSON字符串,如:JSON.stringify({'provider': 'baidu'}) |
错误返回 retCode说明:
参照通用reCode
正确返回 retData说明:
无
示例
调用方式
uplusapi.upSpeechRecognitionModule.startTts({
'config': JSON.stringify({
'provider': 'baidu'
}),
}).then((result) =>console.log('result',result));
获取成功返回结果
{
"retCode": "000000",
"retInfo": "调用函数startTtsForAi()成功",
"retData": null
}
stopTts (停止语音合成)
stopTts()
说明
- 停止语音合成后,
适用性
容器 | Nebula |
---|---|
支持情况 | 是 |
APP版本 | 6.12.0 及以上 |
params 输入参数:
无
错误返回 retCode说明:
参照通用reCode
正确返回 retData说明:
无
示例
调用方式
uplusapi.upSpeechRecognitionModule.stopTts().then((result) =>console.log('result',result));
获取成功返回结果
{
"retCode": "000000",
"retInfo": "调用函数stopTtsForAi()成功",
"retData": null
}
playTts (播放语音合成文本)
playTts()
说明
适用性
容器 | Nebula |
---|---|
支持情况 | 是 |
APP版本 | 6.12.0 及以上 |
params 输入参数:
属性名 | 类型 | 是否必填 | 描述 |
---|---|---|---|
text | String | 是 | 语⾳合成的文本,传空会返回参数错误 |
mode | Number | 是 | 0:重新合成⽂本并播放;1:继续播放上⼀次的合成。输⼊入的合成⽂文本必须与最近⼀次的合成⽂本相同,并处于播放暂停状态,否则会返回290002参数错误;2:重新播放上一次的合成。输入的合成文本必须与最近一次的合成⽂本相同,否则会返回290002参数错误 |
错误返回 retCode说明:
参照通用reCode
正确返回 retData说明:
无
示例
调用方式
uplusapi.upSpeechRecognitionModule.playTts({
"text": "语⾳音合成的⽂文本",
"mode": 0
}).then((result) =>console.log('result',result));
获取成功返回结果
{
"retCode": "000000",
"retInfo": "调用函数playTtsForAi()成功",
"retData": null
}
pauseTts (语音合成播放器暂停播放)
pauseTts()
说明
适用性
容器 | Nebula |
---|---|
支持情况 | 是 |
APP版本 | 6.12.0 及以上 |
params 输入参数:
无
错误返回 retCode说明:
参照通用reCode
正确返回 retData说明:
无
示例
调用方式
uplusapi.upSpeechRecognitionModule.pauseTts().then((result) =>console.log('result',result));
获取成功返回结果
{
"retCode": "000000",
"retInfo": "调用函数pauseTtsForAi()成功",
"retData": null
}
openSpeechView (打开语音浮窗)
说明
适用性
容器 | Nebula |
---|---|
支持情况 | 是 |
APP版本 | 6.12.0 及以上 |
params 输入参数:
属性名 | 类型 | 是否必填 | 描述 |
---|---|---|---|
corpus | Array | 否 | 语料信息,没有可传空 |
错误返回 retCode说明:
参照通用reCode
正确返回 retData说明:
无
示例
调用方式
uplusapi.upSpeechRecognitionModule.openSpeechView({
corpus: [],
}).then((result) =>console.log('result',result));
获取成功返回结果
{
"retCode": "000000",
"retInfo": "调用函数openSpeechView()成功",
"retData": null
}
自动打开语音浮窗
通过语音助手快捷方式打开App,页面需监听resume
事件来获取参数:
uplusapi.addResumeEventListener((data) => {
if (data.autoOpenSpeechView === '1') {
uplusapi.upSpeechRecognitionModule.openSpeechView({
corpus: [],
}).then((result) =>console.log('result',result));
}
}, 'key');
closeSpeechView (关闭语音浮窗)
说明
适用性
容器 | Nebula |
---|---|
支持情况 | 是 |
APP版本 | 6.12.0 及以上 |
params 输入参数:
无
错误返回 retCode说明:
参照通用reCode
正确返回 retData说明:
无
示例
调用方式
uplusapi.upSpeechRecognitionModule.closeSpeechView().then((result) =>console.log('result',result));
获取成功返回结果
{
"retCode": "000000",
"retInfo": "调用函数closeSpeechView()成功",
"retData": null
}