SpeechRecognitionEngine.SpeechRecognized Evento

Definizione

Generato quando SpeechRecognitionEngine riceve input che corrisponde a un oggetto Grammar caricato e abilitato.

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 Event SpeechRecognized As EventHandler(Of SpeechRecognizedEventArgs) 
Public Custom Event SpeechRecognized As EventHandler(Of SpeechRecognizedEventArgs) 

Tipo evento

Esempio

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

L'input parlato come "Voglio volare da Chicago a Miami" attiverà un SpeechRecognized evento. Parlando della 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 riconoscimento genera l'evento se determina che l'input SpeechRecognized corrisponde a uno degli oggetti caricati Grammar con un livello di attendibilità sufficiente per costituire il riconoscimento. La Result proprietà dell'oggetto contiene l'oggetto SpeechRecognitionRejectedEventArgs 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 , è 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à , InitialSilenceTimeout, EndSilenceTimeoute EndSilenceTimeoutAmbiguous .

Quando il riconoscimento riceve l'input che corrisponde a una grammatica, l'oggetto può generare il Grammar relativo SpeechRecognized evento. L'evento Grammar dell'oggetto viene generato prima dell'evento SpeechRecognizedSpeechRecognized del riconoscimento vocale. Tutte le attività specifiche di una specifica grammatica devono sempre essere eseguite da un gestore per l'evento SpeechRecognized .

Quando si crea un delegato SpeechRecognized, si identifica il metodo che gestirà l'evento. Per associare l'evento al gestore eventi in uso, aggiungere all'evento un'istanza del delegato. Il gestore eventi viene chiamato ogni volta che si verifica l'evento, a meno che non venga rimosso il delegato. Per altre informazioni sui delegati del gestore eventi, vedere Eventi e delegati.

Si applica a

Vedi anche