SpeechRecognitionEngine.EmulateRecognizeAsync Metoda

Definicja

Emuluje dane wejściowe do rozpoznawania mowy przy użyciu tekstu zamiast dźwięku na potrzeby asynchronicznego rozpoznawania mowy.

Przeciążenia

EmulateRecognizeAsync(String)

Emuluje dane wejściowe frazy do rozpoznawania mowy przy użyciu tekstu zamiast dźwięku w celu asynchronicznego rozpoznawania mowy.

EmulateRecognizeAsync(RecognizedWordUnit[], CompareOptions)

Emuluje dane wejściowe określonych wyrazów do aparatu rozpoznawania mowy przy użyciu tablicy RecognizedWordUnit obiektów zamiast dźwięku w celu asynchronicznego rozpoznawania mowy i określa sposób, w jaki aparat rozpoznawania obsługuje porównanie Unicode między wyrazami a załadowaną gramatyką rozpoznawania mowy.

EmulateRecognizeAsync(String, CompareOptions)

Emuluje dane wejściowe frazy do rozpoznawania mowy, używając tekstu zamiast dźwięku do asynchronicznego rozpoznawania mowy i określa sposób obsługi porównania Unicode przez rozpoznawanie mowy między frazą a załadowaną gramatyką rozpoznawania mowy.

Uwagi

Te metody pomijają systemowe dane wejściowe audio i udostępniają tekst do rozpoznawania jako String obiekty lub jako tablicę RecognizedWordUnit obiektów. Może to być przydatne podczas testowania lub debugowania aplikacji lub gramatyki. Na przykład można użyć emulacji, aby określić, czy wyraz znajduje się w gramatyce i jakie semantyki są zwracane po rozpoznaniu wyrazu. SetInputToNull Użyj metody , aby wyłączyć wprowadzanie dźwięku do aparatu rozpoznawania mowy podczas operacji emulacji.

Rozpoznawanie SpeechDetectedmowy wywołuje zdarzenia , , SpeechHypothesizedSpeechRecognitionRejectedi SpeechRecognized tak, jakby operacja rozpoznawania nie została emulowana. Gdy rozpoznawanie zakończy operację rozpoznawania asynchronicznego, zgłasza EmulateRecognizeCompleted zdarzenie. Rozpoznawanie ignoruje nowe wiersze i dodatkowe białe znaki i traktuje interpunkcję jako dane wejściowe literału.

Uwaga

RecognitionResult Obiekt wygenerowany przez aparat rozpoznawania mowy w odpowiedzi na emulowane dane wejściowe ma wartość null dla jego Audio właściwości.

Aby emulować rozpoznawanie synchroniczne, użyj EmulateRecognize metody .

EmulateRecognizeAsync(String)

Źródło:
SpeechRecognitionEngine.cs
Źródło:
SpeechRecognitionEngine.cs
Źródło:
SpeechRecognitionEngine.cs

Emuluje dane wejściowe frazy do rozpoznawania mowy przy użyciu tekstu zamiast dźwięku w celu asynchronicznego rozpoznawania mowy.

public:
 void EmulateRecognizeAsync(System::String ^ inputText);
public void EmulateRecognizeAsync (string inputText);
member this.EmulateRecognizeAsync : string -> unit
Public Sub EmulateRecognizeAsync (inputText As String)

Parametry

inputText
String

Dane wejściowe operacji rozpoznawania.

Wyjątki

Aparat rozpoznawania nie ma załadowanych gramatyk rozpoznawania mowy lub aparat rozpoznawania ma operację rozpoznawania asynchronicznego, która nie została jeszcze ukończona.

inputText to null.

inputText jest pustym ciągiem ("").

Przykłady

Poniższy przykład kodu jest częścią aplikacji konsolowej, która demonstruje asynchroniczne emulowane dane wejściowe, skojarzone wyniki rozpoznawania i skojarzone zdarzenia wywoływane przez rozpoznawanie mowy. W przykładzie są generowane następujące dane wyjściowe.

TestRecognizeAsync("Smith")...  
 SpeechDetected event raised.  
 SpeechRecognized event raised.  
  Grammar = Smith; Text = Smith  
 EmulateRecognizeCompleted event raised.  
  Grammar = Smith; Text = Smith  
 Done.  

TestRecognizeAsync("Jones")...  
 SpeechDetected event raised.  
 SpeechRecognized event raised.  
  Grammar = Jones; Text = Jones  
 EmulateRecognizeCompleted event raised.  
  Grammar = Jones; Text = Jones  
 Done.  

TestRecognizeAsync("Mister")...  
 SpeechDetected event raised.  
 SpeechHypothesized event raised.  
  Grammar = Smith; Text = mister  
 SpeechRecognitionRejected event raised.  
  Grammar = <not available>; Text =  
 EmulateRecognizeCompleted event raised.  
  No recognition result available.  
 Done.  

