iflyEva
概述
本模块封装了讯飞SDK的语音评测功能,语音评测(Speech Evaluator)通过智能语音技术自动对发音水平进行评价、发音错误、缺陷进行定位和问题分析。目前评音评测提供汉语、英语两种语言的评测,支持单字(汉语专有)、词语、句子、篇章朗读等题型。
使用此模块之前必须先配置 config 文件,配置方法如下:
- 名称:iflyEva
- 参数:appId
- 配置示例:
<feature name="iflyEva">
<param name="appId" value="123ab67" />
</feature>
字段描述:
appId:注册应用的appId,注册应用请前往讯飞开放平台。
讯飞SDK静态库和appid是绑定的,每款应用必须保持唯一,否则会出现10407错误码,下载SDK后,将 DK打包成一个附加自定义模块上传 APICloud 平台。
iOS制作方法如下:
下载 iflyEvaAppendix 模块 zip 包并解压,把 zip 包内 target 目录下的 iflyMSC.framework 文件替换为自己从讯飞平台获取的SDK。然后重新压缩为 zip 包文件上传自定义模块,云编译时勾选该模块。
Android自定义模块制作:
1、下载讯飞平台自己应用的语音测评sdk
2、下载 iflyEvaAppendix 模块 zip 包并解压
3、将语音测评的sdk中jar包替换source目录中的jar文件
4、将语音测评的sdk中so文件替换target目录中的so文件
5、将iflyEvaAppendix重新打包为zip文件以自定义模块方式添加到您项目
config
设置评测引擎的参数
config(params)
params
values:
- 类型:json数组类型
- 描述:评测引擎设置
- 内部字段:
[{
key:'', //字符串类型;评测引擎参数
value:'' //字符串类型;评测引擎参数值
}]
- 示例
<table>
<tr>
<th>参数</th>
<th>说明</th>
</tr>
<tr>
<th>language</th>
<th>
中文:zh_cn(默认值)
英文:en_us
</th>
</tr>
<tr>
<th> category </th>
<th>评测题型,可选值:
read_syllable(单字,汉语专有) read_word(词语)(默认值) read_sentence(句子)
</tr>
<tr>
<th>result_level</th>
<th>评测结果等级
完整:complete(默认值) 精简:plain(评测返回结果将只有总分)
</tr>
<tr>
<th>vad_bos</th>
<th>前端点超时
5000(豪秒)(默认值)
</tr>
<tr>
<th>vad_eos</th>
<th>后端点超时
1800(豪秒)(默认值)
</tr>
<tr>
<th>speech_timeout</th>
<th>评测超时
60000(豪秒)(默认值)
</tr>
</table>
示例代码
var iflyEva = api.require('iflyEva');
iflyEva.config({
values:[{key:'',value:''}]
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
startListening
开始评测,同时只能进行一路会话,这次会话没有结束不能进行下一路会话,否则会报错
startListening(params,callback(ret))
params
data:
- 类型:字符串类型
- 描述:评测的试题
params:
- 类型:字符串类型
- 描述:(可选项)评测的参数
- 默认:空
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status:true //布尔类型;是否成功
}
示例代码
var iflyEva = api.require('iflyEva');
iflyEva.startListening({
data:''
},function(ret){
alert(JSON.stringify(ret));
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
stopListening
停止录音,调用此方法会停止录音,并开始进行语音识别
stopListening()
示例代码
var iflyEva = api.require('iflyEva');
iflyEva.stopListening();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
cancel
取消本次会话
cancel()
示例代码
var iflyEva = api.require('iflyEva');
iflyEva.cancel();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
addEventListener
添加监听
addEventListener(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
eventType:'onVolumeChanged',
volume:0 //数字类型;音量; 仅在eventType为 onVolumeChanged 时回调
errorCode:{ //json对象;错误信息; 仅在eventType为 onCompleted 时回调
errorCode:0,//数字类型;错误码
errorType:0,//数字类型;错误码类型(仅iOS支持)
errorDesc:'',//字符串类型;错误描述
},
results:'',//字符串类型;评测结果;仅在eventType为 onResults 时回调
isLast:true,//布尔类型;是否最后一条结果;仅在eventType为 onResults 时回调
}
- eventType
- onVolumeChanged 音量回调,当调用了
startListening
函数之后,如果没有发生错误则会回调此函数。如果发生错误则回调onCompleted - onBeginOfSpeech 开始录音回调,当调用了
startListening
函数之后,如果没有发生错误则会回调此函数。如果发生错误则回调onCompleted:函数 - onEndOfSpeech 停止录音回调,当调用了
stopListening
函数或者引擎内部自动检测到断点,如果没有发生错误则回调此函数,如果发生错误则回调onCompleted - onCancel 正在取消(仅iOS支持)
- onCompleted 评测错误回调,在进行语音评测过程中的任何时刻都有可能回调此函数,你可以根据errorCode进行相应的处理.当errorCode没有错误时,表示此次会话正常结束,否则,表示此次会话有错误发生。特别的当调用
cancel
函数时,引擎不会自动结束,需要等到回调此函数,才表示此次会话结束。在没有回调此函数之前如果重新调用了startListenging
函数则会报错误 - onResults 评测结果回调,在评测过程中可能会多次回调此函数,你最好不要在此回调函数中进行界面的更改等操作,只需要将回调的结果保存起来
示例代码
- onVolumeChanged 音量回调,当调用了
var iflyEva = api.require('iflyEva');
iflyEva.addEventListener(function(ret) {
alert(JSON.stringify(ret));
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
destroy
销毁评测对象
destroy(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status:true //布尔类型;是否成功
}
示例代码
var iflyEva = api.require('iflyEva');
iflyEva.destroy(function(ret){
alert(JSON.stringify(ret));
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本