Grammar 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
引用语音识别语法的运行时对象,应用程序可以用之来定义语音识别的约束。
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构造函数从 GrammarBuilder 或 SrgsDocument 对象、文件或Stream包含受支持格式的语法说明的 创建Grammar实例。 支持的格式包括:
符合 W3C 语音识别语法规范 (SRGS) 1.0 版的 XML 格式文件
已编译为扩展名为 .cfg 的二进制文件的语法
在其参数中接受 XML 格式语法文件的语法构造函数将 XML 语法编译为二进制格式,以优化它们以供语音识别引擎加载和使用。 通过使用方法之Compile一Grammar提前编译语法,可以减少从 XML 格式语法构造对象所需的时间。
应用程序的语音识别引擎(由 SpeechRecognizer 或 SpeechRecognitionEngine 对象管理)可以加载多个语音识别语法。 应用程序可以通过设置 Enabled 属性独立启用或禁用单个语法,并通过 Grammar 属性(如 Priority 和 Weight 属性)修改识别行为。
当输入匹配通过语法 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, String) | |
Grammar(Stream, String, Object[]) | |
Grammar(Stream, String, Uri) |
初始化来自流的 Grammar 类的新实例,指定根规则并定义一个基统一资源字符识别(URI)来解析相对规则引用。 |
Grammar(Stream, String, Uri, Object[]) | |
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[]) |
|
MemberwiseClone() |
创建当前 Object 的浅表副本。 (继承自 Object) |
StgInit(Object[]) |
|
ToString() |
返回表示当前对象的字符串。 (继承自 Object) |
事件
SpeechRecognized |
当语音识别器执行使用 Grammar 对象的标识时引发。 |