GrammarBuilder.Append Metod

Definition

Lägger till ett grammatikelement i den aktuella sekvensen med grammatikelement.

Överlagringar

Name Description
Append(String, Int32, Int32)

Lägger till en upprepad fras i den aktuella sekvensen med grammatikelement.

Append(GrammarBuilder, Int32, Int32)

Lägger till ett upprepat grammatikelement i den aktuella sekvensen med grammatikelement.

Append(String)

Lägger till en fras i den aktuella sekvensen med grammatikelement.

Append(String, SubsetMatchingMode)

Lägger till ett element för en delmängd av en fras i den aktuella sekvensen med grammatikelement.

Append(SemanticResultKey)

Lägger till en semantisk nyckel i den aktuella sekvensen med grammatikelement.

Append(SemanticResultValue)

Lägger till ett semantiskt värde i den aktuella sekvensen med grammatikelement.

Append(GrammarBuilder)

Lägger till ett grammatikelement i den aktuella sekvensen med grammatikelement.

Append(Choices)

Lägger till en uppsättning alternativ till den aktuella sekvensen med grammatikelement.

Kommentarer

Använd dessa metoder för att lägga till grammatikelement i en befintlig GrammarBuilder. När du skapar grammatikelement kan du lägga till dem i den befintliga byggaren för att gradvis utveckla begränsningarna för en grammatik för taligenkänning. Varje element läggs till i slutet av den aktuella sekvensen med element.

Den här metoden har överlagringar för att lägga till GrammarBuilder, String, Choices, SemanticResultKeyoch SemanticResultValue objekt.

Important

Taligenkänningen kan utlösa ett undantag när du använder en taligenkännings grammatik som innehåller dubbletter av semantiska element med samma nyckelnamn eller flera semantiska element som upprepade gånger kan ändra värdet för samma semantiska element.

Mer information om hur du skapar och använder grammatik för taligenkänning finns i Taligenkänning.

Append(String, Int32, Int32)

Lägger till en upprepad fras i den aktuella sekvensen med grammatikelement.

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)

Parametrar

phrase
String

Den upprepade ordsekvensen som ska läggas till.

minRepeat
Int32

Det minsta antalet gånger som indatamatchning phrase måste ske för att utgöra en matchning.

maxRepeat
Int32

Det maximala antalet gånger som indatamatchning phrase kan ske för att utgöra en matchning.

Exempel

I följande exempel skapas en grammatik för taligenkänning för fraser som "Ring James på jobbet" och "Ring Anne på hennes mobiltelefon", där ordet "telefon" är valfritt. GrammarBuilder och Choices objekt används för att konstruera grammatiken. Exemplet visar hur metoden används Append .

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;
}

Kommentarer

Värdet minRepeat för måste vara större än eller lika med 0 och mindre än eller lika med värdet för maxRepeat.

Se även

Gäller för

Append(GrammarBuilder, Int32, Int32)

Lägger till ett upprepat grammatikelement i den aktuella sekvensen med grammatikelement.

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)

Parametrar

builder
GrammarBuilder

Det upprepade grammatikelementet som ska läggas till.

minRepeat
Int32

Det minsta antalet gånger som indata matchar elementet som definierats av builder måste ske för att utgöra en matchning.

maxRepeat
Int32

Det maximala antalet gånger som indata matchar elementet som definierats av builder kan inträffa för att utgöra en matchning.

Exempel

I följande exempel skapas en grammatik för taligenkänning för fraser som "Ring James på jobbet" och "Ring Anne på hennes mobiltelefon", där ordet "telefon" är valfritt. GrammarBuilder och Choices objekt används för att konstruera grammatiken. Exemplet visar hur metoden används Append .

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;
}

Kommentarer

Värdet minRepeat för måste vara större än eller lika med 0 och mindre än eller lika med värdet för maxRepeat.

Important

När du lägger till GrammarBuilder objekt som innehåller SemanticResultValue eller SemanticResultKey instanser i ett GrammarBuilder objekt bör du undvika att skapa dubbletter av semantiska element med samma nyckelnamn eller flera semantiska element som upprepade gånger kan ändra egenskapen för Value ett SemanticValue objekt. Taligenkänningen kan utlösa ett undantag om den stöter på dessa omständigheter.

Se även

Gäller för

Append(String)

Lägger till en fras i den aktuella sekvensen med grammatikelement.

public:
 void Append(System::String ^ phrase);
public void Append(string phrase);
member this.Append : string -> unit
Public Sub Append (phrase As String)

Parametrar

phrase
String

Ordsekvensen som ska läggas till.

Kommentarer

phrase läggs till i slutet av den aktuella sekvensen med element.

Se även

Gäller för

Append(String, SubsetMatchingMode)

Lägger till ett element för en delmängd av en fras i den aktuella sekvensen med grammatikelement.

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)

Parametrar

phrase
String

Ordsekvensen som ska läggas till.

subsetMatchingCriteria
SubsetMatchingMode

