Android百度語音識別中的若干問題

應用場景是離在線語音識別V2.1.20
1.集成百度語音識別demo後一直處於麥克風啓動中

  • 原因1:無法加載百度語音識別的so庫

    應用中會使用其他依賴庫,例如用AS用了

compile 'pl.droidsonroids.gif:android-gif-drawable:1.2.2'

這個依賴庫中包含了好幾個平臺的so,所以加載非armeabi平臺時會找不到so,所以用gradle依賴時要注意,如圖(遇到此種情況請重新打包生成依賴包)

這裏寫圖片描述

  • 原因2:麥克風被其它應用佔用

    請檢查是它應用是否佔用麥克風或者麥克風權限是否打開

2.ErrorCode爲5 ERROR_CLIENT 客戶端調用錯誤

解決方法:不要在 onResults中直接調用speechRecognizer.startListening
或者speechRecognizer.stopListening,因爲上一輪識別沒有完全結束

3.怎樣實現識別有結果後實現新一輪的監聽

怎樣在onResults後實現新一輪的監聽,解決方案如下:

new Handler().postDelayed(new Runnable() {
    public void run() {
        mBaiduSpeechUtil.startRecog();
    }
}, 2000);

4.最後附上V2.1.20語音識別示例,語音識別採用util的形式,調用方法很簡單

BaiduSpeechUtil mBaiduSpeechUtil = null;
mBaiduSpeechUtil = new BaiduSpeechUtil(this, new RecogResultListener() {

    @Override
    public void onRecogSuccess(final String result) {
        Log.i(TAG, "recogResult" + result);
        // 延遲開啓,等待上個識別進程結束
        new Handler().postDelayed(new Runnable() {
               public void run() {
                      mBaiduSpeechUtil.startRecog();
               }
         }, 2000);  
    }

    @Override
    public void onRecogFailure(String error) {
        Log.i(TAG, "error:" + error);
    }
});
mBaiduSpeechUtil.startRecog();

demo下載地址:http://download.csdn.net/detail/jianiuqi/9679180

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