Condividi tramite


SpeechRecognizer.SpeechRecognized Evento

Definizione

Viene generato quando il riconoscimento riceve un input che corrisponde a una delle relative grammatiche di riconoscimento vocale.

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 carica una grammatica di riconoscimento vocale e illustra l'input vocale al riconoscimento condiviso, ai risultati del riconoscimento condiviso e agli eventi associati generati dal riconoscimento vocale. Se Il riconoscimento vocale di Windows non è in esecuzione, l'avvio dell'applicazione avvierà anche Riconoscimento vocale windows.

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 a shared speech recognition engine.  
    {  
      using (SpeechRecognizer recognizer = new SpeechRecognizer())  
      {  

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

        // 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

Il riconoscimento genera l'evento se determina con attendibilità sufficiente che l'input SpeechRecognized corrisponda a una delle grammatica di riconoscimento vocale caricate e abilitate. La Result proprietà dell'oggetto contiene l'oggetto SpeechRecognitionRejectedEventArgs accettato RecognitionResult .

Le soglie di attendibilità per il riconoscimento condiviso, gestite da SpeechRecognizer, sono associate a un profilo utente e archiviate nel Registro di sistema di Windows. Le applicazioni non devono scrivere modifiche al Registro di sistema per le proprietà del riconoscimento condiviso.

Quando il riconoscimento riceve l'input che corrisponde a una grammatica, l'oggetto Grammar può generare l'evento SpeechRecognized . L'evento Grammar dell'oggetto viene generato prima dell'evento SpeechRecognizedSpeechRecognized del riconoscimento vocale.

Quando si crea un delegato per un SpeechRecognized evento, 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