GrammarBuilder.Append Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Fügt ein Grammatikelement an die aktuelle Sequenz von Grammatikelementen an.
Überlädt
| Name | Beschreibung |
|---|---|
| Append(String, Int32, Int32) |
Fügt einen wiederholten Ausdruck an die aktuelle Sequenz von Grammatikelementen an. |
| Append(GrammarBuilder, Int32, Int32) |
Fügt ein wiederholtes Grammatikelement an die aktuelle Sequenz von Grammatikelementen an. |
| Append(String) |
Fügt einen Ausdruck an die aktuelle Sequenz von Grammatikelementen an. |
| Append(String, SubsetMatchingMode) |
Fügt ein Element für eine Teilmenge eines Ausdrucks an die aktuelle Sequenz von Grammatikelementen an. |
| Append(SemanticResultKey) |
Fügt einen semantischen Schlüssel an die aktuelle Sequenz von Grammatikelementen an. |
| Append(SemanticResultValue) |
Fügt einen semantischen Wert an die aktuelle Sequenz von Grammatikelementen an. |
| Append(GrammarBuilder) |
Fügt ein Grammatikelement an die aktuelle Sequenz von Grammatikelementen an. |
| Append(Choices) |
Fügt eine Reihe von Alternativen zur aktuellen Sequenz von Grammatikelementen an. |
Hinweise
Verwenden Sie diese Methoden, um Grammatikelemente an ein vorhandenes GrammarBuilderElement anzufügen. Beim Erstellen von Grammatikelementen können Sie sie an den vorhandenen Generator anfügen, um die Einschränkungen für eine Spracherkennungsgrammatik schrittweise zu entwickeln. Jedes Element wird am Ende der aktuellen Abfolge von Elementen hinzugefügt.
Diese Methode verfügt über Überladungen zum Anfügen GrammarBuildervon , , String, Choices, SemanticResultKeyund SemanticResultValue Objekten.
Von Bedeutung
Die Spracherkennung kann eine Ausnahme auslösen, wenn eine Spracherkennungsgrammatik verwendet wird, die doppelte semantische Elemente mit demselben Schlüsselnamen oder mehreren semantischen Elementen enthält, die den Wert desselben semantischen Elements wiederholt ändern können.
Weitere Informationen zum Erstellen und Verwenden von Spracherkennungsgrammatiken finden Sie unter "Spracherkennung".
Append(String, Int32, Int32)
- Quelle:
- GrammarBuilder.cs
- Quelle:
- GrammarBuilder.cs
- Quelle:
- GrammarBuilder.cs
- Quelle:
- GrammarBuilder.cs
Fügt einen wiederholten Ausdruck an die aktuelle Sequenz von Grammatikelementen an.
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)
Parameter
- phrase
- String
Die wiederholte Abfolge der anzufügenden Wörter.
- minRepeat
- Int32
Die mindeste Anzahl der Male, mit denen der Eingabeabgleich phrase durchgeführt werden muss, um eine Übereinstimmung zu bilden.
- maxRepeat
- Int32
Die maximale Anzahl der Male, mit denen der Eingabeabgleich phrase erfolgen kann, um eine Übereinstimmung zu bilden.
Beispiele
Im folgenden Beispiel wird eine Spracherkennungsgrammatik für Ausdrücke wie "Call James at work" und "Call Anne on her cell phone" erstellt, wobei das Wort "Telefon" optional ist. GrammarBuilder und Choices Objekte werden verwendet, um die Grammatik zu erstellen. Im Beispiel wird die Verwendung der Append Methode hervorgehoben.
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;
}
Hinweise
Der Wert von minRepeat muss größer oder gleich 0 und kleiner als oder gleich dem Wert von maxRepeatsein.
Weitere Informationen
Gilt für:
Append(GrammarBuilder, Int32, Int32)
- Quelle:
- GrammarBuilder.cs
- Quelle:
- GrammarBuilder.cs
- Quelle:
- GrammarBuilder.cs
- Quelle:
- GrammarBuilder.cs
Fügt ein wiederholtes Grammatikelement an die aktuelle Sequenz von Grammatikelementen an.
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)
Parameter
- builder
- GrammarBuilder
Das wiederholte Grammatikelement, das angefügt werden soll.
- minRepeat
- Int32
Die Mindestanzahl der Eingaben, die mit dem durch definierten builder Element übereinstimmen, müssen eine Übereinstimmung darstellen.
- maxRepeat
- Int32
Die maximale Anzahl von Eingaben, die mit dem durch definierten builder Element übereinstimmen, können eine Übereinstimmung darstellen.
Beispiele
Im folgenden Beispiel wird eine Spracherkennungsgrammatik für Ausdrücke wie "Call James at work" und "Call Anne on her cell phone" erstellt, wobei das Wort "Telefon" optional ist. GrammarBuilder und Choices Objekte werden verwendet, um die Grammatik zu erstellen. Im Beispiel wird die Verwendung der Append Methode hervorgehoben.
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;
}
Hinweise
Der Wert von minRepeat muss größer oder gleich 0 und kleiner als oder gleich dem Wert von maxRepeatsein.
Von Bedeutung
Wenn Sie Objekte anfügenGrammarBuilder, die ein Objekt enthalten oder SemanticResultKey Instanzen enthaltenSemanticResultValue, sollten Sie vermeiden, doppelte semantische Elemente mit demselben Schlüsselnamen oder mehreren semantischen Elementen zu GrammarBuilder erstellen, die die Value Eigenschaft eines SemanticValue Objekts wiederholt ändern könnten. Die Spracherkennung kann eine Ausnahme auslösen, wenn diese Umstände auftreten.
Weitere Informationen
Gilt für:
Append(String)
- Quelle:
- GrammarBuilder.cs
- Quelle:
- GrammarBuilder.cs
- Quelle:
- GrammarBuilder.cs
- Quelle:
- GrammarBuilder.cs
Fügt einen Ausdruck an die aktuelle Sequenz von Grammatikelementen an.
public:
void Append(System::String ^ phrase);
public void Append(string phrase);
member this.Append : string -> unit
Public Sub Append (phrase As String)
Parameter
- phrase
- String
Die Reihenfolge der anzufügenden Wörter.
Hinweise
phrase wird am Ende der aktuellen Abfolge von Elementen hinzugefügt.
Weitere Informationen
Gilt für:
Append(String, SubsetMatchingMode)
- Quelle:
- GrammarBuilder.cs
- Quelle:
- GrammarBuilder.cs
- Quelle:
- GrammarBuilder.cs
- Quelle:
- GrammarBuilder.cs
Fügt ein Element für eine Teilmenge eines Ausdrucks an die aktuelle Sequenz von Grammatikelementen an.
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)
Parameter
- phrase
- String
Die Reihenfolge der anzufügenden Wörter.
- subsetMatchingCriteria
- SubsetMatchingMode
Der Abgleichsmodus, den die Grammatik verwendet, um den Ausdruck zu erkennen.
Beispiele
Im folgenden Beispiel wird für jeden SubsetMatchingMode Wert eine Grammatik für die Spracherkennung erstellt. Beispielsweise erkennt die generierte Grammatik OrderedSubset die Ausdrücke "drei vier fünf" und "ein drei fünf", und die Grammatik Subsequence erkennt den Ausdruck "drei vier fünf", aber nicht den Ausdruck "ein drei fünf".
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();
}
Hinweise
Das Teilmengeelement wird am Ende der aktuellen Abfolge von Elementen hinzugefügt. Weitere Informationen zum Erstellen einer Spracherkennungsgrammatik mithilfe von Zeichenfolgen finden Sie unter Verwenden von Zeichenfolgen zum Erstellen einer GrammarBuilder-Grammatik.
Ausführliche Informationen zur Verwendung von Teilmengenabgleichsmodi finden Sie unter System.Speech.Recognition.SubsetMatchingMode.
Weitere Informationen
Gilt für:
Append(SemanticResultKey)
- Quelle:
- GrammarBuilder.cs
- Quelle:
- GrammarBuilder.cs
- Quelle:
- GrammarBuilder.cs
- Quelle:
- GrammarBuilder.cs
Fügt einen semantischen Schlüssel an die aktuelle Sequenz von Grammatikelementen an.
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)
Parameter
Der semantische Schlüssel, der angefügt werden soll.
Beispiele
Das folgende Beispiel ist Teil einer Konsolenanwendung zum Auswählen von Herkunfts- und Zielstädten für ein Flug. Die Anwendung erkennt Ausdrücke wie "Ich möchte von Miami nach Chicago fliegen". Der Handler für das SpeechRecognized Ereignis verwendet den SemanticResultKey Flughafencode, der in SemanticResultValue den Ursprungs- und Zielstädten angegeben ist.
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);
}
}
}
Hinweise
key wird am Ende der aktuellen Abfolge von Elementen hinzugefügt.
Von Bedeutung
Wenn Sie an ein Objekt anhängen oder SemanticResultKey Instanzen anfügen SemanticResultValueGrammarBuilder, sollten Sie vermeiden, doppelte semantische Elemente mit demselben Schlüsselnamen oder mehreren semantischen Elementen zu erstellen, die die Value Eigenschaft eines SemanticValue Objekts wiederholt ändern könnten. Die Spracherkennung kann eine Ausnahme auslösen, wenn diese Umstände auftreten.
Weitere Informationen
Gilt für:
Append(SemanticResultValue)
- Quelle:
- GrammarBuilder.cs
- Quelle:
- GrammarBuilder.cs
- Quelle:
- GrammarBuilder.cs
- Quelle:
- GrammarBuilder.cs
Fügt einen semantischen Wert an die aktuelle Sequenz von Grammatikelementen an.
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)
Parameter
- value
- SemanticResultValue
Der semantische Wert, der angefügt werden soll.
Beispiele
Das folgende Beispiel ist Teil einer Konsolenanwendung zum Auswählen von Herkunfts- und Zielstädten für ein Flug. Die Anwendung erkennt Ausdrücke wie "Ich möchte von Miami nach Chicago fliegen". Der Handler für das SpeechRecognized Ereignis verwendet den SemanticResultKey Flughafencode, der in SemanticResultValue den Ursprungs- und Zielstädten angegeben ist.
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);
}
}
}
Hinweise
value wird am Ende der aktuellen Abfolge von Elementen hinzugefügt.
Von Bedeutung
Wenn Sie an ein Objekt anhängen oder SemanticResultKey Instanzen anfügen SemanticResultValueGrammarBuilder, sollten Sie vermeiden, doppelte semantische Elemente mit demselben Schlüsselnamen oder mehreren semantischen Elementen zu erstellen, die die Value Eigenschaft eines SemanticValue Objekts wiederholt ändern könnten. Die Spracherkennung kann eine Ausnahme auslösen, wenn diese Umstände auftreten.
Weitere Informationen
Gilt für:
Append(GrammarBuilder)
- Quelle:
- GrammarBuilder.cs
- Quelle:
- GrammarBuilder.cs
- Quelle:
- GrammarBuilder.cs
- Quelle:
- GrammarBuilder.cs
Fügt ein Grammatikelement an die aktuelle Sequenz von Grammatikelementen an.
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)
Parameter
- builder
- GrammarBuilder
Das anzufügende Grammatikelement.
Beispiele
Im folgenden Beispiel wird eine Spracherkennungsgrammatik für Ausdrücke wie "Call James at work" und "Call Anne on her cell phone" erstellt, wobei das Wort "Telefon" optional ist. GrammarBuilder und Choices Objekte werden verwendet, um die Grammatik zu erstellen. Im Beispiel wird die Verwendung der Append Methode hervorgehoben.
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;
}
Hinweise
builder wird am Ende der aktuellen Sequenz von Grammatikelementen hinzugefügt.
Hinweis
Wenn Sie Objekte anfügenGrammarBuilder, die ein Objekt enthalten oder SemanticResultKey Instanzen enthaltenSemanticResultValue, sollten Sie vermeiden, doppelte semantische Elemente mit demselben Schlüsselnamen oder mehreren semantischen Elementen zu GrammarBuilder erstellen, die die Value Eigenschaft eines SemanticValue Objekts wiederholt ändern könnten. Die Spracherkennung kann eine Ausnahme auslösen, wenn diese Umstände auftreten.
Weitere Informationen
Gilt für:
Append(Choices)
- Quelle:
- GrammarBuilder.cs
- Quelle:
- GrammarBuilder.cs
- Quelle:
- GrammarBuilder.cs
- Quelle:
- GrammarBuilder.cs
Fügt eine Reihe von Alternativen zur aktuellen Sequenz von Grammatikelementen an.
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)
Parameter
- alternateChoices
- Choices
Die Gruppe der anzufügenden Alternativen.
Beispiele
Im folgenden Beispiel wird eine Spracherkennungsgrammatik für Ausdrücke wie "Call James at work" und "Call Anne on her cell phone" erstellt, wobei das Wort "Telefon" optional ist. Im Beispiel wird die Verwendung der Append Methode hervorgehoben.
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;
}
Hinweise
alternateChoices wird am Ende der aktuellen Abfolge von Elementen hinzugefügt.
Von Bedeutung
Wenn Sie Objekte anfügenChoices, die ein Objekt enthalten oder SemanticResultKey Instanzen enthaltenSemanticResultValue, sollten Sie vermeiden, doppelte semantische Elemente mit demselben Schlüsselnamen oder mehreren semantischen Elementen zu GrammarBuilder erstellen, die die Value Eigenschaft eines SemanticValue Objekts wiederholt ändern könnten. Die Spracherkennung kann eine Ausnahme auslösen, wenn diese Umstände auftreten.