Sdílet prostřednictvím


GrammarBuilder.Append Metoda

Definice

Připojí prvek gramatiky k aktuální sekvenci prvků gramatiky.

Přetížení

Append(String, Int32, Int32)

Připojí opakovanou frázi k aktuální sekvenci gramatických prvků.

Append(GrammarBuilder, Int32, Int32)

Připojí opakovaný gramatický prvek k aktuální sekvenci prvků gramatiky.

Append(String)

Připojí frázi k aktuální sekvenci prvků gramatiky.

Append(String, SubsetMatchingMode)

Připojí prvek pro podmnožinu fráze k aktuální sekvenci gramatických prvků.

Append(SemanticResultKey)

Připojí sémantický klíč k aktuální sekvenci gramatických prvků.

Append(SemanticResultValue)

Připojí sémantickou hodnotu k aktuální sekvenci prvků gramatiky.

Append(GrammarBuilder)

Připojí prvek gramatiky k aktuální sekvenci prvků gramatiky.

Append(Choices)

Připojí sadu alternativ k aktuální sekvenci gramatických prvků.

Poznámky

Tyto metody slouží k připojení gramatických prvků k existujícímu GrammarBuilderobjektu . Při vytváření gramatických prvků je můžete připojit k existujícímu tvůrci a postupně rozvíjet omezení gramatiky rozpoznávání řeči. Každý prvek se přidá na konec aktuální sekvence prvků.

Tato metoda má přetížení pro připojení GrammarBuilderobjektů , String, Choices, SemanticResultKeya SemanticResultValue .

Důležité

Rozpoznávání řeči může vyvolat výjimku při použití gramatiky rozpoznávání řeči, která obsahuje duplicitní sémantické prvky se stejným názvem klíče nebo více sémantických prvků, které by mohly opakovaně měnit hodnotu stejného sémantického prvku.

Další informace o vytváření a používání gramatiky rozpoznávání řeči najdete v tématu Rozpoznávání řeči.

Append(String, Int32, Int32)

Zdroj:
GrammarBuilder.cs
Zdroj:
GrammarBuilder.cs
Zdroj:
GrammarBuilder.cs

Připojí opakovanou frázi k aktuální sekvenci gramatických prvků.

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)

Parametry

phrase
String

Opakovaná posloupnost slov, která se mají připojit.

minRepeat
Int32

Minimální počet, kolikrát musí dojít ke shodě phrase vstupu, aby se vytvořila shoda.

maxRepeat
Int32

Maximální počet, kolikrát může dojít k párování phrase vstupu, aby se vytvořila shoda.

Příklady

Následující příklad vytvoří gramatiku rozpoznávání řeči pro fráze jako "Call James at work" a "Call Anne on jejím mobilním telefonem", kde je slovo "telefon" volitelné. GrammarBuilder a Choices objekty se používají k vytvoření gramatiky. Příklad zvýrazňuje použití Append metody.

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

Poznámky

Hodnota minRepeat musí být větší nebo rovna 0 a menší nebo rovna hodnotě maxRepeat.

Viz také

Platí pro

Append(GrammarBuilder, Int32, Int32)

Zdroj:
GrammarBuilder.cs
Zdroj:
GrammarBuilder.cs
Zdroj:
GrammarBuilder.cs

Připojí opakovaný gramatický prvek k aktuální sekvenci prvků gramatiky.

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)

Parametry

builder
GrammarBuilder

Opakovaný gramatický prvek, který se má připojit.

minRepeat
Int32

Minimální počet výskytů vstupu odpovídajícího elementu definovanému parametrem builder musí nastat, aby se vytvořila shoda.

maxRepeat
Int32

Maximální počet výskytů vstupu odpovídajícího elementu definovanému pomocí builder může dojít k vytvoření shody.

Příklady

Následující příklad vytvoří gramatiku rozpoznávání řeči pro fráze jako "Call James at work" a "Call Anne on jejím mobilním telefonem", kde je slovo "telefon" volitelné. GrammarBuilder a Choices objekty se používají k vytvoření gramatiky. Příklad zvýrazňuje použití Append metody.

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

Poznámky

Hodnota minRepeat musí být větší nebo rovna 0 a menší nebo rovna hodnotě maxRepeat.

Důležité

Pokud k objektu připojujete GrammarBuilder objekty, které obsahují SemanticResultValue instance GrammarBuilder neboSemanticResultKey, ujistěte se, že se vyhnete vytváření duplicitních sémantických prvků se stejným názvem klíče nebo více sémantických prvků, které by mohly opakovaně měnit Value vlastnost objektuSemanticValue. Rozpoznávání řeči může vyvolat výjimku, pokud narazí na tyto okolnosti.

Viz také

Platí pro

Append(String)

Zdroj:
GrammarBuilder.cs
Zdroj:
GrammarBuilder.cs
Zdroj:
GrammarBuilder.cs

Připojí frázi k aktuální sekvenci prvků gramatiky.

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

Parametry

phrase
String

Posloupnost slov, která se mají připojit.

Poznámky

phrase se přidá na konec aktuální sekvence prvků.

Viz také

Platí pro

Append(String, SubsetMatchingMode)

Zdroj:
GrammarBuilder.cs
Zdroj:
GrammarBuilder.cs
Zdroj:
GrammarBuilder.cs

Připojí prvek pro podmnožinu fráze k aktuální sekvenci gramatických prvků.

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)

Parametry

phrase
String

Posloupnost slov, která se mají připojit.

subsetMatchingCriteria
SubsetMatchingMode

Režim porovnávání, který gramatika používá k rozpoznávání fráze.

