首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在demo项目中,switchSearch()方法、KWS_SEARCH属性和startListening()方法的参数有什么意义?

在demo项目中,switchSearch()方法、KWS_SEARCH属性和startListening()方法的参数有什么意义?
EN

Stack Overflow用户
提问于 2017-03-15 20:55:45
回答 1查看 334关注 0票数 0

所有的问题都与CMUSphinx官方网站上关于口袋狮身人面像的android演示项目有关。

我不明白switchSearch()方法到底做了什么。方法是使用KWS_SEARCH="wakeup"属性,这个属性有什么用?它不会出现在语法文件(.gram)中。此属性的用途是什么?这个方法将searchNameKWS_SEARCH进行了比较,我不知道为什么。它还作为参数传递给识别器对象上的startListening()方法的KWS_SEARCH。为什么?

我不明白在超时10000ms的情况下如何提高结果。

这是switchSearch()方法:

代码语言:javascript
复制
private void switchSearch(String searchName) {
    recognizer.stop();

    // If we are not spotting, start listening with timeout (10000 ms or 10 seconds).
    if (searchName.equals(KWS_SEARCH))
        recognizer.startListening(searchName);
    else
        recognizer.startListening(searchName, 10000);

    String caption = getResources().getString(captions.get(searchName));
    ((TextView) findViewById(R.id.caption_text)).setText(caption);
}
EN

回答 1

Stack Overflow用户

发布于 2017-03-16 20:22:05

来自Pocketsphinx tutorial

开发人员可以使用不同的语法和语言模型配置多个“搜索”对象,并在运行时切换它们,为用户提供交互式体验。

有不同的可能搜索模式:

  • 关键字-高效地查找关键短语并忽略其他语音。允许配置检测threshold.
  • grammar -根据JSGF语法识别语音。与关键词语法不同,model.
  • allphone不会忽略不在语法中的单词,而是尝试识别它们。
  • ngram/lm-使用某种语言识别自然语音ngram-使用语音语言模型识别音素。每个搜索都有一个名称,可以由一个名称引用,名称是特定于应用程序的。使用ps_set_search函数可以激活之前添加的搜索。

要添加搜索,需要指向描述搜索的语法/语言模型。语法的位置是特定于应用程序的。如果只需要简单的识别,则添加单个搜索或仅使用配置选项配置所需的模式就足够了。

搜索的确切设计取决于您的应用程序。例如,您可能希望首先侦听激活关键字,一旦关键字被识别,就切换到ngram搜索来识别实际的命令。识别命令后,您可以切换到语法搜索以识别确认,然后切换回关键字侦听模式以等待另一个命令。

我不明白switchSearch()方法到底做了什么。方法是使用KWS_SEARCH=的“wakeup”属性,这个属性有什么用呢?

"wakeup“是关键字定位搜索的搜索名称。它是在初始化识别器时添加的。名称可以是任意的,它只是标识搜索。

识别器也会将其作为参数传递给KWS_SEARCH对象上的startListening()方法。为什么?

startListening开始监听命名搜索。

我不明白在超时10000ms的情况下如何提高结果。

它与结果无关,它只是一个用户体验。当我们连续发现一个单词时,我们不需要超时。当我们识别出一个命令时,我们等待10秒,然后返回到定位模式。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42810437

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档