JSpeech 语法格式允许用户在大括号中为单独的字符串指定标签,如下所示:
<jump> = jump { primitive jump } [up] |
jump [to the] (left { primitive jump_left } |right { primitive jump_right } );
或者
<effects> = nothing happens { NOTHING_HAPPENS } | ( [will] die | dies ) { OBJECT_DESTRUCTION } | (get|gets) new (coin|coins) { COIN_INCREASE };
参考规范的第 4.6.1 节更全面地描述了使用标签。
在Sphinx4 中,您可以使用RuleParsegetTags()
中的方法捕获这些标签。因此,如果用户说“向左跳转”,则将返回以下标签“原始 jump_left ”
现在,我想做完全相反的事情——给定标签,我想将它与字符串匹配。所以对于“ NOTHING_HAPPENS ”,我想得到“什么都没有发生”或对于“ OBJECT_DESTRUCTION ”,一个包含所有可能选项的数组:“将死,死,死”。
有没有这样的方法可以以这种方式解析语法文件,还是我必须对其进行硬编码?