Compartir vía


GrammarBuilder.Append Método

Definición

Anexa un elemento de gramática a la secuencia actual de elementos de gramática.

Sobrecargas

Append(String, Int32, Int32)

Anexa una frase repetida a la secuencia actual de elementos de gramática.

Append(GrammarBuilder, Int32, Int32)

Anexa un elemento de gramática repetido a la secuencia actual de elementos de gramática.

Append(String)

Anexa una frase a la secuencia actual de elementos de gramática.

Append(String, SubsetMatchingMode)

Anexa un elemento para un subconjunto de una frase a la secuencia actual de elementos de gramática.

Append(SemanticResultKey)

Anexa una clave semántica a la secuencia actual de elementos de gramática.

Append(SemanticResultValue)

Anexa un valor semántico a la secuencia actual de elementos de gramática.

Append(GrammarBuilder)

Anexa un elemento de gramática a la secuencia actual de elementos de gramática.

Append(Choices)

Anexa un conjunto de alternativas a la secuencia actual de elementos de gramática.

Comentarios

Use estos métodos para anexar elementos gramaticales a un existente GrammarBuilder. A medida que crea elementos gramaticales, puede anexarlos al generador existente para desarrollar progresivamente las restricciones de una gramática de reconocimiento de voz. Cada elemento se agrega al final de la secuencia actual de elementos.

Este método tiene sobrecargas para anexar GrammarBuilderobjetos , ChoicesString, , SemanticResultKeyy SemanticResultValue .

Importante

El reconocedor de voz puede producir una excepción cuando se usa una gramática de reconocimiento de voz que contiene elementos semánticos duplicados con el mismo nombre de clave o varios elementos semánticos que podrían modificar repetidamente el valor del mismo elemento semántico.

Para obtener más información sobre cómo crear y usar gramáticas de reconocimiento de voz, consulte Reconocimiento de voz.

Append(String, Int32, Int32)

Source:
GrammarBuilder.cs
Source:
GrammarBuilder.cs
Source:
GrammarBuilder.cs

Anexa una frase repetida a la secuencia actual de elementos de gramática.

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)

Parámetros

phrase
String

La secuencia repetida de palabras para anexar.

minRepeat
Int32

El número mínimo de veces que la entrada coincidente phrase debe aparecer para que constituya una coincidencia.

maxRepeat
Int32

El número máximo de veces que la entrada coincidente phrase puede aparecer para que constituya una coincidencia.

Ejemplos

En el ejemplo siguiente se crea una gramática de reconocimiento de voz para frases como "Llamar a James en el trabajo" y "Llamar a Anne en su teléfono móvil", donde la palabra "teléfono" es opcional. GrammarBuilder y Choices los objetos se usan para construir la gramática. En el ejemplo se resalta el uso del Append método .

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

Comentarios

El valor de minRepeat debe ser mayor o igual que 0 y menor o igual que el valor de maxRepeat.

Consulte también

Se aplica a

Append(GrammarBuilder, Int32, Int32)

Source:
GrammarBuilder.cs
Source:
GrammarBuilder.cs
Source:
GrammarBuilder.cs

Anexa un elemento de gramática repetido a la secuencia actual de elementos de gramática.

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)

Parámetros

builder
GrammarBuilder

El elemento de gramática repetido para anexar.

minRepeat
Int32

El número mínimo de veces que la entrada coincidente con el elemento definido por builder debe aparecer para que constituya una coincidencia.

maxRepeat
Int32

El número máximo de veces que la entrada coincidente con el elemento definido por builder puede aparecer para que constituya una coincidencia.

Ejemplos

En el ejemplo siguiente se crea una gramática de reconocimiento de voz para frases como "Llamar a James en el trabajo" y "Llamar a Anne en su teléfono móvil", donde la palabra "teléfono" es opcional. GrammarBuilder y Choices los objetos se usan para construir la gramática. En el ejemplo se resalta el uso del Append método .

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

Comentarios

El valor de minRepeat debe ser mayor o igual que 0 y menor o igual que el valor de maxRepeat.

Importante

Al anexar GrammarBuilder objetos que contienen SemanticResultValue instancias o SemanticResultKey a un GrammarBuilder objeto, asegúrese de evitar crear elementos semánticos duplicados con el mismo nombre de clave o varios elementos semánticos que podrían modificar repetidamente la Value propiedad de un SemanticValue objeto. El reconocedor de voz puede producir una excepción si encuentra estas circunstancias.

Consulte también

Se aplica a

Append(String)

Source:
GrammarBuilder.cs
Source:
GrammarBuilder.cs
Source:
GrammarBuilder.cs

Anexa una frase a la secuencia actual de elementos de gramática.

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

Parámetros

phrase
String

La secuencia de palabras para anexar.

Comentarios

phrase se agrega al final de la secuencia actual de elementos.

Consulte también

Se aplica a

Append(String, SubsetMatchingMode)

Source:
GrammarBuilder.cs
Source:
GrammarBuilder.cs
Source:
GrammarBuilder.cs

Anexa un elemento para un subconjunto de una frase a la secuencia actual de elementos de gramática.

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)

Parámetros

phrase
String

La secuencia de palabras para anexar.

subsetMatchingCriteria
SubsetMatchingMode

El modo coincidente que la gramática usa para reconocer la frase.

Ejemplos

