Compartir vía


SpeechRecognitionEngine.SpeechRecognized Evento

Definición

Se genera cuando SpeechRecognitionEngine recibe una entrada que coincide con cualquiera de los objetos Grammar cargados y habilitados.

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 de evento

Ejemplos

El ejemplo siguiente forma parte de una aplicación de consola que crea gramática de reconocimiento de voz, construye un Grammar objeto y lo carga en para SpeechRecognitionEngine realizar el reconocimiento. En el ejemplo se muestra la entrada de voz en , SpeechRecognitionEnginelos resultados de reconocimiento asociados y los eventos asociados generados por el reconocedor de voz.

La entrada hablada como "Quiero volar desde Chicago a Miami" desencadenará un SpeechRecognized evento. Hablando la frase "Volarme de Houston a Chicago" no desencadenará un SpeechRecognized evento.

En el ejemplo se usa un controlador para el SpeechRecognized evento para mostrar frases reconocidas correctamente y la semántica que contienen en la consola.

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

Comentarios

Puede iniciar una operación de reconocimiento mediante uno de los Recognize métodos o RecognizeAsync . El reconocedor genera el SpeechRecognized evento si determina que la entrada coincide con uno de sus objetos cargados Grammar con un nivel de confianza suficiente para constituir el reconocimiento. La Result propiedad de SpeechRecognitionRejectedEventArgs contiene el objeto aceptado RecognitionResult . Los controladores de eventos pueden obtener la frase reconocida, así como una lista de reconocimiento Alternates con puntuaciones de SpeechRecognized confianza inferiores.

Si la aplicación usa una SpeechRecognitionEngine instancia, puede modificar el nivel de confianza en el que se acepta o rechaza la entrada de voz con uno de los UpdateRecognizerSetting métodos. Puede modificar cómo responde el reconocimiento de voz a la entrada que no es de voz mediante las BabbleTimeoutpropiedades , InitialSilenceTimeout, EndSilenceTimeouty EndSilenceTimeoutAmbiguous .

Cuando el reconocedor recibe la entrada que coincide con una gramática, el Grammar objeto puede generar su SpeechRecognized evento. El Grammar evento del SpeechRecognized objeto se genera antes del evento del reconocedor de SpeechRecognized voz. Cualquier tarea específica de una gramática determinada siempre debe realizarse mediante un controlador para el SpeechRecognized evento.

Cuando se crea un delegado SpeechRecognized, se identifica el método que controlará el evento. Para asociar el evento al controlador, se debe agregar una instancia del delegado al evento. Siempre que se produce el evento, se llama a su controlador, a menos que se quite el delegado. Para obtener más información sobre los delegados del controlador de eventos, vea Eventos y delegados.

Se aplica a

Consulte también