Я написал приложение на Java, которое использует API CloudGarden для анализа грамматик JSAPI, возврата тегов из правил грамматики и последующей обработки этих тегов соответствующим образом. Проблема с API CloudGarden заключается в его зависимости от Windows. Мне нужна кроссплатформенная библиотека, которая может выполнять ту же задачу. Мне не нужен ни синтез речи, ни распознавание речи. По сути, программе передается строка, содержащая транскрибированную речь. Мне нужно проанализировать эту строку в моих файлах грамматики, чтобы получить теги действий (текст между { } в правиле грамматики JSGF). Затем моя программа использует полученные теги действий для выполнения других функций.
Я искал бесплатную библиотеку, которая может анализировать файлы грамматики JSGF, соответствующие JSAPI. Единственной реальной альтернативой, которую я нашел, был механизм распознавания речи Sphinx/CMUSphinx. Я изучал Sphinx, который привел меня к классу ActionTagsParser в их документации. Я не могу понять, как разобрать грамматику и получить теги. Может ли кто-нибудь указать мне в правильном направлении или объяснить это мне?
Спасибо, Ной
РЕДАКТИРОВАТЬ:
Нужно ли настраивать Sphinx для анализа грамматик? В следующем коде RuleParse всегда оценивается как NULL. RuleGrammar и текст допустимы.
try {
if(recognizer == null){
recognizer = new BaseRecognizer();
recognizer.allocate();
}
rg.setEnabled(true);
recognizer.commitChanges();
RuleParse p = rg.parse(text, null);
if (p == null) {
return null;
}
return p.getTags();
} catch (Exception ex) {
ex.printStackTrace();
return null;
}