2017-03-23 191 views
1

我正在使用SpeechRecognizer。問題是如果沒有活動的互聯網連接,SpeechRecognizer將發出錯誤SpeechRecognizer.ERROR_NETWORKSpeechRecognizer.ERROR_SERVERAndroid上的Offline SpeechRecognizer無法正常工作

這是我RecognizerIntent

final Intent recognizerIntent; 
    recognizerIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); 
    recognizerIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_PREFERENCE, "en"); 
    recognizerIntent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE, this.getPackageName()); 
    recognizerIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); 
    recognizerIntent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS, 5); 
    recognizerIntent.putExtra(RecognizerIntent.EXTRA_PARTIAL_RESULTS, true); 

    recognizerIntent.putExtra(RecognizerIntent.EXTRA_PREFER_OFFLINE, true); 

我把recognizerIntent.putExtra(RecognizerIntent.EXTRA_PREFER_OFFLINE, true);

,但沒有運氣。它也會拋出同樣的錯誤。

我經常得到這兩個錯誤。

  1. SpeechRecognizer.ERROR_RECOGNIZER_BUSY
  2. SpeechRecognizer.ERROR_NO_MATCH

請幫助我。

回答

0

首先,您需要確定是否已將脫機語言包放到設備上安裝的EXTRA_LANGUAGE_PREFERENCE中。

爲了能夠在支持的設備上離線語音輸入,請按以下步驟操作:

  • 進入設置
  • 點擊「語言和輸入」
  • 屏幕上的鍵盤
  • 選擇谷歌語音輸入
  • 選擇離線語音識別
  • 安裝所需的語言

如果仍不能脫機工作,嘗試將EXTRA_LANGUAGE_PREFERENCE值更改爲例如一些更具體的,"en-US"(該訣竅對我來說)

還有,如果你想告訴SpeechRecognizer至極的語言應該認識到,我想你應該使用EXTRA_LANGUAGE參數,而不是EXTRA_LANGUAGE_PREFERENCE

希望這將有助於