如何在Android上使用语音搜索和VoiceRecognition?

时间:2011-04-01 13:40:00

标签: android speech-recognition voice-recognition

我想在我的应用程序中使用VoiceRecognition,但此应用程序需要安装语音搜索。

我不希望用户必须安装另一个其他应用程序然后返回我的应用程序来运行它。我希望从我的应用程序安装语音搜索,或者我想找到关于如何在我的应用程序中添加语音搜索功能的教程。

我该怎么办?

5 个答案:

答案 0 :(得分:4)

使用RecognizerIntent激活设备上安装的语音识别器

答案 1 :(得分:0)

这可以通过几个简单的步骤完成:

  1. 在您的活动中创建某种按钮,并将以下代码放在其OnClickListener中:

    //将MY_REQUEST_CODE定义为活动中的int常量...我在10000s中使用int startVoiceRecognitionActivity(MY_REQUEST_CODE,“说些什么。”);

  2. 覆盖活动中的onActivityResult()方法。在实现中,当requestCode参数与MY_REQUEST_CODE常量匹配时,放置switch块或if语句以运行某些逻辑。类似于以下的逻辑将为您提供语音识别活动认为听到的结果列表:

    ArrayList keywordMatches = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);

  3. 您可以从识别器获得0或多个匹配项。务必处理所有案件。

  4. 在某些情况下,语音识别器甚至可能不在设备上。尝试处理调用startVoiceRecognitionActivity()的地方。

答案 2 :(得分:0)

答案 3 :(得分:0)

答案 4 :(得分:0)

这是处理语音搜索的简单方法

第1步 点击按钮

调用此方法
public void startVoiceRecognition() {
    Intent intent = new Intent("android.speech.action.RECOGNIZE_SPEECH");
    intent.putExtra("android.speech.extra.LANGUAGE_MODEL", "free_form");
    intent.putExtra("android.speech.extra.PROMPT", "Speak Now");
    this.mContainerActivity.startActivityForResult(intent, 3012);
}

第2步 覆盖onActivityResult方法

@ Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == 3012 && resultCode == RESULT_OK) {
        ArrayList < String > matches = data.getStringArrayListExtra("android.speech.extra.RESULTS");
        String result= matches.get(0);
        //Consume result 
        edittext.setText(result);
    }
}

多数,完成