iflyEva

立即使用

概述

本模块封装了讯飞SDK的语音评测功能,语音评测(Speech Evaluator)通过智能语音技术自动对发音水平进行评价、发音错误、缺陷进行定位和问题分析。目前评音评测提供汉语、英语两种语言的评测,支持单字(汉语专有)、词语、句子、篇章朗读等题型。

使用此模块之前必须先配置 config 文件,配置方法如下:

  • 名称:iflyEva
  • 参数:appId
  • 配置示例:
  <feature name="iflyEva">
    <param name="appId" value="123ab67" />
  </feature>

讯飞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 评测结果回调,在评测过程中可能会多次回调此函数,你最好不要在此回调函数中进行界面的更改等操作,只需要将回调的结果保存起来

      示例代码

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及更高版本