GrammarBuilder.Append Metodo

Definizione

Aggiunge un elemento di grammatica alla sequenza corrente di elementi di grammatica.

Overload

Append(String, Int32, Int32)

Aggiunge una frase ripetuta alla sequenza corrente di elementi di grammatica.

Append(GrammarBuilder, Int32, Int32)

Aggiunge un elemento di grammatica ripetuto alla sequenza corrente di elementi di grammatica.

Append(String)

Aggiunge una frase alla sequenza corrente di elementi di grammatica.

Append(String, SubsetMatchingMode)

Aggiunge un elemento per un subset di una frase alla sequenza corrente di elementi di grammatica.

Append(SemanticResultKey)

Aggiunge una chiave semantica alla sequenza corrente di elementi di grammatica.

Append(SemanticResultValue)

Aggiunge un valore semantico alla sequenza corrente di elementi di grammatica.

Append(GrammarBuilder)

Aggiunge un elemento di grammatica alla sequenza corrente di elementi di grammatica.

Append(Choices)

Aggiunge un set di alternative alla sequenza corrente di elementi di grammatica.

Commenti

Utilizzare questi metodi per aggiungere elementi grammaticali a un oggetto esistente GrammarBuilder. Quando si creano elementi grammaticali, è possibile aggiungerli al generatore esistente per sviluppare progressivamente i vincoli per una grammatica di riconoscimento vocale. Ogni elemento viene aggiunto alla fine della sequenza corrente di elementi.

Questo metodo include overload per l'aggiunta di GrammarBuilderoggetti , , StringChoices, SemanticResultKeye SemanticResultValue .

Importante

Il riconoscimento vocale può generare un'eccezione quando si usa una grammatica di riconoscimento vocale che contiene elementi semantici duplicati con lo stesso nome chiave o più elementi semantici che potrebbero modificare ripetutamente il valore dello stesso elemento semantico.

Per altre informazioni sulla compilazione e sull'uso delle grammatiche di riconoscimento vocale, vedere Riconoscimento vocale.

Append(String, Int32, Int32)

Origine:
GrammarBuilder.cs
Origine:
GrammarBuilder.cs
Origine:
GrammarBuilder.cs

Aggiunge una frase ripetuta alla sequenza corrente di elementi di grammatica.

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)

Parametri

phrase
String

La sequenza ripetuta di parole da aggiungere.

minRepeat
Int32

Il numero minimo di volte in cui deve verificarsi un input che corrisponde a phrase per costituire una corrispondenza.

maxRepeat
Int32

Il numero massimo di volte in cui può verificarsi un input che corrisponde a phrase per costituire una corrispondenza.

Esempio

Nell'esempio seguente viene creata una grammatica di riconoscimento vocale per frasi come "Chiama James al lavoro" e "Chiama Anne sul cellulare", dove la parola "phone" è facoltativa. GrammarBuilder gli oggetti e Choices vengono utilizzati per costruire la grammatica. Nell'esempio viene evidenziato l'uso del Append metodo .

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

Commenti

Il valore di minRepeat deve essere maggiore o uguale a 0 e minore o uguale al valore di maxRepeat.

Vedi anche

Si applica a

Append(GrammarBuilder, Int32, Int32)

Origine:
GrammarBuilder.cs
Origine:
GrammarBuilder.cs
Origine:
GrammarBuilder.cs

Aggiunge un elemento di grammatica ripetuto alla sequenza corrente di elementi di grammatica.

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)

Parametri

builder
GrammarBuilder

L'elemento della grammatica ripetuta da aggiungere.

minRepeat
Int32

Il numero minimo di volte in cui deve verificarsi un input che corrisponde all'elemento definito da builder per costituire una corrispondenza.

maxRepeat
Int32

Il numero massimo di volte in cui può verificarsi un input che corrisponde all'elemento definito da builder per costituire una corrispondenza.

Esempio

Nell'esempio seguente viene creata una grammatica di riconoscimento vocale per frasi come "Chiama James al lavoro" e "Chiama Anne sul cellulare", dove la parola "phone" è facoltativa. GrammarBuilder gli oggetti e Choices vengono utilizzati per costruire la grammatica. Nell'esempio viene evidenziato l'uso del Append metodo .

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

Commenti

Il valore di minRepeat deve essere maggiore o uguale a 0 e minore o uguale al valore di maxRepeat.

Importante

Quando si accodano GrammarBuilder oggetti contenenti SemanticResultValue istanze o SemanticResultKey a un GrammarBuilder oggetto , assicurarsi di evitare di creare elementi semantici duplicati con lo stesso nome di chiave o più elementi semantici che potrebbero modificare ripetutamente la Value proprietà di un SemanticValue oggetto . Il riconoscimento vocale può generare un'eccezione se si verifica questa situazione.

Vedi anche

Si applica a

Append(String)

Origine:
GrammarBuilder.cs
Origine:
GrammarBuilder.cs
Origine:
GrammarBuilder.cs

Aggiunge una frase alla sequenza corrente di elementi di grammatica.

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

Parametri

phrase
String

La sequenza di parole da aggiungere.

Commenti

phrase viene aggiunto alla fine della sequenza corrente di elementi.

Vedi anche

Si applica a

Append(String, SubsetMatchingMode)

Origine:
GrammarBuilder.cs
Origine:
GrammarBuilder.cs
Origine:
GrammarBuilder.cs

Aggiunge un elemento per un subset di una frase alla sequenza corrente di elementi di grammatica.

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)

Parametri

phrase
String

La sequenza di parole da aggiungere.

subsetMatchingCriteria
SubsetMatchingMode

