2011-05-30 62 views
0

softkeyboard我可以選擇語音到文本,當我說話時顯示一個建議列表,當我選擇一個文本時,我需要用這個文本填寫我的editText,我該怎麼做到這一點我有看到SpeechRecognizer類,我不知道我可以利用這一點,請大家幫我安卓語音文本處理

SpeechRecognizer rec=SpeechRecognizer.createSpeechRecognizer(context); 

     RecognitionListener listener = new RecognitionListener() { 

      @Override 
      public void onRmsChanged(float rmsdB) { 


      } 

      @Override 
      public void onResults(Bundle results) { 
       ArrayList<String> voiceResults = results.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION); 


      } 

      @Override 
      public void onReadyForSpeech(Bundle params) { 
       // TODO Auto-generated method stub 

      } 

      @Override 
      public void onPartialResults(Bundle partialResults) { 


      } 

      @Override 
      public void onEvent(int eventType, Bundle params) { 


      } 

      @Override 
      public void onError(int error) { 


      } 

      @Override 
      public void onEndOfSpeech() { 


      } 

      @Override 
      public void onBufferReceived(byte[] buffer) { 


      } 

      @Override 
      public void onBeginningOfSpeech() { 


      } 
     }; 
     rec.setRecognitionListener(listener); 

回答

1

假設你的文本編輯被命名爲「TE」:

public void onResults(Bundle results) { 
    ArrayList<String> voiceResults = results.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION); 
    StringBuilder sb = new StringBuilder(); 
    for(String p: voiceResults) { 
    sb.append(p); 
    sb.append("\n"); } te.setText(sb.toString()); 
    } 

通常情況下,你只關心在第一個結果(即語音結果(0)),因爲這是最可能的匹配,但上面的代碼顯示了所有的他們,所以你可以看到什麼是返回。