Příklady

Následující příklad vytvoří gramatiku rozpoznávání řeči pro každou SubsetMatchingMode hodnotu. Například vygenerovaná gramatika OrderedSubset rozpozná fráze "tři čtyři pět" a "jeden tři pět" a gramatika Subsequence rozpozná frázi "tři čtyři pět", ale ne frázi "jeden tři pět".

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

Poznámky

Prvek podmnožina je přidán na konec aktuální sekvence prvků. Další informace o vytváření gramatiky rozpoznávání řeči pomocí řetězců naleznete v tématu Použití řetězců k vytvoření gramatiky GrammarBuilder.

Podrobné informace o použití režimů párování podmnožina najdete v tématu System.Speech.Recognition.SubsetMatchingMode.

Viz také

Platí pro

Append(SemanticResultKey)

Zdroj:
GrammarBuilder.cs
Zdroj:
GrammarBuilder.cs
Zdroj:
GrammarBuilder.cs

Připojí sémantický klíč k aktuální sekvenci gramatických prvků.

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)

Parametry

key
SemanticResultKey

Sémantický klíč, který se má připojit.

Příklady

Následující příklad je součástí konzolové aplikace pro výběr výchozího a cílového města pro let. Aplikace rozpozná fráze jako "Chci letět z Miami do Chicaga". Obslužná rutina události SpeechRecognized použije SemanticResultKey k extrahování kódu letiště zadaného v SemanticResultValue poli pro výchozí a cílové města.

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

Poznámky

key se přidá na konec aktuální sekvence prvků.

Důležité

Při připojení SemanticResultValue nebo SemanticResultKey instancí k objektu GrammarBuilder se ujistěte, že se vyhnete vytváření duplicitních sémantických prvků se stejným názvem klíče nebo více sémantických prvků, které by mohly opakovaně měnit Value vlastnost objektu SemanticValue . Rozpoznávání řeči může vyvolat výjimku, pokud narazí na tyto okolnosti.

Viz také

Platí pro

Append(SemanticResultValue)

Zdroj:
GrammarBuilder.cs
Zdroj:
GrammarBuilder.cs
Zdroj:
GrammarBuilder.cs

Připojí sémantickou hodnotu k aktuální sekvenci prvků gramatiky.

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)

Parametry

value
SemanticResultValue

Sémantická hodnota, která se má připojit.

Příklady

Následující příklad je součástí konzolové aplikace pro výběr výchozího a cílového města pro let. Aplikace rozpozná fráze jako "Chci letět z Miami do Chicaga". Obslužná rutina události SpeechRecognized použije SemanticResultKey k extrahování kódu letiště zadaného v SemanticResultValue poli pro výchozí a cílové města.

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

Poznámky

value se přidá na konec aktuální sekvence prvků.

Důležité

Při připojení SemanticResultValue nebo SemanticResultKey instancí k objektu GrammarBuilder se ujistěte, že se vyhnete vytváření duplicitních sémantických prvků se stejným názvem klíče nebo více sémantických prvků, které by mohly opakovaně měnit Value vlastnost objektu SemanticValue . Rozpoznávání řeči může vyvolat výjimku, pokud narazí na tyto okolnosti.

Viz také

Platí pro

Append(GrammarBuilder)

Zdroj:
GrammarBuilder.cs
Zdroj:
GrammarBuilder.cs
Zdroj:
GrammarBuilder.cs

Připojí prvek gramatiky k aktuální sekvenci prvků gramatiky.

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)

Parametry

builder
GrammarBuilder

Element gramatiky, který se má připojit.

Příklady

Následující příklad vytvoří gramatiku rozpoznávání řeči pro fráze jako "Call James at work" a "Call Anne on jejím mobilním telefonem", kde je slovo "telefon" volitelné. GrammarBuilder a Choices objekty se používají k vytvoření gramatiky. Příklad zvýrazňuje použití Append metody.

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

Poznámky

builder se přidá na konec aktuální posloupnosti prvků gramatiky.

Poznámka

Pokud k objektu připojujete GrammarBuilder objekty, které obsahují SemanticResultValue instance GrammarBuilder neboSemanticResultKey, ujistěte se, že se vyhnete vytváření duplicitních sémantických prvků se stejným názvem klíče nebo více sémantických prvků, které by mohly opakovaně měnit Value vlastnost objektuSemanticValue. Rozpoznávání řeči může vyvolat výjimku, pokud narazí na tyto okolnosti.

Viz také

Platí pro

Append(Choices)

Zdroj:
GrammarBuilder.cs
Zdroj:
GrammarBuilder.cs
Zdroj:
GrammarBuilder.cs

Připojí sadu alternativ k aktuální sekvenci gramatických prvků.

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)

Parametry

alternateChoices
Choices

Sada alternativ k připojení.

Příklady

Následující příklad vytvoří gramatiku rozpoznávání řeči pro fráze jako "Call James at work" a "Call Anne on jejím mobilním telefonem", kde je slovo "telefon" volitelné. Příklad zvýrazňuje použití Append metody.

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

Poznámky

alternateChoices se přidá na konec aktuální sekvence prvků.

Důležité

Pokud k objektu připojujete Choices objekty, které obsahují SemanticResultValue instance GrammarBuilder neboSemanticResultKey, ujistěte se, že se vyhnete vytváření duplicitních sémantických prvků se stejným názvem klíče nebo více sémantických prvků, které by mohly opakovaně měnit Value vlastnost objektuSemanticValue. Rozpoznávání řeči může vyvolat výjimku, pokud narazí na tyto okolnosti.

Platí pro