GrammarBuilder.Append Methode

Definitie

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

key
SemanticResultKey

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.

Van toepassing op