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

本文关键字:项目 适用于 语法 不适用 语音识别 | 更新日期: 2023-09-27 18:37:01

我有以下语法,如果我删除该行<item>notepad++</item>一切都按预期运行,但是当我添加它时,什么都无法识别。我正在处理Microsoft站点的示例:链接

<?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>  

我的目标是说"打开记事本"或"打开谷歌收件箱"并让语法响应。

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

根据规范,您似乎需要one-of指定只有一个item匹配:

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