以下是最近使用到的一個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 |
上傳的試題編碼格式,可選值:gb2312、utf-8。當進行漢語評測時,必須設置成utf-8,建議所有試題都使用utf-8編碼 |
是 |
vad_bos |
前端點超時,默認5000ms |
否 |
vad_eos |
後端點超時,默認1800ms |
否 |
speech_timeout |
錄音超時,當錄音達到時限將自動觸發vad停止錄音,默認-1(無超時) |
否 |
result_level |
評測結果等級,可選值:plain、complete,默認爲complete |
否 |
b.上傳評測試題和錄音
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
// 首先創建一個評測監聽接口 private EvaluatorListener mEvaluatorListener = new EvaluatorListener()
{ // 結果回調,評測過程中可能會多次調用該方法,isLast爲true則爲最後結果 public void onResult(EvaluatorResult result, boolean isLast)
{} // 出錯回調 public void onError(SpeechError error) {} // 開始說話回調 public void onBeginOfSpeech() {} // 說話結束回調 public void onEndOfSpeech() {} // 音量回調 public void onVolumeChanged( int volume)
{} // 擴展接口,暫時沒有回調 public void onEvent( int eventType, int
arg1, int
arg2, Bundle obj) {} }; // 然後設置評測試題、傳入監聽器,開始評測錄音。evaText爲試題內容,試題格式詳見《語音 // 評測參數、結果說明文檔》,第二個參數爲擴展參數,請設置爲null mSpeechEvaluator.startEvaluating(evaText, null , mEvaluatorListener); |
錯誤碼 |
錯誤值 |
含義 |
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包中的源代碼。