Java sphinx4仅识别自定义单词

Java sphinx4仅识别自定义单词,java,voice-recognition,cmusphinx,Java,Voice Recognition,Cmusphinx,我正在用java中的Sphinx4开发一个程序 我想减少声学模型和语法,使之非常简单和简洁,适合我的使用 我的用途就是理解几个词,逐字辨认 例如,单词应该是{man,bye,good,yo} 当我说“人”时,我希望程序能立即识别出它是“人” 一旦程序识别出一个单词,程序就不应该等待任何其他单词 有人能给我一个文档或一个示例/演示,我可以参考它来创建这样一个东西吗 这是我到目前为止编写的代码 private static void recognizeWord(LiveSpeechRecognize

我正在用java中的Sphinx4开发一个程序

我想减少声学模型和语法,使之非常简单和简洁,适合我的使用

我的用途就是理解几个词,逐字辨认

例如,单词应该是{man,bye,good,yo} 当我说“人”时,我希望程序能立即识别出它是“人”

一旦程序识别出一个单词,程序就不应该等待任何其他单词

有人能给我一个文档或一个示例/演示,我可以参考它来创建这样一个东西吗

这是我到目前为止编写的代码

private static void recognizeWord(LiveSpeechRecognizer recognizer) {
    String[] words = {"man", "bye", "good", "yo"};
    System.out.println("RECOGNIZING A WORD. AVAILABLE WORDS: " + Arrays.toString(words));

    recognizer.startRecognition(true);

    SpeechResult result;
    while ((result = recognizer.getResult()) != null ) {
        System.out.format("The word is: %s\n", recognizer.getResult().getResult().toString());
    }

    recognizer.stopRecognition();
}
public static void main(String[] args) throws Exception {

    Configuration configuration = new Configuration();

    // Set path to acoustic model.
    configuration.setAcousticModelPath("resource:/edu/cmu/sphinx/models/en-us/en-us");
    // Set path to dictionary.
    configuration.setDictionaryPath("resource:/edu/cmu/sphinx/models/en-us/cmudict-en-us.dict");
    // Set language model.
    configuration.setLanguageModelPath("resource:/edu/cmu/sphinx/models/en-us/en-us.lm.bin");

    LiveSpeechRecognizer recognizer = new LiveSpeechRecognizer(configuration);

    recognizeWord(recognizer);
}

您可以这样编写JSGF语法,如中所述:

#JSGF V1.0;

grammar hello;
public <greet> = man | bye | good | yo;
public static void main(String[] args) throws Exception {

    Configuration configuration = new Configuration();
    configuration.setAcousticModelPath("resource:/edu/cmu/sphinx/models/en-us/en-us"); 
    configuration.setDictionaryPath("resource:/edu/cmu/sphinx/models/en-us/cmudict-en-us.dict");        
    configuration.setGrammarPath("file:src");
    configuration.setGrammarName("hello");
    configuration.setUseGrammar(true);

    LiveSpeechRecognizer recognizer = new LiveSpeechRecognizer(configuration);

    recognizer.startRecognition(true);

    SpeechResult result;
    while ((result = recognizer.getResult()) != null ) {
        System.out.format("The word is: %s\n", recognizer.getResult().getResult().toString());
    }

    recognizer.stopRecognition();
}