【问题标题】:Google voice search using RecognizerIntent.ACTION_RECOGNIZE_SPEECH does not perform action使用 RecognizerIntent.ACTION_RECOGNIZE_SPEECH 的 Google 语音搜索不执行操作
【发布时间】:2014-09-09 13:12:07
【问题描述】:

我正在开发一个应用程序,用户可以在其中说出命令并执行它。就像 Google 的“语音搜索”应用程序一样。我想使用一组与语音搜索相关的命令。

我的代码如下:

@Override
public void startVoiceRecognitionActivity() {
    // TODO Auto-generated method stub
    Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
    intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
            RecognizerIntent.LANGUAGE_MODEL_WEB_SEARCH);
    intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Command me");
    startActivityForResult(intent, REQUEST_CODE);
}


@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        switch (requestCode) {
        case REQUEST_CODE: {
            ArrayList<String> matches = data
                    .getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
            ApplicationDebug.printlog("got inside onactivityresult");
            String spokenText = matches.get(0);
            Toast.makeText(getApplicationContext(), spokenText,
                    Toast.LENGTH_LONG).show();
            // super.onActivityResult(requestCode, resultCode, data);
            break;
        }
    }
}

点击某个按钮,我打电话给startVoiceRecognitionActivity()

它正在正确检测语音,但此处未执行操作。我的意思是,如果我说“打开计算器”,它会正确显示文本,但不会打开计算器应用程序。

【问题讨论】:

  • 您必须开发自己的匹配逻辑。也就是说,当spokenText 等于open calculator 时,打开计算器应用程序。语音识别只是从语音到文本的转录,而不是对其进行解释,更不用说基于该解释执行任何操作。
  • 感谢您的回复。是否有任何来自谷歌语音搜索应用程序的 API 可以直接使用,以便我可以获取他们正在使用的操作?
  • 我不能肯定,但我真的很怀疑。
  • 感谢@AlexisPigeon。看来我需要构建整个引擎。

标签: android voice-recognition google-now recognizer-intent google-voice-search


【解决方案1】:

听起来你正在寻找这个:

RecognizerIntent.ACTION_VOICE_SEARCH_HANDS_FREE

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-25
    • 2013-09-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多