Freigeben über


GrammarBuilder.Append Methode

Definition

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

key
SemanticResultKey

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.

Gilt für: