GrammarBuilder.Append Methode

Definition

Fügt der aktuellen Sequenz von Grammatikelementen eine Diktatgrammatik an.

Überlädt

Append(String, Int32, Int32)

Fügt der aktuellen Sequenz von Grammatikelementen einen wiederholten Ausdruck an.

Append(GrammarBuilder, Int32, Int32)

Fügt der aktuellen Sequenz von Grammatikelementen eine wiederholte Grammatik an.

Append(String)

Fügt der aktuellen Sequenz von Grammatikelementen einen Ausdruck an.

Append(String, SubsetMatchingMode)

Fügt der aktuellen Sequenz von Grammatikelementen ein Element für eine Teilmenge eines Ausdrucks an.

Append(SemanticResultKey)

Fügt der aktuellen Sequenz von Grammatikelementen einen semantischen Schlüssel an.

Append(SemanticResultValue)

Fügt der aktuellen Sequenz von Grammatikelementen einen semantischen Schlüssel an.

Append(GrammarBuilder)

Fügt der aktuellen Sequenz von Grammatikelementen eine Diktatgrammatik an.

Append(Choices)

Fügt einen Satz von Alternativen zur aktuellen Sequenz von Grammatikelementen an.

Hinweise

Verwenden Sie diese Methoden, um Grammatikelemente an eine vorhandene GrammarBuilderanzufügen. Wenn Sie Grammatikelemente erstellen, 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 Sequenz von Elementen hinzugefügt.

Diese Methode verfügt über Überladungen zum Anfügen von GrammarBuilder- , String- Choices, SemanticResultKey- und SemanticResultValue -Objekten.

Wichtig

Die Spracherkennung kann eine Ausnahme auslösen, wenn eine Spracherkennungsgrammatik verwendet wird, die doppelte semantische Elemente mit demselben Schlüsselnamen enthält, oder mehrere semantische Elemente, 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

Fügt der aktuellen Sequenz von Grammatikelementen einen wiederholten Ausdruck 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 anzufügende Wortsequenz.

minRepeat
Int32

Die minimale Wiederholungsrate für eine Übereinstimmung der Eingabe mit phrase, nach der eine Übereinstimmung anerkannt wird.

maxRepeat
Int32

Die maximale Wiederholungsrate für eine Übereinstimmung der Eingabe mit phrase, nach der eine Übereinstimmung anerkannt wird.

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 "phone" 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 oder gleich dem Wert von maxRepeatsein.

Weitere Informationen

Gilt für:

Append(GrammarBuilder, Int32, Int32)

Quelle:
GrammarBuilder.cs
Quelle:
GrammarBuilder.cs
Quelle:
GrammarBuilder.cs

Fügt der aktuellen Sequenz von Grammatikelementen eine wiederholte Grammatik 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 anzufügende Grammatikelement.

minRepeat
Int32

Die minimale Wiederholungsrate für eine Übereinstimmung der Eingabe mit dem durch builder definierten Element, nach der eine Übereinstimmung anerkannt wird.

maxRepeat
Int32

Die maximale Wiederholungsrate für eine Übereinstimmung der Eingabe mit dem durch builder definierten Element, nach der eine Übereinstimmung anerkannt wird.

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 "phone" 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 oder gleich dem Wert von maxRepeatsein.

Wichtig

Wenn Sie Objekte anfügenGrammarBuilder, die oder Instanzen an ein GrammarBuilder Objekt enthalten SemanticResultKeySemanticResultValue, sollten Sie vermeiden, dass Duplikate semantische Elemente mit demselben Schlüsselnamen oder mehreren semantischen Elementen 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

Fügt der aktuellen Sequenz von Grammatikelementen einen Ausdruck 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 anzufügende Wortsequenz.

Hinweise

phrase wird am Ende der aktuellen Sequenz von Elementen hinzugefügt.

Weitere Informationen

Gilt für:

Append(String, SubsetMatchingMode)

Quelle:
GrammarBuilder.cs
Quelle:
GrammarBuilder.cs
Quelle:
GrammarBuilder.cs

Fügt der aktuellen Sequenz von Grammatikelementen ein Element für eine Teilmenge eines Ausdrucks 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 anzufügende Wortsequenz.

subsetMatchingCriteria
SubsetMatchingMode

Der entsprechende Modus, den die Grammatik verwendet, um den Ausdruck zu erkennen.

Beispiele

Im folgenden Beispiel wird für jeden SubsetMatchingMode Wert eine Spracherkennungsgrammatik erstellt. Beispielsweise erkennt die generierte Grammatik OrderedSubset die Ausdrücke "three four five" und "one three five", und die Grammatik Subsequence erkennt den Ausdruck "three four five", aber nicht den Ausdruck "one three five".

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 Teilmengenelement wird am Ende der aktuellen Sequenz 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 Teilmengenübereinstimmungsmodi finden Sie unter System.Speech.Recognition.SubsetMatchingMode.

Weitere Informationen

Gilt für:

Append(SemanticResultKey)

Quelle:
GrammarBuilder.cs
Quelle:
GrammarBuilder.cs
Quelle:
GrammarBuilder.cs

Fügt der aktuellen Sequenz von Grammatikelementen einen semantischen Schlüssel 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

key
SemanticResultKey

Der semantische Schlüssel, der angefügt werden soll.

Beispiele

Das folgende Beispiel ist Teil einer Konsolenanwendung zum Auswählen von Ursprungs- und Zielstädten für einen 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 flughafenspezifischen Code, der in der SemanticResultValue für die Ursprungs- und Zielstädte 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 Sequenz von Elementen hinzugefügt.

Wichtig

Achten Sie beim Anfügen SemanticResultValue oder SemanticResultKey von Instanzen an ein GrammarBuilder Objekt darauf, doppelte semantische Elemente mit demselben Schlüsselnamen oder mehreren semantischen Elementen zu vermeiden, 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

Fügt der aktuellen Sequenz von Grammatikelementen einen semantischen Schlüssel 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 anzufügende semantische Wert.

Beispiele

Das folgende Beispiel ist Teil einer Konsolenanwendung zum Auswählen von Ursprungs- und Zielstädten für einen 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 flughafenspezifischen Code, der in der SemanticResultValue für die Ursprungs- und Zielstädte 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 Sequenz von Elementen hinzugefügt.

Wichtig

Achten Sie beim Anfügen SemanticResultValue oder SemanticResultKey von Instanzen an ein GrammarBuilder Objekt darauf, doppelte semantische Elemente mit demselben Schlüsselnamen oder mehreren semantischen Elementen zu vermeiden, 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

Fügt der aktuellen Sequenz von Grammatikelementen eine Diktatgrammatik 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 "phone" 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 oder Instanzen an ein GrammarBuilder Objekt enthalten SemanticResultKeySemanticResultValue, sollten Sie vermeiden, dass Duplikate semantische Elemente mit demselben Schlüsselnamen oder mehreren semantischen Elementen 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

Fügt einen Satz 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

Der Satz von Alternativen, die angefügt werden sollen.

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 "phone" 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 Sequenz von Elementen hinzugefügt.

Wichtig

Wenn Sie Objekte anfügenChoices, die oder Instanzen an ein GrammarBuilder Objekt enthalten SemanticResultKeySemanticResultValue, sollten Sie vermeiden, dass Duplikate semantische Elemente mit demselben Schlüsselnamen oder mehreren semantischen Elementen erstellen, die die Value Eigenschaft eines SemanticValue Objekts wiederholt ändern könnten. Die Spracherkennung kann eine Ausnahme auslösen, wenn diese Umstände auftreten.

Gilt für: