我正在使用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);
}
答案 0 :(得分:0)
你可以像tutorial中所描述的那样编写JSGF语法:
#JSGF V1.0;
grammar hello;
public <greet> = man | bye | good | yo;
将其放在名为src
的{{1}}文件夹中。
你可以像这样使用它:
hello.jsgf