如何在Android中使用Pocketsphinx进行多关键字激活而无需进入菜单

时间:2018-09-08 07:10:12

标签: java android speech-recognition pocketsphinx pocketsphinx-android

我希望Pocketsphinx监听某些关键字并执行相应的操作,而不是像他们的演示应用程序那样进入菜单。我有三个关键字

private static final String KEYPHRASE1 = "good morning";
private static final String KEYPHRASE2 = "good evening";
private static final String KEYPHRASE3 = "good night";

这是我的onPartialResult()

 @Override
public void onPartialResult(Hypothesis hypothesis) {
    if (hypothesis == null)
        return;

    String text = hypothesis.getHypstr();
   }

我想在识别出三个关键字时直接调用一些方法。我也不知道是否需要像演示应用程序一样使用switchSearch()KWS_SEARCH。 我是android的新手,所以我花了几天的时间寻找答案。有人请帮忙。此语音识别对于我的应用程序是必需的。

1 个答案:

答案 0 :(得分:1)

您问了两个问题,所以我将分别回答两个问题。

  • 我想在识别三个关键字时直接调用一些方法
    如果查看demo app's source code,您会注意到有两个函数可以控制假设并执行假设(已识别的关键字),即onPartialResult()onResult。前者用于获取有关正在说出的单词的快速更新,而后者则用于在停止识别器之后(即在说完所有关键字并且用户停止了识别器之后)获得预测。
    因此,首先需要确定要使用onPartialResult()还是onResult()。之后,请注意,这两种方法都会对识别的文本执行某些操作。 onPartialResult()呼叫switchSearch(),而onResult()呼叫makeText()。对于您自己的情况,您也想在识别三个关键字时调用某个函数。在同一个类中创建一个函数,然后像在程序中其他位置正常调用该函数一样调用它!
  • 我也不知道是否需要像在演示应用程序中那样使用switchSearch()和KWS_SEARCH。
    在这种情况下,您应该查看the answer suggested by Nikolay Shmyrev in the comments above.,其中明确说明了如何在Android中识别多个关键字。