GrammarBuilder Конструкторы
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Инициализирует новый экземпляр класса GrammarBuilder.
Перегрузки
GrammarBuilder() |
Инициализирует новый пустой экземпляр класса GrammarBuilder. |
GrammarBuilder(Choices) |
Инициализирует новый экземпляр класса GrammarBuilder из набора объектов. |
GrammarBuilder(SemanticResultKey) |
Инициализирует новый экземпляр класса GrammarBuilder из семантического ключа. |
GrammarBuilder(SemanticResultValue) |
Инициализирует новый экземпляр класса GrammarBuilder из семантического значения. |
GrammarBuilder(String) |
Инициализирует новый экземпляр класса GrammarBuilder из последовательности слов. |
GrammarBuilder(String, SubsetMatchingMode) |
Инициализирует новый экземпляр класса GrammarBuilder для подмножества последовательности слов. |
GrammarBuilder(GrammarBuilder, Int32, Int32) |
Инициализирует новый экземпляр класса GrammarBuilder из повторяющегося элемента. |
GrammarBuilder(String, Int32, Int32) |
Инициализирует новый экземпляр класса GrammarBuilder из последовательности слов в String и определяет, сколько раз можно повторить String. |
Комментарии
Экземпляры этого класса также можно получить путем неявных преобразований из других классов или путем объединения GrammarBuilder объекта со вторым объектом в из нового GrammarBuilder. Дополнительные сведения см. в статье Методы Implicit и Addition .
Чтобы добавить ограничения к существующему GrammarBuilderобъекту Add, используйте методы , AppendDictationAppend, , AppendRuleReferenceи AppendWildcard и оператор .Addition
Важно!
Распознаватель речи может вызвать исключение при использовании грамматики распознавания речи, содержащей повторяющиеся семантические элементы с тем же именем ключа или несколько семантических элементов, которые могут многократно изменять значение одного и того же семантического элемента.
Дополнительные сведения о построении и использовании грамматики распознавания речи см. в разделе Распознавание речи.
GrammarBuilder()
- Исходный код:
- GrammarBuilder.cs
- Исходный код:
- GrammarBuilder.cs
- Исходный код:
- GrammarBuilder.cs
Инициализирует новый пустой экземпляр класса GrammarBuilder.
public:
GrammarBuilder();
public GrammarBuilder ();
Public Sub New ()
Примеры
В следующем примере объекты и Choices используются GrammarBuilder для создания грамматики, которая распознает обе фразы: "Сделать цвет фонаВыбор" или "Задать фон для colorChoice".
В примере объект используется Choices для создания списка допустимых значений для colorChoice из массива String объектов . Объект Choices аналогиен элементу one-of
в спецификации SRGS и содержит набор альтернативных фраз, любую из которых можно распознать при произнесении. В примере также используется объект для Choices группировки массива из двух GrammarBuilder объектов в пару альтернативных фраз, которые может распознать результирующий грамматика. Альтернативные слова или фразы являются компонентом большинства грамматик, и Choices объект предоставляет эту функцию для грамматик, созданных с помощью GrammarBuilder.
Наконец, в примере создается Grammar объект из , созданного GrammarBuilderChoices из объекта .
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 object from the result.
GrammarBuilder bothPhrases = new GrammarBuilder();
Choices bothChoices = new Choices(new GrammarBuilder[] {makePhrase, setPhrase});
bothPhrases.Append(bothChoices);
Grammar grammar = new Grammar(bothPhrases);
grammar.Name = "backgroundColor";
return grammar;
}
Комментарии
Чтобы добавить правила к существующему GrammarBuilder объекту, используйте Addметоды , Append, AppendDictation, AppendRuleReferenceи AppendWildcard и оператор .Addition
Важно!
Распознаватель речи может вызвать исключение при использовании грамматики распознавания речи, содержащей повторяющиеся семантические элементы с тем же именем ключа или несколько семантических элементов, которые могут многократно изменять значение одного и того же семантического элемента.
См. также раздел
Применяется к
GrammarBuilder(Choices)
- Исходный код:
- GrammarBuilder.cs
- Исходный код:
- GrammarBuilder.cs
- Исходный код:
- GrammarBuilder.cs
Инициализирует новый экземпляр класса GrammarBuilder из набора объектов.
public:
GrammarBuilder(System::Speech::Recognition::Choices ^ alternateChoices);
public GrammarBuilder (System.Speech.Recognition.Choices alternateChoices);
new System.Speech.Recognition.GrammarBuilder : System.Speech.Recognition.Choices -> System.Speech.Recognition.GrammarBuilder
Public Sub New (alternateChoices As Choices)
Параметры
- alternateChoices
- Choices
Набор вариантов.
Примеры
В следующем примере объекты и Choices используются GrammarBuilder для создания грамматики, которая распознает обе фразы: "Сделать цвет фонаВыбор" или "Задать фон для colorChoice".
В примере объект используется Choices для создания списка допустимых значений для colorChoice из массива String объектов . Объект Choices аналогиен элементу one-of
в спецификации SRGS и содержит набор альтернативных фраз, любую из которых можно распознать при произнесении. В примере также используется объект для Choices группировки массива из двух GrammarBuilder объектов в пару альтернативных фраз, которые может распознать результирующий грамматика. Альтернативные слова или фразы являются компонентом большинства грамматик, и Choices объект предоставляет эту функцию для грамматик, созданных с помощью GrammarBuilder.
Наконец, в примере создается Grammar объект из , созданного GrammarBuilderChoices из объекта .
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;
}
Комментарии
Дополнительные сведения о создании грамматики распознавания речи, содержащей альтернативные варианты, см. в разделе Использование вариантов для создания грамматикиBuilder Grammar.
См. также раздел
Применяется к
GrammarBuilder(SemanticResultKey)
- Исходный код:
- GrammarBuilder.cs
- Исходный код:
- GrammarBuilder.cs
- Исходный код:
- GrammarBuilder.cs
Инициализирует новый экземпляр класса GrammarBuilder из семантического ключа.
public:
GrammarBuilder(System::Speech::Recognition::SemanticResultKey ^ key);
public GrammarBuilder (System.Speech.Recognition.SemanticResultKey key);
new System.Speech.Recognition.GrammarBuilder : System.Speech.Recognition.SemanticResultKey -> System.Speech.Recognition.GrammarBuilder
Public Sub New (key As SemanticResultKey)
Параметры
Семантический ключ.
Примеры
В следующем примере создается грамматика распознавания речи, которая распознает две фразы: "Сделать цвет фонаВыбор" и "Задать для фона colorChoice", где colorChoice выбирается из набора цветов. Грамматика позволяет пользователю произносить любое из нескольких имен цветов и возвращает приложению семантическую информацию о распознаваемом имени цвета.
В примере используется один объект SemanticResultKey , с помощью которого можно получить объект , связанный SemanticValue с цветом, произнесемым пользователем. Например, если входные данные содержат фразу "Задать для фона красный цвет", результат распознавания содержит семантическое значение "#FF0000", которое можно получить с помощью обработчика SpeechRecognized
для события.
В примере используются Stringобъекты , Choices, SemanticResultKeySemanticResultValueи GrammarBuilder для построения ограничений, содержащихся в последнем GrammarBuilder объекте , bothPhrases
. Наконец, в примере создается Grammar объект из завершенного GrammarBuilderобъекта .
private Grammar CreateColorGrammar()
{
// Create a set of color choices.
// Include semantic information about each of the colors.
Choices colorChoice = new Choices();
GrammarBuilder colorBuilder = new GrammarBuilder("red");
SemanticResultValue colorValue =
new SemanticResultValue(colorBuilder, "#FF0000");
colorChoice.Add(new GrammarBuilder(colorValue));
colorBuilder = new GrammarBuilder("green");
colorValue = new SemanticResultValue(colorBuilder, "#00FF00");
colorChoice.Add(new GrammarBuilder(colorValue));
colorBuilder = new GrammarBuilder("blue");
colorValue = new SemanticResultValue(colorBuilder, "#0000FF");
colorChoice.Add(new GrammarBuilder(colorValue));
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 object for the two alternative phrases.
Choices bothChoices = new Choices(new GrammarBuilder[] {makePhrase, setPhrase});
GrammarBuilder bothPhrases = new GrammarBuilder(bothChoices);
// Create the semantic key for referencing the color information.
SemanticResultKey colorKey =
new SemanticResultKey("ColorCode", bothPhrases);
bothPhrases = new GrammarBuilder(colorKey);
// Construct the Grammar object from the GrammarBuilder.
Grammar grammar = new Grammar(bothPhrases);
grammar.Name = "backgroundColor";
return grammar;
}
Комментарии
При создании экземпляра GrammarBuilder из объекта в грамматику SemanticResultValue добавляются семантические сведения, которые могут быть возвращены в результате распознавания. Доступ к семантической информации в результате распознавания можно получить с помощью Semantics свойства RecognizedPhrase, которое доступно в обработчике SpeechRecognized
для события .
GrammarBuilder Если определяет SemanticResultKey, это можно использовать для получения семантической информации в результате распознавания, связанном с ключом. См. пример для Append(SemanticResultKey), а также см. SemanticResultValue и SemanticResultKey.
Важно!
При создании GrammarBuilder объектов, содержащих SemanticResultValue экземпляры или SemanticResultKey , избегайте создания повторяющихся семантических элементов с тем же именем ключа или нескольких семантических элементов, которые могут многократно изменять Value свойство SemanticValue объекта. Распознаватель речи может создать исключение, если он сталкивается с этими обстоятельствами.
См. также раздел
Применяется к
GrammarBuilder(SemanticResultValue)
- Исходный код:
- GrammarBuilder.cs
- Исходный код:
- GrammarBuilder.cs
- Исходный код:
- GrammarBuilder.cs
Инициализирует новый экземпляр класса GrammarBuilder из семантического значения.
public:
GrammarBuilder(System::Speech::Recognition::SemanticResultValue ^ value);
public GrammarBuilder (System.Speech.Recognition.SemanticResultValue value);
new System.Speech.Recognition.GrammarBuilder : System.Speech.Recognition.SemanticResultValue -> System.Speech.Recognition.GrammarBuilder
Public Sub New (value As SemanticResultValue)
Параметры
- value
- SemanticResultValue
Семантическое значение или пара имя-значение.
Примеры
В следующем примере создается грамматика распознавания речи, которая распознает две фразы: "Сделать цвет фонаВыбор" и "Задать для фона colorChoice", где colorChoice выбирается из набора цветов. Грамматика позволяет пользователю произносить любое из нескольких имен цветов и возвращает приложению семантическую информацию о распознаваемом имени цвета.
В примере используется один объект SemanticResultKey , с помощью которого можно получить объект , связанный SemanticValue с цветом, произнесемым пользователем. Например, если входные данные содержат фразу "Задать для фона красный цвет", результат распознавания содержит семантическое значение "#FF0000", которое можно получить с помощью обработчика SpeechRecognized
для события.
В примере используются Stringобъекты , Choices, SemanticResultKeySemanticResultValueи GrammarBuilder для построения ограничений, содержащихся в последнем GrammarBuilder объекте , bothPhrases
. Наконец, в примере создается Grammar объект из завершенного GrammarBuilderобъекта .
private Grammar CreateColorGrammar()
{
// Create a set of color choices.
// Include semantic information about each of the colors.
Choices colorChoice = new Choices();
GrammarBuilder colorBuilder = new GrammarBuilder("red");
SemanticResultValue colorValue =
new SemanticResultValue(colorBuilder, "#FF0000");
colorChoice.Add(new GrammarBuilder(colorValue));
colorBuilder = new GrammarBuilder("green");
colorValue = new SemanticResultValue(colorBuilder, "#00FF00");
colorChoice.Add(new GrammarBuilder(colorValue));
colorBuilder = new GrammarBuilder("blue");
colorValue = new SemanticResultValue(colorBuilder, "#0000FF");
colorChoice.Add(new GrammarBuilder(colorValue));
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.
Choices bothChoices = new Choices(new GrammarBuilder[] {makePhrase, setPhrase});
GrammarBuilder bothPhrases = new GrammarBuilder(bothChoices);
// Create the semantic key for referencing the color information.
SemanticResultKey colorKey =
new SemanticResultKey("ColorCode", bothPhrases);
bothPhrases = new GrammarBuilder(colorKey);
// Construct the grammar from the grammar builder.
Grammar grammar = new Grammar(bothPhrases);
grammar.Name = "backgroundColor";
return grammar;
}
Комментарии
При создании экземпляра GrammarBuilder из объекта в грамматику SemanticResultValue добавляются семантические сведения, которые могут быть возвращены в результате распознавания. Доступ к семантической информации в результате распознавания можно получить с помощью Semantics свойства RecognizedPhrase, которое доступно в обработчике SpeechRecognized
для события .
GrammarBuilder Если определяет SemanticResultKey, это можно использовать для получения семантической информации в результате распознавания, связанном с ключом. См. пример для Append(SemanticResultKey), а также см. SemanticResultValue и SemanticResultKey.
Важно!
При создании GrammarBuilder объектов, содержащих SemanticResultValue экземпляры или SemanticResultKey , избегайте создания повторяющихся семантических элементов с тем же именем ключа или нескольких семантических элементов, которые могут многократно изменять Value свойство SemanticValue объекта. Распознаватель речи может создать исключение, если он сталкивается с этими обстоятельствами.
См. также раздел
Применяется к
GrammarBuilder(String)
- Исходный код:
- GrammarBuilder.cs
- Исходный код:
- GrammarBuilder.cs
- Исходный код:
- GrammarBuilder.cs
Инициализирует новый экземпляр класса GrammarBuilder из последовательности слов.
public:
GrammarBuilder(System::String ^ phrase);
public GrammarBuilder (string phrase);
new System.Speech.Recognition.GrammarBuilder : string -> System.Speech.Recognition.GrammarBuilder
Public Sub New (phrase As String)
Параметры
- phrase
- String
Последовательность слов.
Примеры
В следующем примере объекты и Choices используются GrammarBuilder для создания грамматики, которая распознает обе фразы: "Сделать цвет фонаВыбор" или "Задать фон для colorChoice".
После создания списка допустимых значений для colorChoice с помощью Choices объекта в примере инициализируется два GrammarBuilder объекта и setPhrase
makePhrase
, используя строку в качестве аргумента.
Наконец, в примере создается Grammar объект из объекта , Choices приведения к объекту GrammarBuilder .
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 object from the result.
Choices bothChoices = new Choices(new GrammarBuilder[] {makePhrase, setPhrase});
Grammar grammar = new Grammar((GrammarBuilder)bothChoices);
grammar.Name = "backgroundColor";
return grammar;
}
Комментарии
Фраза представляет точную фразу, которую распознает грамматика распознавания речи. Дополнительные сведения о создании грамматики распознавания речи, содержащей строки, см. в разделе Использование строк для создания грамматикиBuilder Grammar.
См. также раздел
Применяется к
GrammarBuilder(String, SubsetMatchingMode)
- Исходный код:
- GrammarBuilder.cs
- Исходный код:
- GrammarBuilder.cs
- Исходный код:
- GrammarBuilder.cs
Инициализирует новый экземпляр класса GrammarBuilder для подмножества последовательности слов.
public:
GrammarBuilder(System::String ^ phrase, System::Speech::Recognition::SubsetMatchingMode subsetMatchingCriteria);
public GrammarBuilder (string phrase, System.Speech.Recognition.SubsetMatchingMode subsetMatchingCriteria);
new System.Speech.Recognition.GrammarBuilder : string * System.Speech.Recognition.SubsetMatchingMode -> System.Speech.Recognition.GrammarBuilder
Public Sub New (phrase As String, subsetMatchingCriteria As SubsetMatchingMode)
Параметры
- phrase
- String
Последовательность слов.
- subsetMatchingCriteria
- SubsetMatchingMode
Соответствующий режим, используемый грамматикой распознавания речи для распознавания фразы.
Примеры
В следующем примере создается грамматика распознавания речи для каждого SubsetMatchingMode значения и грамматика для выбора между грамматиками режима сопоставления. Если значение phrase
равно "one two three four five six seven", то грамматика Subsequence распознает входные данные "два трех четырех", но не входные данные "один три пять". Однако грамматика упорядоченного подмножества распознает оба этих входных данных.
private static IEnumerable<Grammar>
CreateMatchingModeGrammars(string phrase)
{
List<Grammar> grammars = new List<Grammar>(5);
Choices modeChoice = new Choices();
Type enumType = typeof(SubsetMatchingMode);
foreach (SubsetMatchingMode mode in Enum.GetValues(enumType))
{
string modeName = Enum.GetName(enumType, mode);
modeName = BreakAtCaps(modeName);
GrammarBuilder builder = new GrammarBuilder(phrase, mode);
Grammar modeGrammar = new Grammar(builder);
modeGrammar.Name = modeName;
modeGrammar.Enabled = false;
grammars.Add(modeGrammar);
modeChoice.Add(modeName);
}
Grammar choiceGrammar = new Grammar(modeChoice);
choiceGrammar.Name = "choice";
grammars.Add(choiceGrammar);
return grammars;
}
// Insert spaces preceding each uppercase letter in a string.
private static string BreakAtCaps(string item)
{
if (item == null || item.Length == 0)
{
return item;
}
StringBuilder sb = new StringBuilder(item[0].ToString());
for (int i = 1; i < item.Length; i++)
{
char c = item[i];
if (char.IsUpper(c))
{
sb.Append(" ");
}
sb.Append(c);
}
return sb.ToString();
}
Комментарии
Параметр phrase
представляет фразу, которую может распознать грамматика распознавания речи. Параметр subsetMatchingMode
указывает подмножество фразы, которую можно произносить для успешного распознавания всей фразы. С его помощью можно создать грамматику со списком записей с длинными именами, не требуя от пользователей произнести полное имя в соответствии с элементом.
Дополнительные сведения о режимах сопоставления см. в разделе SubsetMatchingMode. Дополнительные сведения о создании грамматики распознавания речи, содержащей строки, см. в разделе Использование строк для создания грамматикиBuilder Grammar.
См. также раздел
Применяется к
GrammarBuilder(GrammarBuilder, Int32, Int32)
- Исходный код:
- GrammarBuilder.cs
- Исходный код:
- GrammarBuilder.cs
- Исходный код:
- GrammarBuilder.cs
Инициализирует новый экземпляр класса GrammarBuilder из повторяющегося элемента.
public:
GrammarBuilder(System::Speech::Recognition::GrammarBuilder ^ builder, int minRepeat, int maxRepeat);
public GrammarBuilder (System.Speech.Recognition.GrammarBuilder builder, int minRepeat, int maxRepeat);
new System.Speech.Recognition.GrammarBuilder : System.Speech.Recognition.GrammarBuilder * int * int -> System.Speech.Recognition.GrammarBuilder
Public Sub New (builder As GrammarBuilder, minRepeat As Integer, maxRepeat As Integer)
Параметры
- builder
- GrammarBuilder
Повторяющийся элемент.
- minRepeat
- Int32
Минимальное количество сопоставлений входных данных элементу, определенному в builder
, при котором засчитывается совпадение.
- maxRepeat
- Int32
Максимальное количество сопоставлений входных данных элементу, определенному в builder
, при котором засчитывается совпадение.
Примеры
В следующем примере создается грамматика распознавания речи для заказа пиццы. Он начинается с необязательной открывающей фразы, за которой следует от одной до четырех начинок, и закрывается словом "пицца".
private static Grammar CreatePizzaGrammar()
{
// Create a Choices object from a string array of alternative toppings.
Choices toppings = new Choices(new string[] {
"cheese", "mushroom", "tomato", "onion",
"anchovy", "chicken", "pepperoni"});
// Create a GrammarBuilder and append the Choices object.
GrammarBuilder andToppings = new GrammarBuilder("and", 0, 1);
andToppings.Append(toppings);
// Construct the phrase.
GrammarBuilder gb = new GrammarBuilder("I would like a", 0, 1);
gb.Append(toppings);
gb.Append(new GrammarBuilder(andToppings, 0, 3));
gb.Append("pizza");
// Create the Grammar from the GrammarBuilder.
Grammar grammar = new Grammar(gb);
grammar.Name = "Pizza Order";
return grammar;
}
Комментарии
Если значение minRepeat
равно 0, то новый GrammarBuilder представляет необязательный элемент.
Значение minRepeat
должно быть больше или равно 0 и меньше или равно значению maxRepeat
.
Важно!
При указании повторов для GrammarBuilder объектов, содержащих SemanticResultValue экземпляры или SemanticResultKey , не создавайте повторяющиеся семантические элементы с тем же именем ключа или несколькими семантических элементов, которые могут многократно изменять Value свойство SemanticValue объекта. Распознаватель речи может создать исключение, если он сталкивается с этими обстоятельствами.
См. также раздел
Применяется к
GrammarBuilder(String, Int32, Int32)
- Исходный код:
- GrammarBuilder.cs
- Исходный код:
- GrammarBuilder.cs
- Исходный код:
- GrammarBuilder.cs
Инициализирует новый экземпляр класса GrammarBuilder из последовательности слов в String и определяет, сколько раз можно повторить String.
public:
GrammarBuilder(System::String ^ phrase, int minRepeat, int maxRepeat);
public GrammarBuilder (string phrase, int minRepeat, int maxRepeat);
new System.Speech.Recognition.GrammarBuilder : string * int * int -> System.Speech.Recognition.GrammarBuilder
Public Sub New (phrase As String, minRepeat As Integer, maxRepeat As Integer)
Параметры
- phrase
- String
Повторяющаяся последовательность слов.
- minRepeat
- Int32
Минимальное количество сопоставлений входной фразы, при котором засчитывается совпадение.
- maxRepeat
- Int32
Максимальное количество сопоставлений входной фразы, при котором засчитывается совпадение.
Примеры
В следующем примере создается грамматика распознавания речи для заказа пиццы. Он начинается с необязательной открывающей фразы, за которой следует от одной до четырех начинок, и закрывается словом "пицца".
private static Grammar CreatePizzaGrammar()
{
// Create a Choices object with alternatives for toppings.
Choices toppings = new Choices(new string[] {
"cheese", "mushroom", "tomato", "onion",
"anchovy", "chicken", "pepperoni"});
// Create a GrammarBuilder and append the Choices object.
GrammarBuilder andToppings = new GrammarBuilder("and", 0, 1);
andToppings.Append(toppings);
// Construct the phrase.
GrammarBuilder gb = new GrammarBuilder("I would like a", 0, 1);
gb.Append(toppings);
gb.Append(new GrammarBuilder(andToppings, 0, 3));
gb.Append("pizza");
// Create the Grammar from the GrammarBuilder.
Grammar grammar = new Grammar(gb);
grammar.Name = "Pizza Order";
return grammar;
}
Комментарии
Если значение minRepeat
равно 0, то new GrammarBuilder представляет необязательный элемент.
Значение minRepeat
должно быть больше или равно 0 и меньше или равно значению maxRepeat
. Дополнительные сведения о создании грамматики распознавания речи, содержащей строки, см. в статье Использование строк для создания грамматики GrammarBuilder.