GrammarBuilder.Append Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Добавляет элемент грамматики к текущей последовательности элементов грамматики.
Перегрузки
Append(String, Int32, Int32) |
Добавляет повторную фразу к текущей последовательности элементов грамматики. |
Append(GrammarBuilder, Int32, Int32) |
Добавляет повторный элемент грамматики к текущей последовательности элементов грамматики. |
Append(String) |
Добавляет фразу к текущей последовательности элементов грамматики. |
Append(String, SubsetMatchingMode) |
Добавляет элемент для подмножества фразы к текущей последовательности элементов грамматики. |
Append(SemanticResultKey) |
Добавляет семантический ключ к текущей последовательности элементов грамматики. |
Append(SemanticResultValue) |
Добавляет семантическое значение к текущей последовательности элементов грамматики. |
Append(GrammarBuilder) |
Добавляет элемент грамматики к текущей последовательности элементов грамматики. |
Append(Choices) |
Добавляет набор альтернатив к текущей последовательности элементов грамматики. |
Комментарии
Используйте эти методы для добавления грамматических элементов в существующий GrammarBuilder. При создании элементов грамматики их можно добавить в существующий построитель, чтобы постепенно разрабатывать ограничения для грамматики распознавания речи. Каждый элемент добавляется в конец текущей последовательности элементов.
Этот метод имеет перегрузки для добавления GrammarBuilderобъектов , String, Choices, SemanticResultKeyи SemanticResultValue .
Важно!
Распознаватель речи может вызвать исключение при использовании грамматики распознавания речи, содержащей повторяющиеся семантические элементы с тем же именем ключа или несколько семантических элементов, которые могут многократно изменять значение одного и того же семантического элемента.
Дополнительные сведения о построении и использовании грамматики распознавания речи см. в разделе Распознавание речи.
Append(String, Int32, Int32)
- Исходный код:
- GrammarBuilder.cs
- Исходный код:
- GrammarBuilder.cs
- Исходный код:
- GrammarBuilder.cs
Добавляет повторную фразу к текущей последовательности элементов грамматики.
public:
void Append(System::String ^ phrase, int minRepeat, int maxRepeat);
public void Append (string phrase, int minRepeat, int maxRepeat);
member this.Append : string * int * int -> unit
Public Sub Append (phrase As String, minRepeat As Integer, maxRepeat As Integer)
Параметры
- phrase
- String
Повторяющаяся последовательность слов для добавления.
- minRepeat
- Int32
Минимальное количество сопоставлений входных данных phrase
, при котором засчитывается совпадение.
- maxRepeat
- Int32
Максимальное количество сопоставлений входных данных phrase
, при котором засчитывается совпадение.
Примеры
В следующем примере создается грамматика распознавания речи для таких фраз, как "Позвонить Джеймсу на работе" и "Позвонить Анне по мобильному телефону", где слово "телефон" является необязательным. GrammarBuilder Объекты и Choices используются для построения грамматики. В примере подчеркивается использование Append метода .
public static Grammar CreatePhonePhrase()
{
// Create alternatives for person names, locations, devices, and pronouns.
Choices personChoice = new Choices(new string[] {"Anne", "James", "Mary", "Sam"});
Choices locationChoice = new Choices(new string[] {"home", "work"});
Choices deviceChoice = new Choices(new string[] {"home", "work", "cell"});
Choices pronounChoice = new Choices(new string[] {"his", "her"});
// Create a phrase for the receiving device, which optionally contains the word "phone".
GrammarBuilder devicePhrase = new GrammarBuilder(pronounChoice);
devicePhrase.Append(deviceChoice);
devicePhrase.Append("phone", 0, 1);
// Create alternatives for phrases specifying a device or a location.
GrammarBuilder atLocation = new GrammarBuilder("at");
atLocation.Append(locationChoice);
GrammarBuilder onDevice = new GrammarBuilder("on");
onDevice.Append(devicePhrase);
Choices howChoice = new Choices(new GrammarBuilder[] {atLocation, onDevice});
// Build the final phrase.
GrammarBuilder callWho = new GrammarBuilder("Call");
callWho.Append(personChoice);
callWho.Append(howChoice);
// Create the Grammar object.
Grammar callGrammar = new Grammar(callWho);
callGrammar.Name = "Call Grammar";
return callGrammar;
}
Комментарии
Значение minRepeat
должно быть больше или равно 0 и меньше или равно значению maxRepeat
.
См. также раздел
Применяется к
Append(GrammarBuilder, Int32, Int32)
- Исходный код:
- GrammarBuilder.cs
- Исходный код:
- GrammarBuilder.cs
- Исходный код:
- GrammarBuilder.cs
Добавляет повторный элемент грамматики к текущей последовательности элементов грамматики.
public:
void Append(System::Speech::Recognition::GrammarBuilder ^ builder, int minRepeat, int maxRepeat);
public void Append (System.Speech.Recognition.GrammarBuilder builder, int minRepeat, int maxRepeat);
member this.Append : System.Speech.Recognition.GrammarBuilder * int * int -> unit
Public Sub Append (builder As GrammarBuilder, minRepeat As Integer, maxRepeat As Integer)
Параметры
- builder
- GrammarBuilder
Повторяющийся элемент грамматики для добавления.
- minRepeat
- Int32
Минимальное количество сопоставлений входных данных элементу, определенному в builder
, при котором засчитывается совпадение.
- maxRepeat
- Int32
Максимальное количество сопоставлений входных данных элементу, определенному в builder
, при котором засчитывается совпадение.
Примеры
В следующем примере создается грамматика распознавания речи для таких фраз, как "Позвонить Джеймсу на работе" и "Позвонить Анне по мобильному телефону", где слово "телефон" является необязательным. GrammarBuilder Объекты и Choices используются для построения грамматики. В примере подчеркивается использование Append метода .
public static Grammar CreatePhonePhrase()
{
// Create alternatives for person names, locations, devices, and pronouns.
Choices personChoice = new Choices(new string[] {"Anne", "James", "Mary", "Sam"});
Choices locationChoice = new Choices(new string[] {"home", "work"});
Choices deviceChoice = new Choices(new string[] {"home", "work", "cell"});
Choices pronounChoice = new Choices(new string[] {"his", "her"});
// Create a phrase for the receiving device, which optionally contains the word "phone".
GrammarBuilder devicePhrase = new GrammarBuilder(pronounChoice);
devicePhrase.Append(deviceChoice);
devicePhrase.Append("phone", 0, 1);
// Create alternatives for phrases specifying a device or a location.
GrammarBuilder atLocation = new GrammarBuilder("at");
atLocation.Append(locationChoice);
GrammarBuilder onDevice = new GrammarBuilder("on");
onDevice.Append(devicePhrase);
Choices howChoice = new Choices(new GrammarBuilder[] {atLocation, onDevice});
// Build the final phrase.
GrammarBuilder callWho = new GrammarBuilder("Call");
callWho.Append(personChoice);
callWho.Append(howChoice);
// Create the Grammar object.
Grammar callGrammar = new Grammar(callWho);
callGrammar.Name = "Call Grammar";
return callGrammar;
}
Комментарии
Значение minRepeat
должно быть больше или равно 0 и меньше или равно значению maxRepeat
.
Важно!
При добавлении GrammarBuilder объектов, содержащих SemanticResultValue экземпляры или SemanticResultKey , к объекту GrammarBuilder следует избегать создания повторяющихся семантических элементов с одинаковым именем ключа или нескольких семантических элементов, которые могут многократно изменять Value свойство SemanticValue объекта. Распознаватель речи может вызвать исключение, если он сталкивается с этими обстоятельствами.
См. также раздел
Применяется к
Append(String)
- Исходный код:
- GrammarBuilder.cs
- Исходный код:
- GrammarBuilder.cs
- Исходный код:
- GrammarBuilder.cs
Добавляет фразу к текущей последовательности элементов грамматики.
public:
void Append(System::String ^ phrase);
public void Append (string phrase);
member this.Append : string -> unit
Public Sub Append (phrase As String)
Параметры
- phrase
- String
Последовательность слов для добавления.
Комментарии
phrase
добавляется в конец текущей последовательности элементов.
См. также раздел
Применяется к
Append(String, SubsetMatchingMode)
- Исходный код:
- GrammarBuilder.cs
- Исходный код:
- GrammarBuilder.cs
- Исходный код:
- GrammarBuilder.cs
Добавляет элемент для подмножества фразы к текущей последовательности элементов грамматики.
public:
void Append(System::String ^ phrase, System::Speech::Recognition::SubsetMatchingMode subsetMatchingCriteria);
public void Append (string phrase, System.Speech.Recognition.SubsetMatchingMode subsetMatchingCriteria);
member this.Append : string * System.Speech.Recognition.SubsetMatchingMode -> unit
Public Sub Append (phrase As String, subsetMatchingCriteria As SubsetMatchingMode)
Параметры
- phrase
- String
Последовательность слов для добавления.
- subsetMatchingCriteria
- SubsetMatchingMode
Соответствующий режим, используемый грамматикой для распознавания фразы.
Примеры
В следующем примере создается грамматика распознавания речи для каждого SubsetMatchingMode значения. Например, созданная грамматика OrderedSubset
распознает фразы "три четыре пять" и "один три пять", а грамматика Subsequence
распознает фразу "три четыре пять", но не фразу "один три пять".
private Grammar[] CreateSubsetMatchTest()
{
List<Grammar> grammars = new List<Grammar>(4);
string phrase = "one two three four five six";
foreach (SubsetMatchingMode mode in
Enum.GetValues(typeof(SubsetMatchingMode)))
{
GrammarBuilder gb = new GrammarBuilder();
gb.Append(phrase, mode);
Grammar grammar = new Grammar(gb);
grammar.Name = mode.ToString();
grammars.Add(grammar);
}
return grammars.ToArray();
}
Комментарии
Элемент подмножества добавляется в конец текущей последовательности элементов. Дополнительные сведения о создании грамматики распознавания речи с помощью строк см. в статье Использование строк для создания грамматики GrammarBuilder.
Подробные сведения об использовании режимов сопоставления подмножества см. в разделе System.Speech.Recognition.SubsetMatchingMode.
См. также раздел
Применяется к
Append(SemanticResultKey)
- Исходный код:
- GrammarBuilder.cs
- Исходный код:
- GrammarBuilder.cs
- Исходный код:
- GrammarBuilder.cs
Добавляет семантический ключ к текущей последовательности элементов грамматики.
public:
void Append(System::Speech::Recognition::SemanticResultKey ^ key);
public void Append (System.Speech.Recognition.SemanticResultKey key);
member this.Append : System.Speech.Recognition.SemanticResultKey -> unit
Public Sub Append (key As SemanticResultKey)
Параметры
Семантический ключ для добавления.
Примеры
Следующий пример является частью консольного приложения для выбора городов происхождения и назначения для рейса. Приложение распознает такие фразы, как "Я хочу полететь из Майами в Чикаго". Обработчик события SpeechRecognized использует SemanticResultKey для извлечения кода аэропорта, указанного в SemanticResultValue , для городов происхождения и назначения.
using System;
using System.Speech.Recognition;
namespace SampleRecognition
{
class Program
{
static void Main(string[] args)
// Initialize an in-process speech recognition engine.
{
using (SpeechRecognitionEngine recognizer =
new SpeechRecognitionEngine())
{
// Create a Choices object and add cities and airport codes
// using SemanticResultValue objects.
Choices cities = new Choices();
cities.Add(new SemanticResultValue("Chicago", "ORD"));
cities.Add(new SemanticResultValue("Boston", "BOS"));
cities.Add(new SemanticResultValue("Miami", "MIA"));
cities.Add(new SemanticResultValue("Dallas", "DFW"));
// Build the phrase and add SemanticResultKeys.
GrammarBuilder chooseCities = new GrammarBuilder();
chooseCities.Append("I want to fly from");
chooseCities.Append(new SemanticResultKey("origin", cities));
chooseCities.Append("to");
chooseCities.Append(new SemanticResultKey("destination", cities));
// Build a Grammar object from the GrammarBuilder.
Grammar bookFlight = new Grammar(chooseCities);
bookFlight.Name = "Book Flight";
// Add a handler for the LoadGrammarCompleted event.
recognizer.LoadGrammarCompleted +=
new EventHandler<LoadGrammarCompletedEventArgs>(recognizer_LoadGrammarCompleted);
// Add a handler for the SpeechRecognized event.
recognizer.SpeechRecognized +=
new EventHandler<SpeechRecognizedEventArgs>(recognizer_SpeechRecognized);
// Configure the input to the recognizer.
recognizer.SetInputToDefaultAudioDevice();
// Load the grammar object and start recognition.
recognizer.LoadGrammarAsync(bookFlight);
recognizer.RecognizeAsync();
// Keep the console window open.
Console.ReadLine();
}
}
// Handle the LoadGrammarCompleted event.
static void recognizer_LoadGrammarCompleted(object sender, LoadGrammarCompletedEventArgs e)
{
Console.WriteLine("Grammar loaded: " + e.Grammar.Name);
Console.WriteLine();
}
// Handle the SpeechRecognized event.
static void recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
Console.WriteLine("Speech recognized: " + e.Result.Text);
Console.WriteLine();
Console.WriteLine("Semantic results:");
Console.WriteLine(" The flight origin is " + e.Result.Semantics["origin"].Value);
Console.WriteLine(" The flight destination is " + e.Result.Semantics["destination"].Value);
}
}
}
Комментарии
key
добавляется в конец текущей последовательности элементов.
Важно!
При добавлении SemanticResultValue экземпляров GrammarBuilder или SemanticResultKey в объект следует избегать создания повторяющихся семантических элементов с тем же именем ключа или нескольких семантических элементов, которые могут многократно изменять Value свойство SemanticValue объекта. Распознаватель речи может вызвать исключение, если он сталкивается с этими обстоятельствами.
См. также раздел
Применяется к
Append(SemanticResultValue)
- Исходный код:
- GrammarBuilder.cs
- Исходный код:
- GrammarBuilder.cs
- Исходный код:
- GrammarBuilder.cs
Добавляет семантическое значение к текущей последовательности элементов грамматики.
public:
void Append(System::Speech::Recognition::SemanticResultValue ^ value);
public void Append (System.Speech.Recognition.SemanticResultValue value);
member this.Append : System.Speech.Recognition.SemanticResultValue -> unit
Public Sub Append (value As SemanticResultValue)
Параметры
- value
- SemanticResultValue
Прибавляемое семантическое значение.
Примеры
Следующий пример является частью консольного приложения для выбора городов происхождения и назначения для рейса. Приложение распознает такие фразы, как "Я хочу полететь из Майами в Чикаго". Обработчик события SpeechRecognized использует SemanticResultKey для извлечения кода аэропорта, указанного в SemanticResultValue , для городов происхождения и назначения.
using System;
using System.Speech.Recognition;
namespace SampleRecognition
{
class Program
{
static void Main(string[] args)
// Initialize an in-process speech recognition engine.
{
using (SpeechRecognitionEngine recognizer =
new SpeechRecognitionEngine())
{
// Create GrammarBuilder objects and append SemanticResultValue objects
// that contain cities and airport codes.
GrammarBuilder chicago = new GrammarBuilder();
chicago.Append(new SemanticResultValue("Chicago", "ORD"));
GrammarBuilder boston = new GrammarBuilder();
boston.Append(new SemanticResultValue("Boston", "BOS"));
GrammarBuilder miami = new GrammarBuilder();
miami.Append(new SemanticResultValue("Miami", "MIA"));
GrammarBuilder dallas = new GrammarBuilder();
dallas.Append(new SemanticResultValue("Dallas", "DFW"));
// Create a Choices object and add the cities using implicit conversion from
// SemanticResultValue to GrammarBuilder.
Choices cities = new Choices();
cities.Add(new Choices(new GrammarBuilder[] { chicago, boston, miami, dallas }));
// Build the phrase and add SemanticResultKeys.
GrammarBuilder chooseCities = new GrammarBuilder();
chooseCities.Append("I want to fly from");
chooseCities.Append(new SemanticResultKey("origin", cities));
chooseCities.Append("to");
chooseCities.Append(new SemanticResultKey("destination", cities));
// Build a Grammar object from the GrammarBuilder.
Grammar bookFlight = new Grammar(chooseCities);
bookFlight.Name = "Book Flight";
// Add a handler for the LoadGrammarCompleted event.
recognizer.LoadGrammarCompleted +=
new EventHandler<LoadGrammarCompletedEventArgs>(recognizer_LoadGrammarCompleted);
// Add a handler for the SpeechRecognized event.
recognizer.SpeechRecognized +=
new EventHandler<SpeechRecognizedEventArgs>(recognizer_SpeechRecognized);
// Configure the input to the recognizer.
recognizer.SetInputToDefaultAudioDevice();
// Load the grammar object and start recognition.
recognizer.LoadGrammarAsync(bookFlight);
recognizer.RecognizeAsync();
// Keep the console window open.
Console.ReadLine();
}
}
// Handle the LoadGrammarCompleted event.
static void recognizer_LoadGrammarCompleted(object sender, LoadGrammarCompletedEventArgs e)
{
Console.WriteLine("Grammar loaded: " + e.Grammar.Name);
Console.WriteLine();
}
// Handle the SpeechRecognized event.
static void recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
Console.WriteLine("Speech recognized: " + e.Result.Text);
Console.WriteLine();
Console.WriteLine("Semantic results:");
Console.WriteLine(" The flight origin is " + e.Result.Semantics["origin"].Value);
Console.WriteLine(" The flight destination is " + e.Result.Semantics["destination"].Value);
}
}
}
Комментарии
value
добавляется в конец текущей последовательности элементов.
Важно!
При добавлении SemanticResultValue экземпляров GrammarBuilder или SemanticResultKey в объект следует избегать создания повторяющихся семантических элементов с тем же именем ключа или нескольких семантических элементов, которые могут многократно изменять Value свойство SemanticValue объекта. Распознаватель речи может вызвать исключение, если он сталкивается с этими обстоятельствами.
См. также раздел
Применяется к
Append(GrammarBuilder)
- Исходный код:
- GrammarBuilder.cs
- Исходный код:
- GrammarBuilder.cs
- Исходный код:
- GrammarBuilder.cs
Добавляет элемент грамматики к текущей последовательности элементов грамматики.
public:
void Append(System::Speech::Recognition::GrammarBuilder ^ builder);
public void Append (System.Speech.Recognition.GrammarBuilder builder);
member this.Append : System.Speech.Recognition.GrammarBuilder -> unit
Public Sub Append (builder As GrammarBuilder)
Параметры
- builder
- GrammarBuilder
Элемент грамматики для добавления.
Примеры
В следующем примере создается грамматика распознавания речи для таких фраз, как "Позвонить Джеймсу на работе" и "Позвонить Анне по мобильному телефону", где слово "телефон" является необязательным. GrammarBuilder Объекты и Choices используются для построения грамматики. В примере подчеркивается использование Append метода .
public static Grammar CreatePhonePhrase()
{
// Create alternatives for person names, locations, devices, and pronouns.
Choices personChoice = new Choices(new string[] {"Anne", "James", "Mary", "Sam"});
Choices locationChoice = new Choices(new string[] {"home", "work"});
Choices deviceChoice = new Choices(new string[] {"home", "work", "cell"});
Choices pronounChoice = new Choices(new string[] {"his", "her"});
// Create a phrase for the receiving device, which optionally contains the word "phone".
GrammarBuilder devicePhrase = new GrammarBuilder(pronounChoice);
devicePhrase.Append(deviceChoice);
devicePhrase.Append("phone", 0, 1);
// Create alternatives for phrases specifying a device or a location.
GrammarBuilder atLocation = new GrammarBuilder("at");
atLocation.Append(locationChoice);
GrammarBuilder onDevice = new GrammarBuilder("on");
onDevice.Append(devicePhrase);
Choices howChoice = new Choices(new GrammarBuilder[] {atLocation, onDevice});
// Build the final phrase.
GrammarBuilder callWho = new GrammarBuilder("Call");
callWho.Append(personChoice);
callWho.Append(howChoice);
// Create the Grammar object.
Grammar callGrammar = new Grammar(callWho);
callGrammar.Name = "Call Grammar";
return callGrammar;
}
Комментарии
builder
добавляется в конец текущей последовательности элементов грамматики.
Примечание
При добавлении GrammarBuilder объектов, содержащих SemanticResultValue экземпляры или SemanticResultKey , к объекту GrammarBuilder следует избегать создания повторяющихся семантических элементов с одинаковым именем ключа или нескольких семантических элементов, которые могут многократно изменять Value свойство SemanticValue объекта. Распознаватель речи может вызвать исключение, если он сталкивается с этими обстоятельствами.
См. также раздел
Применяется к
Append(Choices)
- Исходный код:
- GrammarBuilder.cs
- Исходный код:
- GrammarBuilder.cs
- Исходный код:
- GrammarBuilder.cs
Добавляет набор альтернатив к текущей последовательности элементов грамматики.
public:
void Append(System::Speech::Recognition::Choices ^ alternateChoices);
public void Append (System.Speech.Recognition.Choices alternateChoices);
member this.Append : System.Speech.Recognition.Choices -> unit
Public Sub Append (alternateChoices As Choices)
Параметры
- alternateChoices
- Choices
Набор вариантов для добавления.
Примеры
В следующем примере создается грамматика распознавания речи для таких фраз, как "Позвонить Джеймсу на работе" и "Позвонить Анне по мобильному телефону", где слово "телефон" является необязательным. В примере подчеркивается использование Append метода .
public static Grammar CreatePhonePhrase()
{
// Create alternatives for person names, locations, devices, and pronouns.
Choices personChoice = new Choices(new string[] {"Anne", "James", "Mary", "Sam"});
Choices locationChoice = new Choices(new string[] {"home", "work"});
Choices deviceChoice = new Choices(new string[] {"home", "work", "cell"});
Choices pronounChoice = new Choices(new string[] {"his", "her"});
// Create a phrase for the receiving device, which optionally contains the word "phone".
GrammarBuilder devicePhrase = new GrammarBuilder(pronounChoice);
devicePhrase.Append(deviceChoice);
devicePhrase.Append("phone", 0, 1);
// Create alternatives for phrases specifying a device or a location.
GrammarBuilder atLocation = new GrammarBuilder("at");
atLocation.Append(locationChoice);
GrammarBuilder onDevice = new GrammarBuilder("on");
onDevice.Append(devicePhrase);
Choices howChoice = new Choices(new GrammarBuilder[] {atLocation, onDevice});
// Build the final phrase.
GrammarBuilder callWho = new GrammarBuilder("Call");
callWho.Append(personChoice);
callWho.Append(howChoice);
// Create the Grammar object.
Grammar callGrammar = new Grammar(callWho);
callGrammar.Name = "Call Grammar";
return callGrammar;
}
Комментарии
alternateChoices
добавляется в конец текущей последовательности элементов.
Важно!
При добавлении Choices объектов, содержащих SemanticResultValue экземпляры или SemanticResultKey , к объекту GrammarBuilder следует избегать создания повторяющихся семантических элементов с одинаковым именем ключа или нескольких семантических элементов, которые могут многократно изменять Value свойство SemanticValue объекта. Распознаватель речи может вызвать исключение, если он сталкивается с этими обстоятельствами.