Condividi tramite


SpeechRecognitionEngine.RecognizeCompleted Evento

Definizione

Generato quando l'oggetto SpeechRecognitionEngine finalizza un'operazione di riconoscimento asincrono.

public:
 event EventHandler<System::Speech::Recognition::RecognizeCompletedEventArgs ^> ^ RecognizeCompleted;
public event EventHandler<System.Speech.Recognition.RecognizeCompletedEventArgs>? RecognizeCompleted;
public event EventHandler<System.Speech.Recognition.RecognizeCompletedEventArgs> RecognizeCompleted;
member this.RecognizeCompleted : EventHandler<System.Speech.Recognition.RecognizeCompletedEventArgs> 
Public Custom Event RecognizeCompleted As EventHandler(Of RecognizeCompletedEventArgs) 
Public Event RecognizeCompleted As EventHandler(Of RecognizeCompletedEventArgs) 

Tipo evento

Esempio

L'esempio seguente riconosce frasi come "Visualizzare l'elenco di artisti nella categoria jazz" o "Visualizzare album gospel". Nell'esempio viene utilizzato un gestore per l'evento RecognizeCompleted per visualizzare informazioni sui risultati del riconoscimento 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 lists of alternative choices.
        Choices listTypes = new Choices(new string[] { "albums", "artists" });
        Choices genres = new Choices(new string[] {
          "blues", "classical", "gospel", "jazz", "rock" });

        //  Create a GrammarBuilder object and assemble the grammar components.
        GrammarBuilder mediaMenu = new GrammarBuilder("Display");
        mediaMenu.Append("the list of", 0, 1);
        mediaMenu.Append(listTypes);
        mediaMenu.Append("in the", 0, 1);
        mediaMenu.Append(genres);
        mediaMenu.Append("category.", 0, 1);

        //  Build a Grammar object from the GrammarBuilder.
        Grammar mediaMenuGrammar = new Grammar(mediaMenu);
        mediaMenuGrammar.Name = "Media Chooser";

        // Attach event handlers.
        recognizer.RecognizeCompleted +=
          new EventHandler<RecognizeCompletedEventArgs>(recognizer_RecognizeCompleted);
        recognizer.LoadGrammarCompleted +=
          new EventHandler<LoadGrammarCompletedEventArgs>(recognizer_LoadGrammarCompleted);

        // Load the grammar object to the recognizer.
        recognizer.LoadGrammarAsync(mediaMenuGrammar);

        // Set the input to the recognizer.
        recognizer.SetInputToDefaultAudioDevice();

        // Start asynchronous, continuous recognition.
        recognizer.RecognizeAsync();

        // Keep the console window open.
        Console.ReadLine();
      }
    }

    // Handle the RecognizeCompleted event.
    static void recognizer_RecognizeCompleted(object sender, RecognizeCompletedEventArgs e)
    {
      if (e.Error != null)
      {
        Console.WriteLine(
          "RecognizeCompleted, error occurred during recognition: {0}", e.Error);
        return;
      }

      if (e.InitialSilenceTimeout || e.BabbleTimeout)
      {
        Console.WriteLine(
          "RecognizeCompleted: BabbleTimeout({0}), InitialSilenceTimeout({1}).",
          e.BabbleTimeout, e.InitialSilenceTimeout);
        return;
      }

      if (e.InputStreamEnded)
      {
        Console.WriteLine(
          "RecognizeCompleted: AudioPosition({0}), InputStreamEnded({1}).",
          e.AudioPosition, e.InputStreamEnded);
      }

      if (e.Result != null)
      {
        Console.WriteLine("RecognizeCompleted:");
        Console.WriteLine("  Grammar: " + e.Result.Grammar.Name);
        Console.WriteLine("  Recognized text: " + e.Result.Text);
        Console.WriteLine("  Confidence score: " + e.Result.Confidence);
        Console.WriteLine("  Audio position: " + e.AudioPosition);
      }

      else
      {
        Console.WriteLine("RecognizeCompleted: No result.");
      }

      Console.WriteLine();
      Console.WriteLine("Press any key to exit...");
      Console.ReadKey();
    }

    // Handle the LoadGrammarCompleted event.
    static void recognizer_LoadGrammarCompleted(object sender, LoadGrammarCompletedEventArgs e)
    {
      Console.WriteLine("Grammar loaded:  " + e.Grammar.Name);
    }
  }
}

Commenti

Il SpeechRecognitionEngine metodo dell'oggetto avvia un'operazione di RecognizeAsync riconoscimento asincrono. Quando il riconoscitore finalizza l'operazione asincrona, genera questo evento.

Usando il gestore per l'evento RecognizeCompleted , è possibile accedere all'oggetto RecognitionResult nell'oggetto RecognizeCompletedEventArgs . Se il riconoscimento non è riuscito, RecognitionResult sarà null. Per determinare se un timeout o un'interruzione dell'input audio ha causato l'esito negativo del riconoscimento, è possibile accedere alle proprietà per InitialSilenceTimeout, BabbleTimeouto InputStreamEnded.

Per altre informazioni, vedere la RecognizeCompletedEventArgs classe .

Per ottenere informazioni dettagliate sui migliori candidati di riconoscimento rifiutati, allegare un gestore per l'evento SpeechRecognitionRejected .

Quando si crea un RecognizeCompleted delegato, si identifica il metodo che gestirà l'evento. Per associare l'evento al gestore eventi, aggiungere un'istanza del delegato all'evento. Il gestore eventi viene chiamato ogni volta che si verifica l'evento, a meno che non si rimuovono il delegato.

Si applica a

Vedi anche