2012-03-03 119 views
0

我想制作一个应用程序,它将接受来自用户的命令并将其显示在Edittext(或任何其他容器)中。我正在使用谷歌语音识别,但它显示了一堆句子,引擎听到..我想从所有这些选项中得到正确的一个没有显示列表编辑文本..安卓语音识别应用程序

如果可能,我'我希望能够在连续的句子中这样做(例如,Hi Friend,请来参加会议,你迟到了)。这个你能帮我吗。

感谢提前:)

回答

2

该代码可以是有线到一个“说话”按钮,会收到一个字符串,这是什么有人说最佳匹配。

要启动语音识别活动:

private static final int VOICE_RECOGNITION_REQUEST_CODE = 1; 

private void startVoiceRecognitionActivity() { 
    Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); 
    intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_WEB_SEARCH); 
    intent.putExtra(RecognizerIntent.EXTRA_PROMPT,"Speak Now"); 
    startActivityForResult(intent, VOICE_RECOGNITION_REQUEST_CODE); 
} 

要接收结果:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == VOICE_RECOGNITION_REQUEST_CODE && resultCode == RESULT_OK) { 
     ArrayList<String> matches = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS); 
     if (matches != null && matches.size() > 0) { 
      String spokenText = matches.get(0); 
     } 
    } 
    super.onActivityResult(requestCode, resultCode, data); 
} 
+0

你能帮我做这个。什么是错我的代码。当我在设备上运行它时崩溃。我认为这个问题是在这个代码.. 保护无效onActivityResult(INT requestCode,INT resultCode为,意图数据){ \t \t如果(requestCode == request_code && resultCode为== RESULT_OK) \t \t { \t \t \t ArrayList matches = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS); \t \t \t String option = null; \t \t \t如果(匹配= NULL && matches.size()> 0!) \t \t \t { \t \t \t \t选项= matches.get(0); \t \t \t} \t \t \t et.setText(option); \t \t} \t \t \t \t super.onActivityResult(requestCode,resultCode为,数据); \t} – Shah 2012-03-04 12:23:30

+0

如果发生崩溃,您需要查看LogCat以查看异常情况,以确定崩溃的原因。 – 2012-03-04 12:32:25

+0

先生,我在电话上运行它。我不知道如何看到LogCat。 – Shah 2012-03-04 12:51:26