SpeechRecognitionEngine语法与通配符

时间:2014-03-11 22:04:48

标签: c# .net speech-recognition grammar

我们希望使用XML文件作为语法,列出我们系统的所有命令,

然而,其中一个命令将是 "找到用户xxxxxx"其中xxxxx是唯一的数字。

如果在语法xml文件中有一种方法可以创建这个"通配符/搜索项"

2 个答案:

答案 0 :(得分:3)

尝试在grxml文件中使用两个规则的组合。

接受个别数字的第一条规则:

  <rule id="SmallNum" scope="public">
    <one-of>
      <item>One</item>
      <item>Two</item>
      <item>Three</item>
      <item>Four</item>
      <item>Five</item>
      <item>Six</item>
      <item>Seven</item>
      <item>Eight</item>
      <item>Nine</item>
      <item>Zero</item>
    </one-of>
  </rule>

从指定数量的数字建立帐号的第二条规则:

  <rule id="AccountNumber" scope="public">
    <item repeat="0-1">AccountNumber</item>
    <item   repeat="3">
      <ruleref uri="#SmallNum"/>
    </item>
  </rule>

答案 1 :(得分:0)

你问的是可能的......有多种方法可以做到这一点......

更好的方法是使用机器学习方法编写某种智能,但我怀疑你不想走这么远,所以我建议“教”数字听写并使用 SpeechHypothesized 事件(我在另一篇文章中评论这个,因为我怀疑你需要它)来组合词语。

对你也有好处:

http://msdn.microsoft.com/en-us/library/ms873284.aspx(建立知识)

http://msdn.microsoft.com/en-us/library/system.speech.recognition.speechrecognitionengine.speechhypothesized(v=vs.110).aspx

祝你好运