TestRecognizeAsync("Mister Smith")...  
 SpeechDetected event raised.  
 SpeechRecognized event raised.  
  Grammar = Smith; Text = mister Smith  
 EmulateRecognizeCompleted event raised.  
  Grammar = Smith; Text = mister Smith  
 Done.  

press any key to exit...  
using System;  
using System.Globalization;  
using System.Speech.Recognition;  
using System.Threading;  

namespace SreEmulateRecognizeAsync  
{  
  class Program  
  {  
    // Indicate when an asynchronous operation is finished.  
    static bool completed;  

    static void Main(string[] args)  
    {  
      using (SpeechRecognitionEngine recognizer =  
        new SpeechRecognitionEngine(new CultureInfo("en-US")))  
      {  
        // Load grammars.  
        recognizer.LoadGrammar(CreateNameGrammar("Smith"));  
        recognizer.LoadGrammar(CreateNameGrammar("Jones"));  

        // Configure the audio input.  
        recognizer.SetInputToNull();  

        // Add event handlers for the events raised by the  
        // EmulateRecognizeAsync method.  
        recognizer.SpeechDetected +=  
          new EventHandler<SpeechDetectedEventArgs>(  
            SpeechDetectedHandler);  
        recognizer.SpeechHypothesized +=  
          new EventHandler<SpeechHypothesizedEventArgs>(  
            SpeechHypothesizedHandler);  
        recognizer.SpeechRecognitionRejected +=  
          new EventHandler<SpeechRecognitionRejectedEventArgs>(  
            SpeechRecognitionRejectedHandler);  
        recognizer.SpeechRecognized +=  
          new EventHandler<SpeechRecognizedEventArgs>(  
            SpeechRecognizedHandler);  
        recognizer.EmulateRecognizeCompleted +=  
          new EventHandler<EmulateRecognizeCompletedEventArgs>(  
            EmulateRecognizeCompletedHandler);  

        // Start four asynchronous emulated recognition operations.  
        TestRecognizeAsync(recognizer, "Smith");  
        TestRecognizeAsync(recognizer, "Jones");  
        TestRecognizeAsync(recognizer, "Mister");  
        TestRecognizeAsync(recognizer, "Mister Smith");  
      }  

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

    // Create a simple name grammar.  
    // Set the grammar name to the surname.  
    private static Grammar CreateNameGrammar(string surname)  
    {  
      GrammarBuilder builder = new GrammarBuilder("mister", 0, 1);  
      builder.Append(surname);  

      Grammar nameGrammar = new Grammar(builder);  
      nameGrammar.Name = surname;  

      return nameGrammar;  
    }  

    // Send emulated input to the recognizer for asynchronous  
    // recognition.  
    private static void TestRecognizeAsync(  
      SpeechRecognitionEngine recognizer, string input)  
    {  
      completed = false;  

      Console.WriteLine("TestRecognizeAsync(\"{0}\")...", input);  
      recognizer.EmulateRecognizeAsync(input);  

      // Wait for the operation to complete.  
      while (!completed)  
      {  
        Thread.Sleep(333);  
      }  

      Console.WriteLine(" Done.");  
      Console.WriteLine();  
    }  

    static void SpeechDetectedHandler(  
      object sender, SpeechDetectedEventArgs e)  
    {  
      Console.WriteLine(" SpeechDetected event raised.");  
    }  

    static void SpeechHypothesizedHandler(  
      object sender, SpeechHypothesizedEventArgs e)  
    {  
      Console.WriteLine(" SpeechHypothesized event raised.");  
      if (e.Result != null)  
      {  
        Console.WriteLine("  Grammar = {0}; Text = {1}",  
          e.Result.Grammar.Name ?? "<none>", e.Result.Text);  
      }  
      else  
      {  
        Console.WriteLine("  No recognition result available.");  
      }  
    }  

    // Handle events.  
    static void SpeechRecognitionRejectedHandler(  
      object sender, SpeechRecognitionRejectedEventArgs e)  
    {  
      Console.WriteLine(" SpeechRecognitionRejected event raised.");  
      if (e.Result != null)  
      {  
        string grammarName;  
        if (e.Result.Grammar != null)  
        {  
          grammarName = e.Result.Grammar.Name ?? "<none>";  
        }  
        else  
        {  
          grammarName = "<not available>";  
        }  
        Console.WriteLine("  Grammar = {0}; Text = {1}",  
          grammarName, e.Result.Text);  
      }  
      else  
      {  
        Console.WriteLine("  No recognition result available.");  
      }  
    }  

    static void SpeechRecognizedHandler(  
      object sender, SpeechRecognizedEventArgs e)  
    {  
      Console.WriteLine(" SpeechRecognized event raised.");  
      if (e.Result != null)  
      {  
        Console.WriteLine("  Grammar = {0}; Text = {1}",  
          e.Result.Grammar.Name ?? "<none>", e.Result.Text );  
      }  
      else  
      {  
        Console.WriteLine("  No recognition result available.");  
      }  
    }  

    static void EmulateRecognizeCompletedHandler(  
      object sender, EmulateRecognizeCompletedEventArgs e)  
    {  
      Console.WriteLine(" EmulateRecognizeCompleted event raised.");  

      if (e.Error != null)  
      {  
        Console.WriteLine("  {0} exception encountered: {1}:",  
          e.Error.GetType().Name, e.Error.Message);  
      }  
      else if (e.Cancelled)  
      {  
        Console.WriteLine("  Operation cancelled.");  
      }  
      else if (e.Result != null)  
      {  
        Console.WriteLine("  Grammar = {0}; Text = {1}",  
          e.Result.Grammar.Name ?? "<none>", e.Result.Text);  
      }  
      else  
      {  
        Console.WriteLine("  No recognition result available.");  
      }  

      completed = true;  
    }  
  }  
}

Uwagi

Rozpoznawanie SpeechDetectedmowy wywołuje zdarzenia , , SpeechHypothesizedSpeechRecognitionRejectedi SpeechRecognized tak, jakby operacja rozpoznawania nie została emulowana. Gdy rozpoznawanie zakończy operację rozpoznawania asynchronicznego, zgłasza EmulateRecognizeCompleted zdarzenie.

Osoby rozpoznające dostarczane z systemami Vista i Windows 7 ignorują wielkość liter i znaków podczas stosowania reguł gramatycznych do frazy wejściowej. Aby uzyskać więcej informacji na temat tego typu porównania, zobacz CompareOptions wartości OrdinalIgnoreCase wyliczenia i IgnoreWidth. Rozpoznawanie ignoruje również nowe wiersze i dodatkowe białe znaki i traktuj znaki interpunkcyjne jako dane wejściowe literału.

Ta metoda jest przechowywana w zadaniu, które zwraca wszystkie wyjątki nieużytowe, które może zgłosić synchroniczna odpowiednik metody. Jeśli wyjątek jest przechowywany w zwracanym zadaniu, ten wyjątek zostanie zgłoszony podczas oczekiwania zadania. Wyjątki użycia, takie jak ArgumentException, są nadal zgłaszane synchronicznie. W przypadku przechowywanych wyjątków zobacz wyjątki zgłoszone przez EmulateRecognize(String)usługę .

Zobacz też

Dotyczy

EmulateRecognizeAsync(RecognizedWordUnit[], CompareOptions)

Źródło:
SpeechRecognitionEngine.cs
Źródło:
SpeechRecognitionEngine.cs
Źródło:
SpeechRecognitionEngine.cs

Emuluje dane wejściowe określonych wyrazów do aparatu rozpoznawania mowy przy użyciu tablicy RecognizedWordUnit obiektów zamiast dźwięku w celu asynchronicznego rozpoznawania mowy i określa sposób, w jaki aparat rozpoznawania obsługuje porównanie Unicode między wyrazami a załadowaną gramatyką rozpoznawania mowy.

public:
 void EmulateRecognizeAsync(cli::array <System::Speech::Recognition::RecognizedWordUnit ^> ^ wordUnits, System::Globalization::CompareOptions compareOptions);
public void EmulateRecognizeAsync (System.Speech.Recognition.RecognizedWordUnit[] wordUnits, System.Globalization.CompareOptions compareOptions);
member this.EmulateRecognizeAsync : System.Speech.Recognition.RecognizedWordUnit[] * System.Globalization.CompareOptions -> unit
Public Sub EmulateRecognizeAsync (wordUnits As RecognizedWordUnit(), compareOptions As CompareOptions)

Parametry

wordUnits
RecognizedWordUnit[]

Tablica jednostek wyrazów, która zawiera dane wejściowe dla operacji rozpoznawania.

compareOptions
CompareOptions

Bitowa kombinacja wartości wyliczenia, które opisują typ porównania do użycia dla emulowanej operacji rozpoznawania.

Wyjątki

Aparat rozpoznawania nie ma załadowanych gramatyk rozpoznawania mowy lub aparat rozpoznawania ma operację rozpoznawania asynchronicznego, która nie została jeszcze ukończona.

wordUnits to null.

wordUnits zawiera co najmniej jeden null element.

compareOptions zawiera flagę IgnoreNonSpace, IgnoreSymbolslub StringSort .

Uwagi

Rozpoznawanie SpeechDetectedmowy wywołuje zdarzenia , , SpeechHypothesizedSpeechRecognitionRejectedi SpeechRecognized tak, jakby operacja rozpoznawania nie została emulowana. Gdy rozpoznawanie zakończy operację rozpoznawania asynchronicznego, zgłasza EmulateRecognizeCompleted zdarzenie.

Rozpoznawanie używa compareOptions , gdy stosuje reguły gramatyczne do frazy wejściowej. Osoby rozpoznające dostarczane z systemem Vista i Windows 7 ignorują wielkość liter, jeśli OrdinalIgnoreCase wartość lub IgnoreCase jest obecna. Rozpoznawanie zawsze ignoruje szerokość znaku i nigdy nie ignoruje typu Kana. Rozpoznawanie ignoruje również nowe wiersze i dodatkowe białe znaki i traktuj znaki interpunkcyjne jako dane wejściowe literału. Aby uzyskać więcej informacji na temat szerokości znaku i typu Kana, zobacz CompareOptions wyliczenie.

Ta metoda jest przechowywana w zadaniu, które zwraca wszystkie wyjątki nieużytowe, które może zgłosić synchroniczna odpowiednik metody. Jeśli wyjątek jest przechowywany w zwracanym zadaniu, ten wyjątek zostanie zgłoszony podczas oczekiwania zadania. Wyjątki użycia, takie jak ArgumentException, są nadal zgłaszane synchronicznie. W przypadku przechowywanych wyjątków zobacz wyjątki zgłoszone przez EmulateRecognize(RecognizedWordUnit[], CompareOptions)usługę .

Zobacz też

Dotyczy

EmulateRecognizeAsync(String, CompareOptions)

Źródło:
SpeechRecognitionEngine.cs
Źródło:
SpeechRecognitionEngine.cs
Źródło:
SpeechRecognitionEngine.cs

Emuluje dane wejściowe frazy do rozpoznawania mowy, używając tekstu zamiast dźwięku do asynchronicznego rozpoznawania mowy i określa sposób obsługi porównania Unicode przez rozpoznawanie mowy między frazą a załadowaną gramatyką rozpoznawania mowy.

public:
 void EmulateRecognizeAsync(System::String ^ inputText, System::Globalization::CompareOptions compareOptions);
public void EmulateRecognizeAsync (string inputText, System.Globalization.CompareOptions compareOptions);
member this.EmulateRecognizeAsync : string * System.Globalization.CompareOptions -> unit
Public Sub EmulateRecognizeAsync (inputText As String, compareOptions As CompareOptions)

Parametry

inputText
String

Fraza wejściowa dla operacji rozpoznawania.

compareOptions
CompareOptions

Bitowa kombinacja wartości wyliczenia, które opisują typ porównania do użycia dla emulowanej operacji rozpoznawania.

Wyjątki

Aparat rozpoznawania nie ma załadowanych gramatyk rozpoznawania mowy lub aparat rozpoznawania ma operację rozpoznawania asynchronicznego, która nie została jeszcze ukończona.

inputText to null.

inputText jest pustym ciągiem ("").

compareOptions zawiera flagę IgnoreNonSpace, IgnoreSymbolslub StringSort .

Uwagi

Rozpoznawanie SpeechDetectedmowy wywołuje zdarzenia , , SpeechHypothesizedSpeechRecognitionRejectedi SpeechRecognized tak, jakby operacja rozpoznawania nie została emulowana. Gdy rozpoznawanie zakończy operację rozpoznawania asynchronicznego, zgłasza EmulateRecognizeCompleted zdarzenie.

Rozpoznawanie używa compareOptions , gdy stosuje reguły gramatyczne do frazy wejściowej. Osoby rozpoznające dostarczane z systemem Vista i Windows 7 ignorują wielkość liter, jeśli OrdinalIgnoreCase wartość lub IgnoreCase jest obecna. Rozpoznawanie zawsze ignoruje szerokość znaku i nigdy nie ignoruje typu Kana. Rozpoznawanie ignoruje również nowe wiersze i dodatkowe białe znaki i traktuj znaki interpunkcyjne jako dane wejściowe literału. Aby uzyskać więcej informacji na temat szerokości znaku i typu Kana, zobacz CompareOptions wyliczenie.

Ta metoda jest przechowywana w zadaniu, które zwraca wszystkie wyjątki nieużytowe, które może zgłosić synchroniczna odpowiednik metody. Jeśli wyjątek jest przechowywany w zwracanym zadaniu, ten wyjątek zostanie zgłoszony podczas oczekiwania zadania. Wyjątki użycia, takie jak ArgumentException, są nadal zgłaszane synchronicznie. W przypadku przechowywanych wyjątków zobacz wyjątki zgłoszone przez EmulateRecognize(String, CompareOptions)usługę .

Zobacz też

Dotyczy