【问题标题】:Sphinx4: recognize() won't run the second timeSphinx4:recognize() 不会第二次运行
【发布时间】:2013-08-13 09:38:28
【问题描述】:

我正在使用 sphinx4 暂停线程,直到说出特定的关键字。这第一次效果很好,但第二次我需要暂停线程,

recognizer.recognize() 

似乎没有运行,应用程序刚刚开始发送垃圾邮件“开始讲话...”。

这里是暂停线程的函数:

public synchronized void waitForKeyword(String in){


    if (!microphone.startRecording()) {
        System.out.println("Cannot start microphone.");
        recognizer.deallocate();
        System.exit(1);
    }


    Result result = null;

    while(true) {

        if(microphone.isRecording()) {
            System.out.println("Start speaking...\n");  
            result = recognizer.recognize();
        }else{
            microphone.startRecording();
        }

        if (result != null) {
            String resultText = result.getBestFinalResultNoFiller();
            System.out.println("You said: " + resultText + '\n');

            if(resultText.equals(in)){                      
                microphone.stopRecording();
                speak("At your service!");
                break;
            }

        }

    }


}

我做错了什么,我该如何解决这个问题?

干杯!

【问题讨论】:

  • 提供有关操作系统和 JDK 的信息。确保您使用的是 Oracle JDK,其他人无法正常使用麦克风。
  • Windows 7 家庭高级版 64 位。 Orcale JDK1.7.0_17.

标签: java speech-recognition keyword sphinx4


【解决方案1】:

您必须在第一次使用后致电microphone.clear()。使用 OpenJDK 为我工作。我正在开发一个演示此用例的演示应用程序,它应该包含在 Sphinx4 的下一个版本中,敬请期待。

【讨论】:

    猜你喜欢
    • 2017-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-28
    • 2019-11-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多