SpeechRecognitionEngine.SpeechRecognized Událost

Definice

Vyvolá se, SpeechRecognitionEngine když přijme vstup, který odpovídá některému z načtených a povolených Grammar objektů.

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) 

Event Type

Příklady

Následující příklad je součástí konzolové aplikace, která vytváří gramatiku Grammar rozpoznávání řeči, vytváří objekt a načte ho do objektu SpeechRecognitionEngine pro rozpoznávání. Příklad ukazuje vstup řeči do SpeechRecognitionEngine, přidružené výsledky rozpoznávání a přidružené události vyvolané rozpoznáváním řeči.

Mluvený vstup, například "Chci letět z Chicaga do Miami", aktivuje SpeechRecognized událost. Když řeknete " Letět z Houstonu do Chicaga " nevyvolá SpeechRecognized událost.

Příklad používá obslužnou rutinu SpeechRecognized události k zobrazení úspěšně rozpoznaných frází a sémantiky, které obsahují v konzole.

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

Poznámky

Operaci rozpoznávání můžete zahájit pomocí jedné z Recognize metod nebo RecognizeAsync . Rozpoznávání vyvolá událost, SpeechRecognized pokud zjistí, že vstup odpovídá některému z načtených Grammar objektů s dostatečnou úrovní spolehlivosti, aby představoval rozpoznávání. Vlastnost ResultSpeechRecognitionRejectedEventArgs obsahuje akceptované RecognitionResult objekty. Obslužné rutiny SpeechRecognized událostí můžou získat rozpoznanou frázi a seznam uznání Alternates s nižším skóre spolehlivosti.

Pokud vaše aplikace používá SpeechRecognitionEngine instanci, můžete upravit úroveň spolehlivosti, při které se přijímá nebo odmítá vstup řeči, pomocí jedné z těchto UpdateRecognizerSetting metod. Pomocí vlastností , , EndSilenceTimeouta EndSilenceTimeoutAmbiguous můžete upravit, jak bude rozpoznávání řeči reagovat na jiný vstup BabbleTimeoutInitialSilenceTimeoutnež řeč.

Když rozpoznávatel přijme vstup, který odpovídá gramatice, Grammar může objekt vyvolat svou SpeechRecognized událost. Událost Grammar objektu SpeechRecognized je vyvolána před událostí rozpoznávání SpeechRecognized řeči. Všechny úlohy specifické pro konkrétní gramatiku by měla vždy provádět obslužná rutina SpeechRecognized události.

Při vytváření delegáta SpeechRecognized identifikujete metodu, která bude událost zpracovávat. Pokud chcete událost přidružit k obslužné rutině události, přidejte do události instanci delegáta. Obslužná rutina události je volána při každém výskytu události, dokud neodeberete delegáta. Další informace o delegátech obslužné rutiny událostí najdete v tématu Události a delegáti.

Platí pro

Viz také