Udostępnij za pośrednictwem


SpeechRecognitionEngine.SpeechRecognized Zdarzenie

Definicja

Podniesione, gdy odbiera SpeechRecognitionEngine dane wejściowe zgodne z dowolnym załadowanym i włączonym Grammar obiektem.

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) 

Typ zdarzenia

Przykłady

Poniższy przykład jest częścią aplikacji konsolowej, która tworzy gramatykę rozpoznawania mowy, tworzy obiekt i ładuje Grammar go do SpeechRecognitionEngine funkcji rozpoznawania. W przykładzie pokazano dane wejściowe mowy do elementu SpeechRecognitionEngine, skojarzone wyniki rozpoznawania i skojarzone zdarzenia zgłaszane przez rozpoznawanie mowy.

Wypowiedziane dane wejściowe, takie jak "Chcę latać z Chicago do Miami" wyzwoli SpeechRecognized wydarzenie. Mówiąc frazę "Fly me from Houston to Chicago" (Fly me from Houston to Chicago) nie SpeechRecognized wyzwoli wydarzenia.

W tym przykładzie użyto procedury obsługi dla SpeechRecognized zdarzenia w celu wyświetlenia pomyślnie rozpoznanych fraz i semantyki, które zawierają w konsoli programu .

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

Uwagi

Operację rozpoznawania można zainicjować przy użyciu jednej z Recognize metod lub RecognizeAsync . Rozpoznawanie SpeechRecognized zgłasza zdarzenie, jeśli określa, że dane wejściowe pasują do jednego z załadowanych Grammar obiektów z wystarczającym poziomem ufności, aby utworzyć rozpoznawanie. Właściwość Result obiektu SpeechRecognitionRejectedEventArgs zawiera zaakceptowany RecognitionResult obiekt. Programy obsługi zdarzeń SpeechRecognized mogą uzyskać rozpoznaną frazę, a także listę rozpoznawania Alternates z niższymi wynikami ufności.

Jeśli aplikacja korzysta z SpeechRecognitionEngine wystąpienia, możesz zmodyfikować poziom ufności, na którym dane wejściowe mowy są akceptowane lub odrzucane przy użyciu jednej z UpdateRecognizerSetting metod. Możesz zmodyfikować sposób reagowania rozpoznawania mowy na dane wejściowe innej niż mowa przy użyciu BabbleTimeoutwłaściwości , , InitialSilenceTimeoutEndSilenceTimeouti EndSilenceTimeoutAmbiguous .

Gdy rozpoznawanie odbiera dane wejściowe zgodne z gramatyką, Grammar obiekt może zgłosić swoje SpeechRecognized zdarzenie. Zdarzenie Grammar obiektu SpeechRecognized jest zgłaszane przed zdarzeniem rozpoznawania SpeechRecognized mowy. Wszystkie zadania specyficzne dla określonej gramatyki powinny być zawsze wykonywane przez procedurę obsługi dla SpeechRecognized zdarzenia.

Podczas tworzenia delegata należy zidentyfikować metodę SpeechRecognized , która będzie obsługiwać zdarzenie. Aby skojarzyć zdarzenie z programem obsługi zdarzeń, dodaj wystąpienie delegata do zdarzenia. Program obsługi zdarzeń jest wywoływany przy każdym wystąpieniu zdarzenia, o ile nie usunięto delegata. Aby uzyskać więcej informacji na temat delegatów programu obsługi zdarzeń, zobacz Zdarzenia i delegaty.

Dotyczy

Zobacz też