SpeechRecognitionEngine.SpeechRecognized Evento

Definizione

Generato quando riceve l'input SpeechRecognitionEngine che corrisponde a uno dei relativi oggetti caricati e abilitati Grammar .

public:
 event EventHandler<System::Speech::Recognition::SpeechRecognizedEventArgs ^> ^ SpeechRecognized;
public event EventHandler<System.Speech.Recognition.SpeechRecognizedEventArgs>? SpeechRecognized;
public event EventHandler<System.Speech.Recognition.SpeechRecognizedEventArgs> SpeechRecognized;
member this.SpeechRecognized : EventHandler<System.Speech.Recognition.SpeechRecognizedEventArgs> 
Public Custom Event SpeechRecognized As EventHandler(Of SpeechRecognizedEventArgs) 
Public Event SpeechRecognized As EventHandler(Of SpeechRecognizedEventArgs) 

Tipo evento

Esempio

L'esempio seguente fa parte di un'applicazione console che crea la grammatica di riconoscimento vocale, costruisce un Grammar oggetto e lo carica in per eseguire il SpeechRecognitionEngine riconoscimento. Nell'esempio viene illustrato l'input vocale in un SpeechRecognitionEngineoggetto , i risultati di riconoscimento associati e gli eventi associati generati dal riconoscimento vocale.

Input parlato come "Voglio volare da Chicago a Miami" attiverà un SpeechRecognized evento. Pronunciando la frase "Volami da Houston a Chicago" non attiverà un SpeechRecognized evento.

Nell'esempio viene usato un gestore per l'evento SpeechRecognized per visualizzare frasi riconosciute correttamente e la semantica che contengono nella console.

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 SemanticResultValue objects that contain cities and airport codes.
        SemanticResultValue chicago = new SemanticResultValue("Chicago", "ORD");
        SemanticResultValue boston = new SemanticResultValue("Boston", "BOS");
        SemanticResultValue miami = new SemanticResultValue("Miami", "MIA");
        SemanticResultValue dallas = new SemanticResultValue("Dallas", "DFW");

        // Create a Choices object and add the SemanticResultValue objects, 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);

        // Load the grammar object to the recognizer.
        recognizer.LoadGrammarAsync(bookFlight);

        // Set the input to the recognizer.
        recognizer.SetInputToDefaultAudioDevice();

        // Start recognition.
        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

È possibile avviare un'operazione di riconoscimento usando uno dei Recognize metodi o RecognizeAsync . Il riconoscitore genera l'evento se determina che l'input SpeechRecognized corrisponde a uno dei relativi oggetti caricati Grammar con un livello di attendibilità sufficiente per costituire il riconoscimento. La Result proprietà dell'oggetto SpeechRecognitionRejectedEventArgs contiene l'oggetto accettato RecognitionResult . I gestori di SpeechRecognized eventi possono ottenere la frase riconosciuta e un elenco di riconoscimento Alternates con punteggi di attendibilità inferiori.

Se l'applicazione usa un'istanza SpeechRecognitionEngine di , è possibile modificare il livello di attendibilità in base al quale l'input vocale viene accettato o rifiutato con uno dei UpdateRecognizerSetting metodi . È possibile modificare il modo in cui il riconoscimento vocale risponde all'input non vocale usando le BabbleTimeoutproprietà , InitialSilenceTimeoutEndSilenceTimeout, e EndSilenceTimeoutAmbiguous .

Quando il riconoscitore riceve l'input corrispondente a una grammatica, l'oggetto può generarne SpeechRecognized l'eventoGrammar. L'evento Grammar dell'oggetto viene generato prima dell'evento SpeechRecognized del SpeechRecognized riconoscimento vocale. Tutte le attività specifiche di una particolare grammatica devono essere sempre eseguite da un gestore per l'evento SpeechRecognized .

Quando si crea un SpeechRecognized delegato, si identifica il metodo che gestirà l'evento. Per associare l'evento al gestore eventi, aggiungere un'istanza del delegato all'evento. Il gestore eventi viene chiamato ogni volta che si verifica l'evento, a meno che non si rimuovono il delegato.

Si applica a

Vedi anche