java - 听不止一个KeyphraseSearch

标签 java android speech-recognition cmusphinx

<分区>

我一直在创建一个 Android 应用程序,当它使用以下配置收听一个 KeyPhrase 时,它​​可以正常工作:

private static final String KWS_SEARCH = "wakeup";
private static final String KEYPHRASE = "oh mighty computer";

    recognizer = SpeechRecognizerSetup.defaultSetup()
            .setAcousticModel(new File(modelsDir, "hmm/en-us-semi"))
            .setDictionary(new File(modelsDir, "dict/cmu07a.dic"))
            .setKeywordThreshold(1e-20f)
            .getRecognizer();

    recognizer.addListener(this);

    recognizer.addKeyphraseSearch(KWS_SEARCH, KEYPHRASE);

我怎样才能添加第二个被识别的关键词? 我尝试了以下方法:

private static final String KWS_SEARCH2 = "up";
private static final String KEYPHRASE2 = "hello my name is";

recognizer.addKeyphraseSearch(KWS_SEARCH2, KEYPHRASE2);

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

    String text = hypothesis.getHypstr();

    if (text.equals(KWS_SEARCH))
        restartRecognizer(KWS_SEARCH);
    else if (text.equals(KWS_SEARCH2))
        restartRecognizer(KWS_SEARCH2);
}

谢谢你的帮助!

最佳答案

您可以使用以下形式的关键短语列表在 Assets 中创建文件(每行一个,具有以下阈值):

 oh mighty computer /1e-40/
 hello my name is /1e-38/

并使用 addKeywordSearch 创建一个搜索,它加载一个文件而不是 addKeyphraseSearch

关于java - 听不止一个KeyphraseSearch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27645675/

相关文章:

java - 为什么 Java 文件必须与其公共(public)类同名?

android - 如何在Xamarin Studio中调试小部件应用程序?

android - 必要时在默认通知声音上播放我的声音

audio - 使用语音框架iOS从音频文件生成字幕

android - 我应该在我的应用程序中使用 android 语音识别器来收集数据吗?

java - 如何以编程方式获取在 Eclipse 中打开的文件的元数据?

JavaFX应用程序不在浏览器上运行,它抛出错误?

java - EJB3 SQL注入(inject)

安卓泄露窗口

macos - NSSpeechRecognizer 委托(delegate)从未调用过