1. 语音评测

语音评测(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 评测语种,可选值:
en_us(英语)、zh_cn(汉语)
category 评测题型,可选值:
read_syllable(单字,汉语专有)、read_word(词语)、
read_sentence(句子)、read_chapter(篇章)
text_encoding 上传的试题编码格式,可选值:
gb2312、utf-8。
当进行汉语评测时,必须设置成utf-8,
建议所有试题都使用utf-8编码
vad_bos 前端点超时,默认5000ms
vad_eos 后端点超时,默认1800ms
speech_timeout 录音超时,当录音达到时限将自动触发
vad停止录音,默认-1(无超时)
result_level 评测结果等级,可选值:
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();
                    }
                }

评测试题和结果格式及字段含义详见 语音评测试题格式及结果说明 文档。

其它常见问题请参见 科大讯飞语音评测 FAQ 文档。

Copyright © iflytek.com 2018 all right reserved,powered by Gitbook该文件修订时间: 2018-07-13 09:08:20

results matching ""

    No results matching ""