GrammarBuilder 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
提供机制以便以编程方式为语音识别语法生成约束。
public ref class GrammarBuilder
public class GrammarBuilder
type GrammarBuilder = class
Public Class GrammarBuilder
- 继承
-
GrammarBuilder
示例
下面的示例使用 GrammarBuilder 和 Choices 对象来构造语法,该语法可识别两个短语中的任意一个: "使背景 colorChoice" 或 "将背景设置为 colorChoice"。
该示例使用 Choices 对象为对象数组中的 colorChoice 创建可接受值的列表 String 。 Choices对象类似于 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,或希望采用轻型的编程方法创作语法,以便能够有效地完成许多常见方案,您可以使用 GrammarBuilder 和 Choices 类。
使用 GrammarBuilder 对象可生成由对象组成的分层树 Choices ,这些对象包含替代短语,并在每个节点上与前导头和 amble 短语交叉,并使用语义值将含义传递回应用程序。
若要使用 GrammarBuilder 创建 Grammar 对象,请使用以下步骤。
创建 GrammarBuilder 对象。
将约束追加到 GrammarBuilder ,如 String 对象、、、、 Choices SemanticResultKey SemanticResultValue DictationGrammar 和 GrammarBuilder 定义语法约束的其他对象。
使用其中一个 Grammar 构造函数 Grammar 从已完成的语法中创建对象 GrammarBuilder 。
使用 GrammarBuilder 进行创作最适用于具有单个规则(包含列表)或可能列表列表的语法。 若要以编程方式生成具有多个规则或需要进行内部规则引用的语法,请使用 System.Speech.Recognition.SrgsGrammar 命名空间的类。
GrammarBuilder还可以通过隐式转换从某些其他类或将 GrammarBuilder 与包含语法约束的第二个对象组合来获取的实例。 有关详细信息,请参阅 Implicit 和 Addition 运算符以及 Add 方法。
若要向现有添加规则 GrammarBuilder ,请使用 Add 、 Append 、 AppendDictation 、 AppendRuleReference 和 AppendWildcard 方法。
重要
当使用的语音识别语法包含具有相同键名或多个可重复修改同一语义元素的值的语义元素时,语音识别器会引发异常。
为了帮助进行调试, 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 包含的语法的内容和结构。 |
方法
运算符
Addition(Choices, GrammarBuilder) |
创建一个新的 GrammarBuilder,其中包含一个 Choices 对象以及跟随在此对象后面的一个 GrammarBuilder 对象。 |
Addition(GrammarBuilder, Choices) |
创建包含后跟一个 GrammarBuilder 的 GrammarBuilder 的新 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 对象。 |