В настоящее время я пытаюсь заставить свой java-код (используя eclipse) выполнять некоторую функцию, если сказано что-то определенное. Я использую библиотеки Sphinx4, и это то, что у меня сейчас есть:
То, что я хотел бы сделать, находится в строке, где написано:
IF (TRUE) someFunction();
состоит в том, чтобы запустить функцию, если моя речь звучит как «Привет, компьютер», «Привет, Джарвис», «Доброе утро, компьютер» или «Доброе утро, Джарвис». Или, другими словами, запустите функцию, если речь соответствует строке кода «public ‹ приветствие >» в файле .gram. Еще более конкретно, верните «приветствовать», если моя речь соответствует этому грамматическому правилу. Извините, если это не имеет смысла...
Вот мой файл listener.java:
package speechRecognition;
import java.io.File;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import edu.cmu.sphinx.frontend.util.Microphone;
import edu.cmu.sphinx.recognizer.Recognizer;
import edu.cmu.sphinx.result.Result;
import edu.cmu.sphinx.util.props.ConfigurationManager;
public class Listener {
public void someFunction(){
System.out.println("Did Something");
}
public static void main(String[] args) {
ConfigurationManager cm;
if (args.length > 0) { cm = new ConfigurationManager(args[0]);
} else { cm = new ConfigurationManager(Listener.class.getResource("configurations.config.xml")); }
Recognizer recognizer = (Recognizer) cm.lookup("recognizer");
recognizer.allocate();
Microphone microphone = (Microphone) cm.lookup("microphone");
if (!microphone.startRecording()) {
System.out.println("Cannot start microphone.");
recognizer.deallocate();
System.exit(1);
}
while (true) {
Result result = recognizer.recognize();
if (result != null) {
String resultText = result.getBestFinalResultNoFiller();
if (resultText != "" && resultText != null) {
IF (TRUE) someFunction();
}
} else {
System.out.println("I can't hear what you said.\n");
}
}
}
}
А вот и мой Dictionary.gram:
#JSGF V1.0;
grammar dictionary;
public <greet> = (Hello | Good Morning) (Jarvis | Computer);