Det matchande läge som grammatiken använder för att identifiera frasen.

Exempel

I följande exempel skapas en grammatik för taligenkänning för varje SubsetMatchingMode värde. Till exempel känner den genererade grammatiken OrderedSubset igen fraserna "tre fyra fem" och "en tre fem" och grammatiken Subsequence känner igen frasen "tre fyra fem", men inte frasen "en tre fem".

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();
}

Kommentarer

Delmängdselementet läggs till i slutet av den aktuella sekvensen med element. Mer information om hur du skapar en grammatik för taligenkänning med hjälp av strängar finns i Använda strängar för att skapa en grammatikskapande grammatik.

Detaljerad information om användningen av matchningslägen för delmängder finns i System.Speech.Recognition.SubsetMatchingMode.

Se även

Gäller för

Append(SemanticResultKey)

Lägger till en semantisk nyckel i den aktuella sekvensen med grammatikelement.

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)

Parametrar

key
SemanticResultKey

Den semantiska nyckeln som ska läggas till.

Exempel

Följande exempel är en del av ett konsolprogram för att välja ursprung och målstäder för en flygning. Programmet känner igen fraser som "Jag vill flyga från Miami till Chicago.". Hanteraren för SpeechRecognized händelsen använder SemanticResultKey för att extrahera flygplatskoden som anges i SemanticResultValue för ursprungs- och målstäderna.

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);
    }
  }
}

Kommentarer

key läggs till i slutet av den aktuella sekvensen med element.

Important

När du lägger till SemanticResultValue eller SemanticResultKey instanser i ett GrammarBuilder objekt bör du undvika att skapa dubbletter av semantiska element med samma nyckelnamn eller flera semantiska element som upprepade gånger kan ändra egenskapen för Value ett SemanticValue objekt. Taligenkänningen kan utlösa ett undantag om den stöter på dessa omständigheter.

Se även

Gäller för

Append(SemanticResultValue)

Lägger till ett semantiskt värde i den aktuella sekvensen med grammatikelement.

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)

Parametrar

value
SemanticResultValue

Det semantiska värdet som ska läggas till.

Exempel

Följande exempel är en del av ett konsolprogram för att välja ursprung och målstäder för en flygning. Programmet känner igen fraser som "Jag vill flyga från Miami till Chicago.". Hanteraren för SpeechRecognized händelsen använder SemanticResultKey för att extrahera flygplatskoden som anges i SemanticResultValue för ursprungs- och målstäderna.

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);
    }
  }
}

Kommentarer

value läggs till i slutet av den aktuella sekvensen med element.

Important

När du lägger till SemanticResultValue eller SemanticResultKey instanser i ett GrammarBuilder objekt bör du undvika att skapa dubbletter av semantiska element med samma nyckelnamn eller flera semantiska element som upprepade gånger kan ändra egenskapen för Value ett SemanticValue objekt. Taligenkänningen kan utlösa ett undantag om den stöter på dessa omständigheter.

Se även

Gäller för

Append(GrammarBuilder)

Lägger till ett grammatikelement i den aktuella sekvensen med grammatikelement.

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)

Parametrar

builder
GrammarBuilder

Grammatikelementet som ska läggas till.

Exempel

I följande exempel skapas en grammatik för taligenkänning för fraser som "Ring James på jobbet" och "Ring Anne på hennes mobiltelefon", där ordet "telefon" är valfritt. GrammarBuilder och Choices objekt används för att konstruera grammatiken. Exemplet visar hur metoden används Append .

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;
}

Kommentarer

builder läggs till i slutet av den aktuella sekvensen med grammatikelement.

Note

När du lägger till GrammarBuilder objekt som innehåller SemanticResultValue eller SemanticResultKey instanser i ett GrammarBuilder objekt bör du undvika att skapa dubbletter av semantiska element med samma nyckelnamn eller flera semantiska element som upprepade gånger kan ändra egenskapen för Value ett SemanticValue objekt. Taligenkänningen kan utlösa ett undantag om den stöter på dessa omständigheter.

Se även

Gäller för

Append(Choices)

Lägger till en uppsättning alternativ till den aktuella sekvensen med grammatikelement.

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)

Parametrar

alternateChoices
Choices

Uppsättningen alternativ för att lägga till.

Exempel

I följande exempel skapas en grammatik för taligenkänning för fraser som "Ring James på jobbet" och "Ring Anne på hennes mobiltelefon", där ordet "telefon" är valfritt. Exemplet visar hur metoden används Append .

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;
}

Kommentarer

alternateChoices läggs till i slutet av den aktuella sekvensen med element.

Important

När du lägger till Choices objekt som innehåller SemanticResultValue eller SemanticResultKey instanser i ett GrammarBuilder objekt bör du undvika att skapa dubbletter av semantiska element med samma nyckelnamn eller flera semantiska element som upprepade gånger kan ändra egenskapen för Value ett SemanticValue objekt. Taligenkänningen kan utlösa ett undantag om den stöter på dessa omständigheter.

Gäller för