.net 如何加载使用SAPI 5.3标记的语法xml文件?

.net 如何加载使用SAPI 5.3标记的语法xml文件?,.net,xml,sapi,.net,Xml,Sapi,我的问题是如何加载使用MSDN文档中列出的标记的语法文件? 我想使用MSDN中“语法格式标记”(SAPI 5.3)标题下的格式标记 在那里,它列出了DEFINE、LIST、OPT等标记。但是,每当我尝试在grammar.xml文件中使用这些标记时,我都会收到一个错误,表示不支持该标记 如果使用的语法文件仅使用MSDN中列出的标记之一、项目等;加载语法文件 我知道这可能很简单,但我似乎无法理解 语法文件…这很有效 <grammar xmlns="http://www.w3.org/2

我的问题是如何加载使用MSDN文档中列出的标记的语法文件? 我想使用MSDN中“语法格式标记”(SAPI 5.3)标题下的格式标记

在那里,它列出了DEFINE、LIST、OPT等标记。但是,每当我尝试在grammar.xml文件中使用这些标记时,我都会收到一个错误,表示不支持该标记

如果使用的语法文件仅使用MSDN中列出的标记之一、项目等;加载语法文件

我知道这可能很简单,但我似乎无法理解

语法文件…这很有效

  <grammar xmlns="http://www.w3.org/2001/06/grammar"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="http://www.w3.org/2001/06/grammar
                                http://www.w3.org/TR/speech-grammar/grammar.xsd"
            xml:lang="en-US" version="1.0" root="command">


  <rule id="command" scope="public">

    <one-of>
      <item>nail</item>
      <item>hammer</item>
      <item>saw</item>
    </one-of>
  </rule>

   </grammar>

指甲
锤子
锯
代码清单-------------------

    public Form1()
    {

        InitializeComponent();

        // set up the recognizer
        _speechRecognizer = new SpeechRecognizer();
        _speechRecognizer.Enabled = false;
        _speechRecognizer.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(_speechRecognizer_SpeechRecognized);

        // set up the command and control grammar
        Grammar commandGrammar = new Grammar(@"grammar.xml");
        commandGrammar.Name = "main command grammar";
        commandGrammar.Enabled = true;

        // activate the command grammer
        _speechRecognizer.LoadGrammar(commandGrammar);

        _speechRecognizer.Enabled = true;
    } 
public Form1()
{
初始化组件();
//设置识别器
_speechRecognizer=新的speechRecognizer();
_speechRecognizer.Enabled=false;
_speechRecognizer.SpeechRecognized+=新事件处理程序(\u speechRecognizer\u SpeechRecognized);
//设置命令和控制语法
语法命令语法=新语法(@“Grammar.xml”);
commandGrammar.Name=“主命令语法”;
commandGrammar.Enabled=true;
//启动命令语法器
_LoadGrammar(commandGrammar);
_speechRecognizer.Enabled=true;
} 
您似乎在使用c#,因此使用了语音系统的.NET接口。据我所知,.NET接口只明确支持W3C SRGS XML语法格式, . 而您链接到的语法格式是MS特定的格式,他们似乎称之为CFG。只有lowerlevel COM API提供了CFG格式的详细信息

您应该能够在SRG中执行与在CFG中相同的操作

在使用SDK工具编译CFG后,您可以加载CFG的二进制版本