【发布时间】: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