Grammar 类

定义

引用语音识别语法的运行时对象,应用程序可以用之来定义语音识别的约束。

public ref class Grammar
public class Grammar
type Grammar = class
Public Class Grammar
继承
Grammar
派生

示例

以下示例根据 XML 文件 (cities.xml) 中定义的语音识别语法构造 Grammar 对象。 cities.xml 文件的内容显示在以下 XML 示例中。

// Load a cities grammar from a local file and return the grammar object.   
private static Grammar CreateGrammarFromFile()  
{  
  Grammar citiesGrammar = new Grammar(@"c:\temp\cities.xml");  
  citiesGrammar.Name = "SRGS File Cities Grammar";  
  return citiesGrammar;  
}  
<?xml version="1.0" encoding="UTF-8" ?>  
<grammar version="1.0" xml:lang="en-US"  
         xmlns="http://www.w3.org/2001/06/grammar"  
         tag-format="semantics/1.0" root="Main">  

  <!-- cities.xml:   
    Defines an SRGS grammar for requesting a flight. This grammar includes  
    a Cities rule that lists the cities that can be used for departures  
    and destinations. -->  

  <rule id="Main">  
    <item>  
      I would like to fly from <ruleref uri="#Cities"/>  
      to <ruleref uri="#Cities"/>  
    </item>  
  </rule>  

  <rule id="Cities" scope="public">  
    <one-of>  
      <item> Seattle </item>  
      <item> Los Angeles </item>  
      <item> New York </item>  
      <item> Miami </item>  
    </one-of>  
  </rule>  
</grammar>  

注解

语音识别语法是一组规则或约束,用于定义语音识别引擎可以识别为有意义的输入的内容。 有关创建和使用语音识别语法的详细信息,请参阅 语音识别和使用 SrgsGrammar 创建语法

创作语法后,必须将语法生成到 Grammar 语音识别引擎可以加载的对象中,并且应用程序可以在运行时使用该对象来管理语音识别。 可以使用Grammar构造函数从 GrammarBuilderSrgsDocument 对象、文件或Stream包含受支持格式的语法说明的 创建Grammar实例。 支持的格式包括:

在其参数中接受 XML 格式语法文件的语法构造函数将 XML 语法编译为二进制格式,以优化它们以供语音识别引擎加载和使用。 通过使用方法之CompileGrammar提前编译语法,可以减少从 XML 格式语法构造对象所需的时间。

应用程序的语音识别引擎(由 SpeechRecognizerSpeechRecognitionEngine 对象管理)可以加载多个语音识别语法。 应用程序可以通过设置 Enabled 属性独立启用或禁用单个语法,并通过 Grammar 属性(如 PriorityWeight 属性)修改识别行为。

当输入匹配通过语法 SpeechRecognized 的路径时,会引发语法的事件。

注意

最佳做法是验证用于生成 Grammar 对象的任何 URI 或 DLL 的安全性。

Windows 和语音平台为从 DLL 或支持脚本的语法构造 Grammar 实例的应用程序提供安全性。

对象中的 Grammar 脚本始终像从 中的 Internet Zone网页下载一样运行。 公共语言运行时 (CLR) 隔离加载的任何 DLL 以获取语法定义。

构造函数

Grammar()

初始化 Grammar 类的新实例。

Grammar(GrammarBuilder)

Grammar 对象初始化 GrammarBuilder 类的新实例。

Grammar(SrgsDocument)

从一个 Grammar 对象初始化 SrgsDocument 类的新实例。

Grammar(SrgsDocument, String)

SrgsDocument 对象初始化 类的新实例Grammar并指定根规则。

Grammar(SrgsDocument, String, Object[])

初始化来自 Grammar 的实例的 SrgsDocument 类的新实例,并指定成为语法入口点的规则的名称。

Grammar(SrgsDocument, String, Uri)

SrgsDocument 对象初始化 类的新实例Grammar,指定根规则,并定义基本统一资源标识符 (URI) 解析相对规则引用。

Grammar(SrgsDocument, String, Uri, Object[])

初始化来自 Grammar 的实例的 SrgsDocument 类的新实例,并指定成为语法入口的规则的名称及一个基 URI 来解析相对引用。

Grammar(Stream)

Grammar 初始化 Stream 类的新实例。

Grammar(Stream, String)

Grammar 和指定根规则中来初始化 Stream 类的新实例。

Grammar(Stream, String, Object[])

Grammar 和指定根规则中来初始化 Stream 类的新实例。

Grammar(Stream, String, Uri)

初始化来自流的 Grammar 类的新实例,指定根规则并定义一个基统一资源字符识别(URI)来解析相对规则引用。

Grammar(Stream, String, Uri, Object[])

初始化 Grammar 类的新实例 Stream 并指定根规则和基 URI 来解析相对引用。

Grammar(String)

从文件中初始化 Grammar 类的新实例。

Grammar(String, String)

初始化 Grammar 类的新实例并指定根规则。

Grammar(String, String, Object[])

初始化来自包含语法定义的文件的 Grammar 类的新实例并指定成为语法入口的规则的名称。

属性

Enabled

获取或设置一个值,此值控制语音识别器是否可以使用 Grammar 来进行识别。

IsStg

获取语法是否是强类型的。

Loaded

获取 Grammar 是否已经由语音识别器加载。

Name

获取或设置 Grammar 对象的名称。

Priority

获取或设置 Grammar 对象的优先级别值。

ResourceName

使用用于加载当前 Grammar 的二进制资源名称获取或设置值。

RuleName

获取根规则或 Grammar 对象入口点的名称。

Weight

获取或设置 Grammar 对象的宽度值。

方法

Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetType()

获取当前实例的 Type

(继承自 Object)
LoadLocalizedGrammarFromType(Type, Object[])

LoadLocalizedGrammarFromType 方法返回从 Grammar派生的 Type 对象的本地化的实例。

MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
StgInit(Object[])

StgInit 方法初始的强类型语法。

ToString()

返回表示当前对象的字符串。

(继承自 Object)

事件

SpeechRecognized

当语音识别器执行使用 Grammar 对象的标识时引发。

适用于

另请参阅