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 объектов.
Important
Распознаватель речи может вызвать исключение при использовании грамматики распознавания речи, содержащей повторяющиеся семантические элементы с одинаковым именем ключа или несколькими семантических элементов, которые могут многократно изменять значение одного и того же семантического элемента.
Дополнительные сведения о создании и использовании грамматик распознавания речи см. в разделе " Распознавание речи".
Append(String, Int32, Int32)
- Исходный код:
- GrammarBuilder.cs
- Исходный код:
- 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 входных данных может представлять собой совпадение.
Примеры
В следующем примере создается грамматика распознавания речи для фраз, таких как "Call James at work" и "Call Anne на своем мобильном телефоне", где слово "телефон" является необязательным. 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
- Исходный код:
- 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 , могут представлять собой совпадение.
Примеры
В следующем примере создается грамматика распознавания речи для фраз, таких как "Call James at work" и "Call Anne на своем мобильном телефоне", где слово "телефон" является необязательным. 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.
Important
При добавлении GrammarBuilder объектов, содержащих SemanticResultValue или экземпляровSemanticResultKey, к объекту следует избегать создания повторяющихся семантических элементов с одинаковым именем ключа или GrammarBuilder несколькими семантических элементов, которые могут многократно изменять Value свойство SemanticValue объекта. Распознаватель речи может вызвать исключение, если он сталкивается с этими обстоятельствами.
См. также раздел
Применяется к
Append(String)
- Исходный код:
- GrammarBuilder.cs
- Исходный код:
- 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
- Исходный код:
- 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();
}
Комментарии
Элемент подмножества добавляется в конец текущей последовательности элементов. Дополнительные сведения о создании грамматики распознавания речи с помощью строк см. в статье Using Strings to Create a GrammarBuilder GrammarBuilder Grammar.
Подробные сведения об использовании режимов сопоставления подмножества см. в разделе System.Speech.Recognition.SubsetMatchingMode.
См. также раздел
Применяется к
Append(SemanticResultKey)
- Исходный код:
- GrammarBuilder.cs
- Исходный код:
- 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 добавляется в конец текущей последовательности элементов.
Important
При добавлении SemanticResultValue или экземплярах к SemanticResultKey объекту убедитесь, что не следует создавать повторяющиеся семантические элементы с одинаковым именем ключа или GrammarBuilder несколькими семантических элементов, которые могут многократно изменять Value свойство SemanticValue объекта. Распознаватель речи может вызвать исключение, если он сталкивается с этими обстоятельствами.
См. также раздел
Применяется к
Append(SemanticResultValue)
- Исходный код:
- GrammarBuilder.cs
- Исходный код:
- 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 добавляется в конец текущей последовательности элементов.
Important
При добавлении SemanticResultValue или экземплярах к SemanticResultKey объекту убедитесь, что не следует создавать повторяющиеся семантические элементы с одинаковым именем ключа или GrammarBuilder несколькими семантических элементов, которые могут многократно изменять Value свойство SemanticValue объекта. Распознаватель речи может вызвать исключение, если он сталкивается с этими обстоятельствами.
См. также раздел
Применяется к
Append(GrammarBuilder)
- Исходный код:
- GrammarBuilder.cs
- Исходный код:
- 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
Добавляемый элемент грамматики.
Примеры
В следующем примере создается грамматика распознавания речи для фраз, таких как "Call James at work" и "Call Anne на своем мобильном телефоне", где слово "телефон" является необязательным. 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 добавляется в конец текущей последовательности элементов грамматики.
Note
При добавлении GrammarBuilder объектов, содержащих SemanticResultValue или экземпляровSemanticResultKey, к объекту следует избегать создания повторяющихся семантических элементов с одинаковым именем ключа или GrammarBuilder несколькими семантических элементов, которые могут многократно изменять Value свойство SemanticValue объекта. Распознаватель речи может вызвать исключение, если он сталкивается с этими обстоятельствами.
См. также раздел
Применяется к
Append(Choices)
- Исходный код:
- GrammarBuilder.cs
- Исходный код:
- 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
Набор альтернативных вариантов для добавления.
Примеры
В следующем примере создается грамматика распознавания речи для фраз, таких как "Call James at work" и "Call Anne на своем мобильном телефоне", где слово "телефон" является необязательным. В примере показано использование 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 добавляется в конец текущей последовательности элементов.
Important
При добавлении Choices объектов, содержащих SemanticResultValue или экземпляровSemanticResultKey, к объекту следует избегать создания повторяющихся семантических элементов с одинаковым именем ключа или GrammarBuilder несколькими семантических элементов, которые могут многократно изменять Value свойство SemanticValue объекта. Распознаватель речи может вызвать исключение, если он сталкивается с этими обстоятельствами.