我尝试在我的应用中添加语音识别功能。但遗憾的是,我找不到添加通用占位符的方法。例如,我想说“我正在寻找stackoverflow”然后我使用这个语法:
<grammar root="start" {...}>
<rule id="start" scope="public">
I am
<one-of>
<item> looking for</item>
<item> listening to</item>
</one-of>
</rule>
<!-- here could be any word -->
</grammar>
我的问题是,如何实现“stackoverflow”的搜索。如果我使用这种语法,识别器总会找到“我正在寻找”。太棒了,但重要的一句话不见了。 如果我没有使用任何语法,那么我会得到类似“我和四个牛排溢出”的东西。在这里,我得到了重要的一句话,但不能用规则约束“我是”和“寻找”。
我的需要当然是“我正在寻找牛排溢出”。
我怎么能实现这个目标?提前谢谢!
答案 0 :(得分:1)
没有办法识别“任何单词”只是因为你不能严格定义“任何单词”。 “fasdfewqrqew”是否算作您想要识别的单词?我肯定不会。
我确定你想要识别某个单词列表,可能很大。然后你可以在SRGS语法中列出所有这些。您可以找到包含频繁单词here的单词列表 将列表转换为语法。
如果你想增加列表覆盖率,你也可以在语法中输入音节序列而不是单词列表。您可以从CMUSphinx project的CMUDict中提取语音词典中的音节列表。这将为您提供更少变体的变体,但准备在结果中获取无意义的单词。