GrammarBuilder 类

定义

提供机制以便以编程方式为语音识别语法生成约束。

public ref class GrammarBuilder
public class GrammarBuilder
type GrammarBuilder = class
Public Class GrammarBuilder
继承
GrammarBuilder

示例

下面的示例使用 GrammarBuilderChoices 对象来构造语法,该语法可识别两个短语中的任意一个: "使背景 colorChoice" 或 "将背景设置为 colorChoice"。

该示例使用 Choices 对象为对象数组中的 colorChoice 创建可接受值的列表 StringChoices对象类似于 one-of SRGS 规范中的元素,并包含一组替代短语,其中的任何一项都可以在口述时识别。 该示例还使用 Choices 对象将两个对象的数组分组为 GrammarBuilder 结果语法可以识别的一对替代短语。 替换字词或短语是大多数语法的组件, Choices 对象为用构造的语法提供此功能 GrammarBuilder

该示例最终从通过 Grammar 对象构造的创建对象 GrammarBuilder Choices

private Grammar CreateColorGrammar()  
{  

  // Create a set of color choices.  
  Choices colorChoice = new Choices(new string[] {"red", "green", "blue"});  
  GrammarBuilder colorElement = new GrammarBuilder(colorChoice);  

  // Create grammar builders for the two versions of the phrase.  
  GrammarBuilder makePhrase = new GrammarBuilder("Make background");  
  makePhrase.Append(colorElement);  
  GrammarBuilder setPhrase = new GrammarBuilder("Set background to");  
  setPhrase.Append(colorElement);  

  // Create a Choices for the two alternative phrases, convert the Choices  
  // to a GrammarBuilder, and construct the grammar from the result.  
  Choices bothChoices = new Choices(new GrammarBuilder[] {makePhrase, setPhrase});  
  Grammar grammar = new Grammar((GrammarBuilder)bothChoices);  
  grammar.Name = "backgroundColor";  
  return grammar;  
}  

注解

语音识别语法通常以语音识别语法规范定义的 XML 格式创作 (SRGS) 版本 1.0。 如果你熟悉 SRGS 但想要以编程方式生成语法,则可以使用 System.Speech.Recognition.SrgsGrammar 命名空间,其成员与 SRGS 定义的元素和属性密切对应。 如果你不熟悉 SRGS,或希望采用轻型的编程方法创作语法,以便能够有效地完成许多常见方案,您可以使用 GrammarBuilderChoices 类。

使用 GrammarBuilder 对象可生成由对象组成的分层树 Choices ,这些对象包含替代短语,并在每个节点上与前导头和 amble 短语交叉,并使用语义值将含义传递回应用程序。

若要使用 GrammarBuilder 创建 Grammar 对象,请使用以下步骤。

  1. 创建 GrammarBuilder 对象。

  2. 将约束追加到 GrammarBuilder ,如 String 对象、、、、 Choices SemanticResultKey SemanticResultValue DictationGrammarGrammarBuilder 定义语法约束的其他对象。

  3. 使用其中一个 Grammar 构造函数 Grammar 从已完成的语法中创建对象 GrammarBuilder

使用 GrammarBuilder 进行创作最适用于具有单个规则(包含列表)或可能列表列表的语法。 若要以编程方式生成具有多个规则或需要进行内部规则引用的语法,请使用 System.Speech.Recognition.SrgsGrammar 命名空间的类。

GrammarBuilder还可以通过隐式转换从某些其他类或将 GrammarBuilder 与包含语法约束的第二个对象组合来获取的实例。 有关详细信息,请参阅 ImplicitAddition 运算符以及 Add 方法。

若要向现有添加规则 GrammarBuilder ,请使用 AddAppendAppendDictationAppendRuleReferenceAppendWildcard 方法。

重要

当使用的语音识别语法包含具有相同键名或多个可重复修改同一语义元素的值的语义元素时,语音识别器会引发异常。

为了帮助进行调试, DebugShowPhrases 属性以字符串的形式返回的当前状态 GrammarBuilder

构造函数

GrammarBuilder()

初始化 GrammarBuilder 类的新的空实例。

GrammarBuilder(Choices)

从备选项的集合中初始化 GrammarBuilder 类的新实例。

