SubsetMatchingMode 枚举
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
枚举子集匹配模式的值。
public enum class SubsetMatchingMode
public enum SubsetMatchingMode
type SubsetMatchingMode =
Public Enum SubsetMatchingMode
- 继承
字段
| 名称 | 值 | 说明 |
|---|---|---|
| Subsequence | 0 | 指示子集匹配模式为 Subsequence。 |
| OrderedSubset | 1 | 指示子集匹配模式为 OrderedSubset。 |
| SubsequenceContentRequired | 2 | 指示子集匹配模式为 SubsequenceContentRequired。 |
| OrderedSubsetContentRequired | 3 | 指示子集匹配模式为 OrderedSubsetContentRequired。 |
示例
下面是一个测试例程,它为每个Grammar对象生成SubsetMatchingModes四个对象,使用相同的短语。 然后,可以测试这些 Grammar 对象。
private void CreateSubsetMatchTest()
{
foreach ( System.Speech.Recognition.SubsetMatchingMode mode
in Enum.GetValues(typeof(System.Speech.Recognition.SubsetMatchingMode)))
{
GrammarBuilder gb = new GrammarBuilder("a car the truck a boat that plane",mode);
Grammar grammar = new Grammar(gb);
grammar.Name = mode.ToString();
grammar.Enabled=true;
_recognizer.LoadGrammar(grammar);
}
}
注解
在 System.Speech 中,可以构造一个语法,该语法可以成功识别短语,即使音频输入中只找到其内容的子集。
默认情况下,识别引擎需要与整个短语完全匹配。 识别引擎还可以根据成员定义的参数匹配部分短语,这些 SubsetMatchingMode 参数用作 GrammarBuilder 参数或 SrgsSubset 构造函数或 Append 方法。
下面说明了每个 SubsetMatchingMode 成员在语法中使用时如何影响识别,该语法包含“一辆汽车卡车一艘飞机”。
OrderedSubset
此模式表示,如果存在以下情况,将使用短语的子集成功识别整个短语:
短语中的一个或多个单词在音频输入中被识别。
这些已识别字词的相对顺序与短语中的顺序相同。
匹配的字词只能包含介词和文章。
使用 OrderedSubset 模式将“一辆卡车一艘飞机的汽车”添加到语法时,生成以下识别结果:
| 输入短语 | 结果 |
|---|---|
| “一辆汽车卡车一艘船那架飞机” | 识别出整个短语“汽车卡车一艘飞机”。 |
| “一辆汽车卡车一艘船” | 识别出整个短语“汽车卡车一艘飞机”。 |
| “那架飞机上的汽车” | 识别出整个短语“汽车卡车一艘飞机”。 不需要识别的子集是原始字符串的序列。 |
| “一辆车船一辆卡车那架飞机” | 识别不成功。 这些单词不按顺序排列。 |
| “a” | 识别出整个短语“汽车卡车一艘飞机”。 谓词和文章用于识别。 |
OrderedSubsetContentRequired
此模式表示,如果存在以下情况,将使用短语的子集成功识别整个短语:
短语中的一个或多个单词在音频输入中被识别,并且
这些已识别字词的相对顺序与短语中的顺序相同。
匹配的字词不能仅包含谓词和项目。
使用 OrderedSubsetContentRequired 模式将短语“一辆卡车一艘船”添加到语法中,在识别时产生以下结果:
| 输入短语 | 结果 |
|---|---|
| “一辆汽车卡车一艘船那架飞机” | 识别出整个短语“汽车卡车一艘飞机”。 |
| “一辆汽车卡车一艘船” | 识别出整个短语“汽车卡车一艘飞机”。 |
| “那架飞机上的汽车” | 识别出整个短语“汽车卡车一艘飞机”。 不需要识别的子集是原始字符串的序列。 |
| “一辆车船一辆卡车那架飞机” | 识别不成功。 这些单词不按顺序排列。 |
| “a” | 识别不成功。 语音输入必须包含项目和谓词以外的字词。 |
Subsequence:
此模式表示,如果存在以下情况,将使用短语的子集成功识别整个短语:
短语中的一个或多个单词在音频输入中识别为短语序列,并且
这些已识别字词的相对顺序与短语中的顺序相同。
匹配的字词只能包含介词和文章。
使用 Subsequence 模式将“一辆汽车将卡车一艘船”添加到语法中会生成以下识别结果:
| 输入短语 | 结果 |
|---|---|
| “一辆汽车卡车一艘船那架飞机” | 识别出整个短语“汽车卡车一艘飞机”。 |
| “一辆汽车卡车一艘船” | 识别出整个短语“汽车卡车一艘飞机”。 |
| “那架飞机上的汽车” | 识别不成功。 识别的子集必须是原始字符串的序列。 |
| “一辆车船一辆卡车那架飞机” | 识别不成功。 这些单词不按顺序排列。 |
| “a” | 识别出整个短语“汽车卡车一艘飞机”。 谓词和文章用于识别。 |
SubsequenceContentRequired
此模式表示,如果存在以下情况,将使用短语的子集成功识别整个短语:
匹配字符串中的一个或多个单词在音频输入中被识别为短语序列。
匹配的字词不能仅包含谓词和项目。
使用 SubsequenceContentRequired 模式将短语“一辆卡车一艘飞机的汽车”添加到语法中会生成以下识别结果:
| 输入短语 | 结果 |
|---|---|
| “一辆汽车卡车一艘船那架飞机” | 识别出整个短语“汽车卡车一艘飞机”。 |
| “一辆汽车卡车一艘船” | 识别出整个短语“汽车卡车一艘飞机”。 |
| “那架飞机上的汽车” | 识别不成功。 识别的子集必须是原始字符串的序列。 |
| “一辆车船一辆卡车那架飞机” | 识别不成功。 这些单词不按顺序排列。 |
| “a” | 识别不成功。 语音输入必须包含项目和谓词以外的字词。 |