2011-06-17 57 views
2

當通過Chrome的HTML 5語音輸入支持使用Google服務器進行語音識別時,每當用戶的語音音頻有6種可能的解釋時,都會得到大致6個結果。當我在我的Android應用程序中執行相同的操作時,我似乎只得到一個。這只是它的方式,或者是否存在一個會導致Android識別器意圖返回多個話語的設置?Android語音識別器可以返回多個匹配嗎?

相關代碼樣品:

/** 
* Fire an intent to start the voice recognition activity. 
*/ 
private void startVoiceRecognitionActivity() 
{ 
    Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); 
    intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, 
      RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); 
    intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Speech reco demo..."); 
    startActivityForResult(intent, REQUEST_CODE); 
} 

/** 
* Handle the results from the voice recognition activity. 
*/ 
@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{ 
    if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) 
    { 
     // Set the current global speech results to this latest session's. 
     ArrayList<String> matches = data.getStringArrayListExtra(
       RecognizerIntent.EXTRA_RESULTS); 

     AndroidApplication andApp = AndroidApplication.getInstance(); 

     andApp.speechRecoResults.setContents(matches); 
    } 

    super.onActivityResult(requestCode, resultCode, data); 
} // onActivityResult() 

更新:我添加以下代碼行至startVoiceRecognitionActivity(),按照| Z | 影子 | Z |該startActivityForResult()調用之前正確的,我現在得到多個話語:

intent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS,5); 

- roschler

回答

2

是的,它可以返回多個話語,我有幾個實現,做這樣的。你能發佈你正在使用的代碼,以便我們可以幫助你更好嗎?

答評論:

是,我可以設置但它返回許多服務器拿起...我通常只是將它設置爲5.檢查我以前的帖子,其中包括我的一個執行代碼。 Voice Recognition as a background service這個禁用Google錄製時彈出的對話框。該行獲取返回結果的數量:intent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS,5)

+0

您是否在Android應用程序代碼中使用「自由格式」語音模型?你通常會收回多少話語? – 2011-06-17 00:58:47

+0

我添加了代碼示例。謝謝。 – 2011-06-17 01:04:08

+0

看到我上面的文章 – 2011-06-17 01:05:17