GrammarBuilder(GrammarBuilder, Int32, Int32)

从重复元素中初始化 GrammarBuilder 类的新实例。

GrammarBuilder(SemanticResultKey)

初始化语义钥中的 GrammarBuilder 类的新实例。

GrammarBuilder(SemanticResultValue)

初始化语义值中的 GrammarBuilder 类的新实例。

GrammarBuilder(String)

从字序列中初始化 GrammarBuilder 类的新实例。

GrammarBuilder(String, Int32, Int32)

初始化来自 GrammarBuilder 中的单词的序列的 String 类的新实例并指定 String 可以重复使用的次数。

GrammarBuilder(String, SubsetMatchingMode)

根据字序列的子集初始化 GrammarBuilder 类的新实例。

属性

Culture

获取或设置语音识别语法的区域性。

DebugShowPhrases

获取一个字符串,此字符串显示 GrammarBuilder 包含的语法的内容和结构。

方法

Add(Choices, GrammarBuilder)

创建一个新的 GrammarBuilder,其中包含一个 Choices 对象以及跟随在此对象后面的一个 GrammarBuilder 对象。

Add(GrammarBuilder, Choices)

创建一个新的 GrammarBuilder,其中包含一个 GrammarBuilder 对象以及跟随在此对象后面的一个 Choices 对象。

Add(GrammarBuilder, GrammarBuilder)

创建包含两个 GrammarBuilder 对象序列的新 GrammarBuilder

Add(GrammarBuilder, String)

创建包含后跟一个短语的 GrammarBuilder 对象的新 GrammarBuilder

Add(String, GrammarBuilder)

创建包含 GrammarBuilder 对象后跟的一个短语的新 GrammarBuilder

Append(Choices)

为语法元素的当前顺序追加替代项集合。

Append(GrammarBuilder)

为语法元素的当前顺序追加语法元素。

Append(GrammarBuilder, Int32, Int32)

为语法元素的当前顺序追加重复的语法元素。

Append(SemanticResultKey)

为语法元素的当前顺序追加语义密钥。

Append(SemanticResultValue)

为语法元素的当前顺序追加语义值。

Append(String)

为语法元素的当前顺序追加短语。

Append(String, Int32, Int32)

为语法元素的当前顺序追加重复的短语。

Append(String, SubsetMatchingMode)

为语法元素的当前顺序追加一个短语子集元素。

AppendDictation()

为语法元素的当前顺序追加默认的听写语法。

AppendDictation(String)

为语法元素的当前顺序追加指定的听写语法。

AppendRuleReference(String)

为语法元素的当前顺序追加语法定义文件。

AppendRuleReference(String, String)

为语法元素的当前顺序追加指定的语法定义文件规则。

AppendWildcard()

为语法元素的当前顺序追加与任何输入匹配的识别语法元素。

Equals(Object)

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

(继承自 Object)
GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetType()

获取当前实例的 Type

(继承自 Object)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
ToString()

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

(继承自 Object)

运算符

Addition(Choices, GrammarBuilder)

创建一个新的 GrammarBuilder,其中包含一个 Choices 对象以及跟随在此对象后面的一个 GrammarBuilder 对象。

Addition(GrammarBuilder, Choices)

创建包含后跟一个 GrammarBuilderGrammarBuilder 的新 Choices

Addition(GrammarBuilder, GrammarBuilder)

创建包含两个 GrammarBuilder 对象序列的新 GrammarBuilder

Addition(GrammarBuilder, String)

创建包含后跟一个短语的 GrammarBuilder 的新 GrammarBuilder

Addition(String, GrammarBuilder)

创建包含 GrammarBuilder 后跟的一个短语的新 GrammarBuilder

Implicit(Choices to GrammarBuilder)

Choices 对象转换为 GrammarBuilder 对象。

Implicit(SemanticResultKey to GrammarBuilder)

SemanticResultKey 对象转换为 GrammarBuilder 对象。

Implicit(SemanticResultValue to GrammarBuilder)

SemanticResultValue 对象转换为 GrammarBuilder 对象。

Implicit(String to GrammarBuilder)

将字符串转换为 GrammarBuilder 对象。

适用于

另请参阅