多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# 语音评测 语音评测(**SpeechEvaluator**)通过智能语音技术自动对发音水平进行评价、发音错误、缺陷进行定位和问题分析。目前评音评测提供汉语、英语两种语言的评测,支持单字(汉语专有)、词语 和句子朗读三种题型。 评测的参数主要有 * 语言(LANGUAGE) * 题型(ISE_CATEGORY) * 结果等级(RESULT_LEVEL) * 试题内容 ~~~ // 设置评测语种 mSpeechEvaluator.setParameter(SpeechConstant.LANGUAGE, language); // 设置评测题型 mSpeechEvaluator.setParameter(SpeechConstant.ISE_CATEGORY, category); // 设置结果等级,不同等级对应不同的详细程度 mSpeechEvaluator.setParameter(SpeechConstant.RESULT_LEVEL, resultLevel); // evaText 为试题内容 mSpeechEvaluator.startEvaluating(evaText, null, mEvaluatorListener); ~~~ 可通过setParameter设置的评测相关参数说明如下: |参数|说明|是否必需| | :---: | :---|:---:| |language|评测语种,可选值:<br>en_us(英语)、zh_cn(汉语)|是| |category|评测题型,可选值:<br>read_syllable(单字,汉语专有)、read_word(词语)、<br>read_sentence(句子)、read_chapter(篇章)|是| |text_encoding|上传的试题编码格式,可选值:<br>gb2312、utf-8。<br>当进行汉语评测时,必须设置成utf-8,<br>建议所有试题都使用utf-8编码|是| |vad_bos|前端点超时,默认5000ms|否| |vad_eos|后端点超时,默认1800ms|否| |speech_timeout|录音超时,当录音达到时限将自动触发<br>vad停止录音,默认-1(无超时)|否| |result_level|评测结果等级,可选值:<br>plain、complete,默认为complete|否| 与评测相关的错误码如下: |错误码|数值|含义| | :---: | :---: | :---: | |MSP_ERROR_ASE_EXCEP_SILENCE|11401|无语音或音量太小| |MSP_ERROR_ASE_EXCEP_SNRATIO|11402|信噪比低或有效语音过短| |MSP_ERROR_ASE_EXCEP_PAPERDATA|11403|非试卷数据| |MSP_ERROR_ASE_EXCEP_PAPERCONTENTS|11404|试卷内容有误| |MSP_ERROR_ASE_EXCEP_NOTMONO|11405|录音格式有误| |MSP_ERROR_ASE_EXCEP_OTHERS|11406|其他评测数据异常,包括错读、漏读、恶意录入、试卷内容等错误| |MSP_ERROR_ASE_EXCEP_PAPERFMT|11407|试卷格式有误| |MSP_ERROR_ASE_EXCEP_ULISTWORD|11408|存在未登录词,即引擎中没有该词语的信息| 音频流评测 在上述参数的基础上添加参数设置: ~~~ //通过writeaudio方式直接写入音频时才需要此设置 mIse.setParameter(SpeechConstant.AUDIO_SOURCE,"-1"); ~~~ 以writeaudio的方式写入音频文件进行评测: ~~~ int ret = mIse.startEvaluating(evaText, null, mEvaluatorListener); //在startEvaluating接口调用之后,加入以下方法,即可通过直接 //写入音频的方式进行评测业务 if (ret != ErrorCode.SUCCESS) { showTip("识别失败,错误码:" + ret); } else { showTip(getString(R.string.text_begin_ise)); byte[] audioData = FucUtil.readAudioFile(IseDemo.this,"isetest.wav"); if(audioData != null) { //防止写入音频过早导致失败 try{ new Thread().sleep(100); }catch (InterruptedException e) { Log.d(TAG,"InterruptedException :"+e); } mIse.writeAudio(audioData,0,audioData.length); mIse.stopEvaluating(); } } ~~~ **评测试题和结果格式及字段含义详见 [语音评测试题格式及结果说明](http://www.kancloud.cn/iflytek_sdk/ise_protocol/325501) 文档。** **其它常见问题请参见 [科大讯飞语音评测 FAQ](http://www.kancloud.cn/iflytek_sdk/faq_ise/326200) 文档。**