Sdílet prostřednictvím


SpeechRecognitionEngine.SpeechDetected Událost

Definice

Vyvolá se, SpeechRecognitionEngine když zjistí vstup, který dokáže identifikovat jako řeč.

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

Event Type

Příklady

Následující příklad je součástí konzolové aplikace pro výběr počátečního a cílového města pro let. Aplikace rozpoznává fráze jako "Chci letět z Miami do Chicaga". Příklad používá SpeechDetected událost k hlášení AudioPosition pokaždé, když se zjistí řeč.

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 a grammar.
        Choices cities = new Choices(new string[] {
          "Los Angeles", "New York", "Chicago", "San Francisco", "Miami", "Dallas" });

        GrammarBuilder gb = new GrammarBuilder();
        gb.Append("I would like to fly from");
        gb.Append(cities);
        gb.Append("to");
        gb.Append(cities);

        // Create a Grammar object and load it to the recognizer.
        Grammar g = new Grammar(gb);
        g.Name = ("City Chooser");
        recognizer.LoadGrammarAsync(g);

        // Attach event handlers.
        recognizer.LoadGrammarCompleted +=
          new EventHandler<LoadGrammarCompletedEventArgs>(recognizer_LoadGrammarCompleted);
        recognizer.SpeechDetected +=
          new EventHandler<SpeechDetectedEventArgs>(recognizer_SpeechDetected);
        recognizer.SpeechRecognized +=
          new EventHandler<SpeechRecognizedEventArgs>(recognizer_SpeechRecognized);

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

        // Start recognition.
        recognizer.RecognizeAsync();

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

    // Handle the SpeechDetected event.
    static void recognizer_SpeechDetected(object sender, SpeechDetectedEventArgs e)
    {
      Console.WriteLine("  Speech detected at AudioPosition = {0}", e.AudioPosition);
    }

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

    // Handle the SpeechRecognized event.
    static void recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
    {
      Console.WriteLine("  Speech recognized: " + e.Result.Text);
    }
  }
}

Poznámky

Každý rozpoznávání řeči má algoritmus, který rozlišuje ticho a řeč. SpeechRecognitionEngine Když provede operaci rozpoznávání řeči, vyvolá SpeechDetected událost, když její algoritmus identifikuje vstup jako řeč. AudioPosition Vlastnost přidruženého SpeechDetectedEventArgs objektu označuje umístění ve vstupním datovém proudu, kde rozpoznávání detekoval řeč. SpeechDetected Vyvolá SpeechRecognitionEngine událost dříve, než vyvolá některou SpeechHypothesizedz událostí , SpeechRecognizednebo SpeechRecognitionRejected událostí.

Další informace naleznete v tématu Recognize, RecognizeAsync, EmulateRecognizea EmulateRecognizeAsync metody.

Při vytváření delegáta SpeechDetected identifikujete metodu, která bude zpracovávat událost. 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 se volá při každém výskytu události, pokud delegáta neodeberete. Další informace o delegátech obslužné rutiny událostí naleznete v tématu Události a delegáty.

Platí pro

Viz také