【分享】有关于一个语音评测Andriod版SDK的使用指南

以下是最近使用到的一个SDK语音评测方面的开发指南,仅供大家参考。


这个SDK目前具备的语音评测功能,包括汉语、英语两种语言的评测,支持单字(汉语专有)、词语和句子朗读三种题型,通过简单地接口调用就可以集成到您的应用中。语音评测的使用主要有三个步骤:【SDK使用的是中国移动灵犀云智能语音平台的】


a.创建对象和设置参数


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// 创建评测对象
SpeechEvaluator mSpeechEvaluator = SpeechEvaluator.createEvaluator(
IseDemoActivity.this,null);
// 设置评测语种
mSpeechEvaluator.setParameter(SpeechConstant.LANGUAGE,"en_us");
// 设置评测题型
mSpeechEvaluator.setParameter(SpeechConstant.ISE_CATEGORY,"read_word");
// 设置试题编码类型
mSpeechEvaluator.setParameter(SpeechConstant.TEXT_ENCODING,"utf-8");
// 设置前、后端点超时
mSpeechEvaluator.setParameter(SpeechConstant.VAD_BOS, vad_bos);
mSpeechEvaluator.setParameter(SpeechConstant.VAD_EOS, vad_eos);
// 设置录音超时,设置成-1则无超时限制
mSpeechEvaluator.setParameter(SpeechConstant.KEY_SPEECH_TIMEOUT,"-1");
// 设置结果等级,不同等级对应不同的详细程度
mSpeechEvaluator.setParameter(SpeechConstant.RESULT_LEVEL,"complete");

 

可通过setParameter设置的评测相关参数说明如下:

参数

说明

是否必需

language

评测语种,可选值:en_us(英语)、zh_cn(汉语)

category

评测题型,可选值:read_syllable(单字,汉语专有)、read_word(词语)、read_sentence(句子)

text_encoding

上传的试题编码格式,可选值:gb2312utf-8。当进行汉语评测时,必须设置成utf-8,建议所有试题都使用utf-8编码

vad_bos

前端点超时,默认5000ms

vad_eos

后端点超时,默认1800ms

speech_timeout

录音超时,当录音达到时限将自动触发vad停止录音,默认-1(无超时)

result_level

评测结果等级,可选值:plaincomplete,默认为complete


b.上传评测试题和录音 
 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// 首先创建一个评测监听接口
privateEvaluatorListener mEvaluatorListener =newEvaluatorListener() {
    // 结果回调,评测过程中可能会多次调用该方法,isLast为true则为最后结果
    publicvoidonResult(EvaluatorResult result,booleanisLast) {}
    // 出错回调
    publicvoidonError(SpeechError error) {}
    // 开始说话回调
    publicvoidonBeginOfSpeech() {}
    // 说话结束回调
    publicvoidonEndOfSpeech() {}
    // 音量回调
    publicvoidonVolumeChanged(intvolume) {}
    // 扩展接口,暂时没有回调
    publicvoidonEvent(inteventType,int arg1, int arg2, Bundle obj) {}
};
 
// 然后设置评测试题、传入监听器,开始评测录音。evaText为试题内容,试题格式详见《语音
// 评测参数、结果说明文档》,第二个参数为扩展参数,请设置为null
mSpeechEvaluator.startEvaluating(evaText,null, mEvaluatorListener);



调用startEvaluating即开始评测录音,读完试题内容后可以调用stopEvaluating停止录音,也可以在一段时间后由SDK自动检测vad并停止录音。当评测出错时,SDK会回调onError方法抛出SpeechError错误,通过SpeechError的getErrorCode()方法可获得错误码,常见的错误码详见附录和下表:


错误码

错误值

含义

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

存在未登录词,即引擎中没有该词语的信息


c.解析测评结果

SDK通过onResult回调抛出xml格式的评测结果,结果格式及字段含义详见《Speech Evaluation API Documents》文档(含于所下载的SDK包内),具体的解析过程可参考demo工程com.iflytek.ise.result包中的源代码。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值