La modalità di corrispondenza che la grammatica utilizza per riconoscere la frase.

Esempio

Nell'esempio seguente viene creata una grammatica di riconoscimento vocale per ogni SubsetMatchingMode valore. Ad esempio, la grammatica OrderedSubset generata riconosce le frasi , "tre quattro cinque" e "uno tre cinque" e la grammatica Subsequence riconosce la frase "tre quattro cinque", ma non la frase "uno tre cinque".

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

Commenti

L'elemento subset viene aggiunto alla fine della sequenza corrente di elementi. Per altre informazioni sulla creazione di una grammatica di riconoscimento vocale tramite stringhe, vedere Using Strings to Create a GrammarBuilder Grammar.

Per informazioni dettagliate sull'uso delle modalità di corrispondenza del subset, vedere System.Speech.Recognition.SubsetMatchingMode.

Vedi anche

Si applica a

Append(SemanticResultKey)

Origine:
GrammarBuilder.cs
Origine:
GrammarBuilder.cs
Origine:
GrammarBuilder.cs

Aggiunge una chiave semantica alla sequenza corrente di elementi di grammatica.

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)

Parametri

key
SemanticResultKey

La chiave semantica da aggiungere.

Esempio

L'esempio seguente fa parte di un'applicazione console per la scelta delle città di origine e di destinazione per un volo. L'applicazione riconosce frasi come "Voglio volare da Miami a Chicago". Il gestore per l'evento SpeechRecognized usa per SemanticResultKey estrarre il codice aeroporto specificato in SemanticResultValue per le città di origine e di destinazione.

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

Commenti

key viene aggiunto alla fine della sequenza corrente di elementi.

Importante

Quando si accodano SemanticResultValue istanze a SemanticResultKey un GrammarBuilder oggetto, assicurarsi di evitare di creare elementi semantici duplicati con lo stesso nome di chiave o più elementi semantici che potrebbero modificare ripetutamente la Value proprietà di un SemanticValue oggetto. Il riconoscimento vocale può generare un'eccezione se si verifica questa situazione.

Vedi anche

Si applica a

Append(SemanticResultValue)

Origine:
GrammarBuilder.cs
Origine:
GrammarBuilder.cs
Origine:
GrammarBuilder.cs

Aggiunge un valore semantico alla sequenza corrente di elementi di grammatica.

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)

Parametri

value
SemanticResultValue

Valore semantico da accodare.

Esempio

L'esempio seguente fa parte di un'applicazione console per la scelta delle città di origine e di destinazione per un volo. L'applicazione riconosce frasi come "Voglio volare da Miami a Chicago". Il gestore per l'evento SpeechRecognized usa per SemanticResultKey estrarre il codice aeroporto specificato in SemanticResultValue per le città di origine e di destinazione.

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

Commenti

value viene aggiunto alla fine della sequenza corrente di elementi.

Importante

Quando si accodano SemanticResultValue istanze a SemanticResultKey un GrammarBuilder oggetto, assicurarsi di evitare di creare elementi semantici duplicati con lo stesso nome di chiave o più elementi semantici che potrebbero modificare ripetutamente la Value proprietà di un SemanticValue oggetto. Il riconoscimento vocale può generare un'eccezione se si verifica questa situazione.

Vedi anche

Si applica a

Append(GrammarBuilder)

Origine:
GrammarBuilder.cs
Origine:
GrammarBuilder.cs
Origine:
GrammarBuilder.cs

Aggiunge un elemento di grammatica alla sequenza corrente di elementi di grammatica.

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)

Parametri

builder
GrammarBuilder

L'elemento di grammatica da aggiungere.

Esempio

Nell'esempio seguente viene creata una grammatica di riconoscimento vocale per frasi come "Chiama James al lavoro" e "Chiama Anne sul cellulare", dove la parola "phone" è facoltativa. GrammarBuilder gli oggetti e Choices vengono utilizzati per costruire la grammatica. Nell'esempio viene evidenziato l'uso del Append metodo .

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

Commenti

builder viene aggiunto alla fine della sequenza corrente di elementi grammaticali.

Nota

Quando si accodano GrammarBuilder oggetti contenenti SemanticResultValue istanze o SemanticResultKey a un GrammarBuilder oggetto , assicurarsi di evitare di creare elementi semantici duplicati con lo stesso nome di chiave o più elementi semantici che potrebbero modificare ripetutamente la Value proprietà di un SemanticValue oggetto . Il riconoscimento vocale può generare un'eccezione se si verifica questa situazione.

Vedi anche

Si applica a

Append(Choices)

Origine:
GrammarBuilder.cs
Origine:
GrammarBuilder.cs
Origine:
GrammarBuilder.cs

Aggiunge un set di alternative alla sequenza corrente di elementi di grammatica.

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)

Parametri

alternateChoices
Choices

Il set di alternative da aggiungere.

Esempio

Nell'esempio seguente viene creata una grammatica di riconoscimento vocale per frasi come "Chiama James al lavoro" e "Chiama Anne sul cellulare", dove la parola "phone" è facoltativa. Nell'esempio viene evidenziato l'uso del Append metodo .

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

Commenti

alternateChoices viene aggiunto alla fine della sequenza corrente di elementi.

Importante

Quando si accodano Choices oggetti contenenti SemanticResultValue istanze o SemanticResultKey a un GrammarBuilder oggetto , assicurarsi di evitare di creare elementi semantici duplicati con lo stesso nome di chiave o più elementi semantici che potrebbero modificare ripetutamente la Value proprietà di un SemanticValue oggetto . Il riconoscimento vocale può generare un'eccezione se si verifica questa situazione.

Si applica a