语音识别语法不适用于多个项目

Speech Recognition Grammar not working with multiple items

我有以下语法,如果我删除行 <item>notepad++</item> 一切都按预期运行,但是当我添加它时没有任何识别。我正在使用 Microsoft 网站上的示例:link

<?xml version="1.0" encoding="UTF-8" ?>
<grammar version="1.0" xml:lang="en-US" mode="voice" root="open"
xmlns="http://www.w3.org/2001/06/grammar" tag-format="semantics/1.0">


<rule id="open">
    <item>open <ruleref uri="#progs"/></item>
</rule>

<rule id="progs">
    <item>google <ruleref uri="#googleServices"/></item>
    <item>notepad</item>
</rule>

<rule id="googleServices">
    <one-of>
        <item>inbox<tag>INBOX_URL</tag></item>
        <item>drive<tag>DRIVE URL</tag></item>
        <item>music<tag>MUSIC URL</tag></item>
    </one-of>
</rule>

</grammar>  

我的目标是说 "open notepad" 或 "open google inbox" 并让语法响应。

根据 specification 看来您需要 one-of 指定只有一个 item 应该匹配:

<rule id="progs">
  <one-of>
    <item>google <ruleref uri="#googleServices"/></item>
    <item>notepad</item>
  </one-of>
</rule>