En el ejemplo siguiente se crea una gramática de reconocimiento de voz para cada SubsetMatchingMode valor. Por ejemplo, la gramática generada reconoce las frases, "tres cinco" y "una tres cinco", y la gramática OrderedSubset reconoce la frase Subsequence "tres cinco", pero no la frase , "uno tres cinco".

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

Comentarios

El elemento subconjunto se agrega al final de la secuencia actual de elementos. Para obtener más información sobre cómo crear una gramática de reconocimiento de voz mediante cadenas, consulte Uso de cadenas para crear una gramática grammarBuilder.

Para obtener información detallada sobre el uso de modos de coincidencia de subconjuntos, vea System.Speech.Recognition.SubsetMatchingMode.

Consulte también

Se aplica a

Append(SemanticResultKey)

Source:
GrammarBuilder.cs
Source:
GrammarBuilder.cs
Source:
GrammarBuilder.cs

Anexa una clave semántica a la secuencia actual de elementos de gramática.

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)

Parámetros

key
SemanticResultKey

La clave semántica para anexar.

Ejemplos

El ejemplo siguiente forma parte de una aplicación de consola para elegir ciudades de origen y destino para un vuelo. La aplicación reconoce frases como "Quiero volar desde Miami a Chicago". El controlador del SpeechRecognized evento usa para SemanticResultKey extraer el código del aeropuerto especificado en para SemanticResultValue las ciudades de origen y destino.

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

Comentarios

key se agrega al final de la secuencia actual de elementos.

Importante

Al anexar SemanticResultValue instancias o SemanticResultKey a un GrammarBuilder objeto, asegúrese de evitar crear elementos semánticos duplicados con el mismo nombre de clave o varios elementos semánticos que podrían modificar repetidamente la Value propiedad de un SemanticValue objeto. El reconocedor de voz puede producir una excepción si encuentra estas circunstancias.

Consulte también

Se aplica a

Append(SemanticResultValue)

Source:
GrammarBuilder.cs
Source:
GrammarBuilder.cs
Source:
GrammarBuilder.cs

Anexa un valor semántico a la secuencia actual de elementos de gramática.

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)

Parámetros

value
SemanticResultValue

Valor semántico que se va a agregar.

Ejemplos

El ejemplo siguiente forma parte de una aplicación de consola para elegir ciudades de origen y destino para un vuelo. La aplicación reconoce frases como "Quiero volar desde Miami a Chicago". El controlador del SpeechRecognized evento usa para SemanticResultKey extraer el código del aeropuerto especificado en para SemanticResultValue las ciudades de origen y destino.

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

Comentarios

value se agrega al final de la secuencia actual de elementos.

Importante

Al anexar SemanticResultValue instancias o SemanticResultKey a un GrammarBuilder objeto, asegúrese de evitar crear elementos semánticos duplicados con el mismo nombre de clave o varios elementos semánticos que podrían modificar repetidamente la Value propiedad de un SemanticValue objeto. El reconocedor de voz puede producir una excepción si encuentra estas circunstancias.

Consulte también

Se aplica a

Append(GrammarBuilder)

Source:
GrammarBuilder.cs
Source:
GrammarBuilder.cs
Source:
GrammarBuilder.cs

Anexa un elemento de gramática a la secuencia actual de elementos de gramática.

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)

Parámetros

builder
GrammarBuilder

El elemento de gramática para anexar.

Ejemplos

En el ejemplo siguiente se crea una gramática de reconocimiento de voz para frases como "Llamar a James en el trabajo" y "Llamar a Anne en su teléfono móvil", donde la palabra "teléfono" es opcional. GrammarBuilder y Choices los objetos se usan para construir la gramática. En el ejemplo se resalta el uso del Append método .

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

Comentarios

builder se agrega al final de la secuencia actual de elementos gramaticales.

Nota

Al anexar GrammarBuilder objetos que contienen SemanticResultValue instancias o SemanticResultKey a un GrammarBuilder objeto, asegúrese de evitar crear elementos semánticos duplicados con el mismo nombre de clave o varios elementos semánticos que podrían modificar repetidamente la Value propiedad de un SemanticValue objeto. El reconocedor de voz puede producir una excepción si encuentra estas circunstancias.

Consulte también

Se aplica a

Append(Choices)

Source:
GrammarBuilder.cs
Source:
GrammarBuilder.cs
Source:
GrammarBuilder.cs

Anexa un conjunto de alternativas a la secuencia actual de elementos de gramática.

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)

Parámetros

alternateChoices
Choices

El conjunto de alternativas para anexar.

Ejemplos

En el ejemplo siguiente se crea una gramática de reconocimiento de voz para frases como "Llamar a James en el trabajo" y "Llamar a Anne en su teléfono móvil", donde la palabra "teléfono" es opcional. En el ejemplo se resalta el uso del Append método .

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

Comentarios

alternateChoices se agrega al final de la secuencia actual de elementos.

Importante

Al anexar Choices objetos que contienen SemanticResultValue instancias o SemanticResultKey a un GrammarBuilder objeto, asegúrese de evitar crear elementos semánticos duplicados con el mismo nombre de clave o varios elementos semánticos que podrían modificar repetidamente la Value propiedad de un SemanticValue objeto. El reconocedor de voz puede producir una excepción si encuentra estas circunstancias.

Se aplica a