【分享】有關於一個語音評測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包中的源代碼。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章