GrammarBuilder.Append Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Voegt een grammatica-element toe aan de huidige reeks grammatica-elementen.
Overloads
| Name | Description |
|---|---|
| Append(String, Int32, Int32) |
Voegt een herhaalde woordgroep toe aan de huidige reeks grammatica-elementen. |
| Append(GrammarBuilder, Int32, Int32) |
Voegt een herhaald grammatica-element toe aan de huidige reeks grammatica-elementen. |
| Append(String) |
Voegt een woordgroep toe aan de huidige reeks grammatica-elementen. |
| Append(String, SubsetMatchingMode) |
Voegt een element voor een subset van een woordgroep toe aan de huidige reeks grammatica-elementen. |
| Append(SemanticResultKey) |
Voegt een semantische sleutel toe aan de huidige reeks grammatica-elementen. |
| Append(SemanticResultValue) |
Voegt een semantische waarde toe aan de huidige reeks grammatica-elementen. |
| Append(GrammarBuilder) |
Voegt een grammatica-element toe aan de huidige reeks grammatica-elementen. |
| Append(Choices) |
Voegt een reeks alternatieven toe aan de huidige reeks grammatica-elementen. |
Opmerkingen
Gebruik deze methoden om grammatica-elementen toe te voegen aan een bestaande GrammarBuilder. Wanneer u grammatica-elementen maakt, kunt u deze toevoegen aan de bestaande opbouwfunctie om de beperkingen voor spraakherkennings grammatica geleidelijk te ontwikkelen. Elk element wordt toegevoegd aan het einde van de huidige reeks elementen.
Deze methode bevat overbelastingen voor het GrammarBuildertoevoegen, String, , Choicesen SemanticResultValueSemanticResultKeyobjecten.
Important
De spraakherkenning kan een uitzondering genereren bij het gebruik van een grammatica met spraakherkenning die dubbele semantische elementen bevat met dezelfde sleutelnaam of meerdere semantische elementen die herhaaldelijk de waarde van hetzelfde semantische element kunnen wijzigen.
Zie Spraakherkenning voor meer informatie over het bouwen en gebruiken van grammatica's voor spraakherkenning.
Append(String, Int32, Int32)
Voegt een herhaalde woordgroep toe aan de huidige reeks grammatica-elementen.
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)
Parameters
- phrase
- String
De herhaalde reeks woorden die moeten worden toegevoegd.
- minRepeat
- Int32
Het minimale aantal keren dat invoerkoppeling phrase moet plaatsvinden om een overeenkomst te vormen.
- maxRepeat
- Int32
Het maximum aantal keren dat invoerkoppeling phrase kan optreden om een overeenkomst te vormen.
Voorbeelden
In het volgende voorbeeld wordt een grammatica voor spraakherkenning gemaakt voor woordgroepen zoals 'Call James at work' en 'Call Anne on her cell phone', waarbij het woord 'phone' optioneel is. GrammarBuilder en Choices objecten worden gebruikt om de grammatica samen te stellen. In het voorbeeld wordt het gebruik van de Append methode gemarkeerd.
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;
}
Opmerkingen
De waarde van minRepeat moet groter dan of gelijk zijn aan 0 en kleiner dan of gelijk aan de waarde van maxRepeat.
Zie ook
Van toepassing op
Append(GrammarBuilder, Int32, Int32)
Voegt een herhaald grammatica-element toe aan de huidige reeks grammatica-elementen.
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)
Parameters
- builder
- GrammarBuilder
Het herhaalde grammatica-element dat moet worden toegevoegd.
- minRepeat
- Int32
Het minimale aantal keren dat invoer die overeenkomt met het element dat is builder gedefinieerd, moet plaatsvinden om een overeenkomst te vormen.
- maxRepeat
- Int32
Het maximum aantal keren dat invoer die overeenkomt met het element dat is builder gedefinieerd, kan optreden om een overeenkomst te vormen.
Voorbeelden
In het volgende voorbeeld wordt een grammatica voor spraakherkenning gemaakt voor woordgroepen zoals 'Call James at work' en 'Call Anne on her cell phone', waarbij het woord 'phone' optioneel is. GrammarBuilder en Choices objecten worden gebruikt om de grammatica samen te stellen. In het voorbeeld wordt het gebruik van de Append methode gemarkeerd.
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;
}
Opmerkingen
De waarde van minRepeat moet groter dan of gelijk zijn aan 0 en kleiner dan of gelijk aan de waarde van maxRepeat.
Important
Wanneer u GrammarBuilder objecten toevoegt die of SemanticResultKey exemplaren aan een GrammarBuilder object bevattenSemanticResultValue, moet u voorkomen dat u dubbele semantische elementen met dezelfde sleutelnaam of meerdere semantische elementen maakt die de Value eigenschap van een SemanticValue object herhaaldelijk kunnen wijzigen. De spraakherkenning kan een uitzondering genereren als deze omstandigheden optreden.
Zie ook
Van toepassing op
Append(String)
Voegt een woordgroep toe aan de huidige reeks grammatica-elementen.
public:
void Append(System::String ^ phrase);
public void Append(string phrase);
member this.Append : string -> unit
Public Sub Append (phrase As String)
Parameters
- phrase
- String
De reeks woorden die moeten worden toegevoegd.
Opmerkingen
phrase wordt toegevoegd aan het einde van de huidige reeks elementen.
Zie ook
Van toepassing op
Append(String, SubsetMatchingMode)
Voegt een element voor een subset van een woordgroep toe aan de huidige reeks grammatica-elementen.
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)
Parameters
- phrase
- String
De reeks woorden die moeten worden toegevoegd.
- subsetMatchingCriteria
- SubsetMatchingMode
De overeenkomende modus die de grammatica gebruikt om de woordgroep te herkennen.
Voorbeelden
In het volgende voorbeeld wordt voor elke SubsetMatchingMode waarde een grammatica voor spraakherkenning gemaakt. De gegenereerde grammatica OrderedSubset herkent bijvoorbeeld de woordgroepen 'drie vijf' en 'één vijf', en de grammatica Subsequence herkent de woordgroep 'drie vijf', maar niet de woordgroep 'één vijf'.
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();
}
Opmerkingen
Het subsetelement wordt toegevoegd aan het einde van de huidige reeks elementen. Zie Strings gebruiken om een GrammarBuilder Grammar te maken voor meer informatie over het bouwen van een grammaticaherkenning met behulp van tekenreeksen.
Zie voor gedetailleerde informatie over het gebruik van subsetkoppelingsmodi System.Speech.Recognition.SubsetMatchingMode.
Zie ook
Van toepassing op
Append(SemanticResultKey)
Voegt een semantische sleutel toe aan de huidige reeks grammatica-elementen.
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)
Parameters
De semantische sleutel die moet worden toegevoegd.
Voorbeelden
Het volgende voorbeeld maakt deel uit van een consoletoepassing voor het kiezen van steden van oorsprong en bestemming voor een vlucht. De toepassing herkent zinnen zoals 'Ik wil vliegen van Miami naar Chicago'. De handler voor de SpeechRecognized gebeurtenis gebruikt de SemanticResultKey om de luchthavencode op te halen die is opgegeven in de SemanticResultValue voor de oorsprongs- en bestemmingssteden opgegeven.
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);
}
}
}
Opmerkingen
key wordt toegevoegd aan het einde van de huidige reeks elementen.
Important
Wanneer u een object toevoegt SemanticResultValue of SemanticResultKey exemplaren toevoegt GrammarBuilder , moet u voorkomen dat dubbele semantische elementen met dezelfde sleutelnaam of meerdere semantische elementen worden gemaakt die de Value eigenschap van een SemanticValue object herhaaldelijk kunnen wijzigen. De spraakherkenning kan een uitzondering genereren als deze omstandigheden optreden.
Zie ook
Van toepassing op
Append(SemanticResultValue)
Voegt een semantische waarde toe aan de huidige reeks grammatica-elementen.
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)
Parameters
- value
- SemanticResultValue
De semantische waarde die moet worden toegevoegd.
Voorbeelden
Het volgende voorbeeld maakt deel uit van een consoletoepassing voor het kiezen van steden van oorsprong en bestemming voor een vlucht. De toepassing herkent zinnen zoals 'Ik wil vliegen van Miami naar Chicago'. De handler voor de SpeechRecognized gebeurtenis gebruikt de SemanticResultKey om de luchthavencode op te halen die is opgegeven in de SemanticResultValue voor de oorsprongs- en bestemmingssteden opgegeven.
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);
}
}
}
Opmerkingen
value wordt toegevoegd aan het einde van de huidige reeks elementen.
Important
Wanneer u een object toevoegt SemanticResultValue of SemanticResultKey exemplaren toevoegt GrammarBuilder , moet u voorkomen dat dubbele semantische elementen met dezelfde sleutelnaam of meerdere semantische elementen worden gemaakt die de Value eigenschap van een SemanticValue object herhaaldelijk kunnen wijzigen. De spraakherkenning kan een uitzondering genereren als deze omstandigheden optreden.
Zie ook
Van toepassing op
Append(GrammarBuilder)
Voegt een grammatica-element toe aan de huidige reeks grammatica-elementen.
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)
Parameters
- builder
- GrammarBuilder
Het grammatica-element dat moet worden toegevoegd.
Voorbeelden
In het volgende voorbeeld wordt een grammatica voor spraakherkenning gemaakt voor woordgroepen zoals 'Call James at work' en 'Call Anne on her cell phone', waarbij het woord 'phone' optioneel is. GrammarBuilder en Choices objecten worden gebruikt om de grammatica samen te stellen. In het voorbeeld wordt het gebruik van de Append methode gemarkeerd.
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;
}
Opmerkingen
builder wordt toegevoegd aan het einde van de huidige reeks grammatica-elementen.
Note
Wanneer u GrammarBuilder objecten toevoegt die of SemanticResultKey exemplaren aan een GrammarBuilder object bevattenSemanticResultValue, moet u voorkomen dat u dubbele semantische elementen met dezelfde sleutelnaam of meerdere semantische elementen maakt die de Value eigenschap van een SemanticValue object herhaaldelijk kunnen wijzigen. De spraakherkenning kan een uitzondering genereren als deze omstandigheden optreden.
Zie ook
Van toepassing op
Append(Choices)
Voegt een reeks alternatieven toe aan de huidige reeks grammatica-elementen.
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)
Parameters
- alternateChoices
- Choices
De set alternatieven die moeten worden toegevoegd.
Voorbeelden
In het volgende voorbeeld wordt een grammatica voor spraakherkenning gemaakt voor woordgroepen zoals 'Call James at work' en 'Call Anne on her cell phone', waarbij het woord 'phone' optioneel is. In het voorbeeld wordt het gebruik van de Append methode gemarkeerd.
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;
}
Opmerkingen
alternateChoices wordt toegevoegd aan het einde van de huidige reeks elementen.
Important
Wanneer u Choices objecten toevoegt die of SemanticResultKey exemplaren aan een GrammarBuilder object bevattenSemanticResultValue, moet u voorkomen dat u dubbele semantische elementen met dezelfde sleutelnaam of meerdere semantische elementen maakt die de Value eigenschap van een SemanticValue object herhaaldelijk kunnen wijzigen. De spraakherkenning kan een uitzondering genereren als deze omstandigheden optreden.