應用場景是離在線語音識別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();