我用 Java 编写了一个应用程序,它利用 CloudGarden API 来解析 JSAPI 语法,从语法规则返回标签,然后相应地处理这些标签。CloudGarden API 的问题在于它对 Windows 的依赖。我需要一个可以执行相同任务的跨平台库。我不需要语音合成,也不需要语音识别。本质上,一个字符串被传递给包含一些转录语音的程序。我需要针对我的语法文件解析这个字符串以检索动作标签(JSGF 语法规则中 { } 之间的文本)。然后我的程序使用检索到的动作标签来执行其他功能。
我一直在寻找一个可以解析符合 JSAPI 的 JSGF 语法文件的免费库。我发现的唯一现实的替代方案是语音识别引擎 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;
}