Share via


SpeechRecognitionEngine.EmulateRecognizeAsync Metode

Definisi

Meniru input ke pengenal ucapan, menggunakan teks sebagai pengganti audio untuk pengenalan ucapan asinkron.

Overload

EmulateRecognizeAsync(String)

Meniru input frasa ke pengenal ucapan, menggunakan teks sebagai pengganti audio untuk pengenalan ucapan asinkron.

EmulateRecognizeAsync(RecognizedWordUnit[], CompareOptions)

Meniru input kata-kata tertentu ke pengenal ucapan, menggunakan array RecognizedWordUnit objek sebagai pengganti audio untuk pengenalan ucapan asinkron, dan menentukan bagaimana pengenal menangani perbandingan Unicode antara kata-kata dan tata bahasa pengenalan ucapan yang dimuat.

EmulateRecognizeAsync(String, CompareOptions)

Meniru input frasa ke pengenal ucapan, menggunakan teks sebagai pengganti audio untuk pengenalan ucapan asinkron, dan menentukan bagaimana pengenal menangani perbandingan Unicode antara frasa dan tata bahasa pengenalan ucapan yang dimuat.

Keterangan

Metode ini melewati input audio sistem dan menyediakan teks ke pengenal sebagai String objek atau sebagai array RecognizedWordUnit objek. Ini dapat membantu ketika Anda menguji atau men-debug aplikasi atau tata bahasa. Misalnya, Anda dapat menggunakan emulasi untuk menentukan apakah kata berada dalam tata bahasa dan semantik apa yang dikembalikan ketika kata dikenali. SetInputToNull Gunakan metode untuk menonaktifkan input audio ke mesin pengenalan ucapan selama operasi emulasi.

Pengenal ucapan memunculkan SpeechDetectedperistiwa , SpeechHypothesized, SpeechRecognitionRejected, dan SpeechRecognized seolah-olah operasi pengenalan tidak ditimulasi. Ketika pengenal menyelesaikan operasi pengenalan asinkron, pengenalan akan memunculkan EmulateRecognizeCompleted peristiwa. Pengenal mengabaikan baris baru dan ruang kosong ekstra dan memperlakukan tanda baca sebagai input harfiah.

Catatan

Objek RecognitionResult yang dihasilkan oleh pengenal ucapan sebagai respons terhadap input yang ditiru memiliki nilai null untuk propertinya Audio .

Untuk meniru pengenalan sinkron, gunakan EmulateRecognize metode .

EmulateRecognizeAsync(String)

Sumber:
SpeechRecognitionEngine.cs
Sumber:
SpeechRecognitionEngine.cs
Sumber:
SpeechRecognitionEngine.cs

Meniru input frasa ke pengenal ucapan, menggunakan teks sebagai pengganti audio untuk pengenalan ucapan asinkron.

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

Parameter

inputText
String

Input untuk operasi pengenalan.

Pengecualian

Pengenal tidak memiliki tata bahasa pengenalan ucapan yang dimuat, atau pengenal memiliki operasi pengenalan asinkron yang belum selesai.

inputTextadalah null.

inputText adalah string kosong ("").

Contoh

Contoh kode di bawah ini adalah bagian dari aplikasi konsol yang menunjukkan input yang ditiru asinkron, hasil pengenalan terkait, dan peristiwa terkait yang diangkat oleh pengenal ucapan. Contoh menghasilkan output berikut.

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

Keterangan

Pengenal ucapan memunculkan SpeechDetectedperistiwa , SpeechHypothesized, SpeechRecognitionRejected, dan SpeechRecognized seolah-olah operasi pengenalan tidak ditimulasi. Ketika pengenal menyelesaikan operasi pengenalan asinkron, pengenalan akan memunculkan EmulateRecognizeCompleted peristiwa.

Pengenal yang dikirim dengan Vista dan Windows 7 mengabaikan huruf besar/kecil dan lebar karakter saat menerapkan aturan tata bahasa ke frasa input. Untuk informasi selengkapnya tentang jenis perbandingan ini, lihat CompareOptions nilai OrdinalIgnoreCase enumerasi dan IgnoreWidth. Pengenal juga mengabaikan baris baru dan ruang kosong ekstra dan memperlakukan tanda baca sebagai input harfiah.

Metode ini disimpan dalam tugas yang mengembalikan semua pengecualian non-penggunaan yang dapat dilemparkan oleh rekan sinkron metode. Jika pengecualian disimpan ke dalam tugas yang dikembalikan, pengecualian tersebut akan dilemparkan saat tugas ditunggu. Pengecualian penggunaan, seperti ArgumentException, masih dilemparkan secara sinkron. Untuk pengecualian yang disimpan, lihat pengecualian yang dilemparkan oleh EmulateRecognize(String).

Lihat juga

Berlaku untuk

EmulateRecognizeAsync(RecognizedWordUnit[], CompareOptions)

Sumber:
SpeechRecognitionEngine.cs
Sumber:
SpeechRecognitionEngine.cs
Sumber:
SpeechRecognitionEngine.cs

Meniru input kata-kata tertentu ke pengenal ucapan, menggunakan array RecognizedWordUnit objek sebagai pengganti audio untuk pengenalan ucapan asinkron, dan menentukan bagaimana pengenal menangani perbandingan Unicode antara kata-kata dan tata bahasa pengenalan ucapan yang dimuat.

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)

Parameter

wordUnits
RecognizedWordUnit[]

Array unit kata yang berisi input untuk operasi pengenalan.

compareOptions
CompareOptions

Kombinasi bitwise dari nilai enumerasi yang menjelaskan jenis perbandingan yang digunakan untuk operasi pengenalan yang ditiru.

Pengecualian

Pengenal tidak memiliki tata bahasa pengenalan ucapan yang dimuat, atau pengenal memiliki operasi pengenalan asinkron yang belum selesai.

wordUnitsadalah null.

wordUnits berisi satu atau beberapa null elemen.

compareOptionsIgnoreNonSpaceberisi bendera , IgnoreSymbols, atau StringSort .

Keterangan

Pengenal ucapan memunculkan SpeechDetectedperistiwa , SpeechHypothesized, SpeechRecognitionRejected, dan SpeechRecognized seolah-olah operasi pengenalan tidak ditimulasi. Ketika pengenal menyelesaikan operasi pengenalan asinkron, pengenalan akan memunculkan EmulateRecognizeCompleted peristiwa.

Pengenal menggunakan compareOptions saat menerapkan aturan tata bahasa ke frasa input. Pengenal yang mengirim dengan Kasus abaikan Vista dan Windows 7 jika OrdinalIgnoreCase nilai atau IgnoreCase ada. Pengenal selalu mengabaikan lebar karakter dan tidak pernah mengabaikan jenis Kana. Pengenal juga mengabaikan baris baru dan ruang kosong ekstra dan memperlakukan tanda baca sebagai input harfiah. Untuk informasi selengkapnya tentang lebar karakter dan jenis Kana, lihat CompareOptions enumerasi.

Metode ini disimpan dalam tugas yang mengembalikan semua pengecualian non-penggunaan yang dapat dilemparkan oleh rekan sinkron metode. Jika pengecualian disimpan ke dalam tugas yang dikembalikan, pengecualian tersebut akan dilemparkan saat tugas ditunggu. Pengecualian penggunaan, seperti ArgumentException, masih dilemparkan secara sinkron. Untuk pengecualian yang disimpan, lihat pengecualian yang dilemparkan oleh EmulateRecognize(RecognizedWordUnit[], CompareOptions).

Lihat juga

Berlaku untuk

EmulateRecognizeAsync(String, CompareOptions)

Sumber:
SpeechRecognitionEngine.cs
Sumber:
SpeechRecognitionEngine.cs
Sumber:
SpeechRecognitionEngine.cs

Meniru input frasa ke pengenal ucapan, menggunakan teks sebagai pengganti audio untuk pengenalan ucapan asinkron, dan menentukan bagaimana pengenal menangani perbandingan Unicode antara frasa dan tata bahasa pengenalan ucapan yang dimuat.

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)

Parameter

inputText
String

Frasa input untuk operasi pengenalan.

compareOptions
CompareOptions

Kombinasi bitwise dari nilai enumerasi yang menjelaskan jenis perbandingan yang digunakan untuk operasi pengenalan yang ditiru.

Pengecualian

Pengenal tidak memiliki tata bahasa pengenalan ucapan yang dimuat, atau pengenal memiliki operasi pengenalan asinkron yang belum selesai.

inputTextadalah null.

inputText adalah string kosong ("").

compareOptionsIgnoreNonSpaceberisi bendera , IgnoreSymbols, atau StringSort .

Keterangan

Pengenal ucapan memunculkan SpeechDetectedperistiwa , SpeechHypothesized, SpeechRecognitionRejected, dan SpeechRecognized seolah-olah operasi pengenalan tidak ditimulasi. Ketika pengenal menyelesaikan operasi pengenalan asinkron, pengenalan akan memunculkan EmulateRecognizeCompleted peristiwa.

Pengenal menggunakan compareOptions saat menerapkan aturan tata bahasa ke frasa input. Pengenal yang mengirim dengan Kasus abaikan Vista dan Windows 7 jika OrdinalIgnoreCase nilai atau IgnoreCase ada. Pengenal selalu mengabaikan lebar karakter dan tidak pernah mengabaikan jenis Kana. Pengenal juga mengabaikan baris baru dan ruang kosong ekstra dan memperlakukan tanda baca sebagai input harfiah. Untuk informasi selengkapnya tentang lebar karakter dan jenis Kana, lihat CompareOptions enumerasi.

Metode ini disimpan dalam tugas yang mengembalikan semua pengecualian non-penggunaan yang dapat dilemparkan oleh rekan sinkron metode. Jika pengecualian disimpan ke dalam tugas yang dikembalikan, pengecualian tersebut akan dilemparkan saat tugas ditunggu. Pengecualian penggunaan, seperti ArgumentException, masih dilemparkan secara sinkron. Untuk pengecualian yang disimpan, lihat pengecualian yang dilemparkan oleh EmulateRecognize(String, CompareOptions).

Lihat juga

Berlaku untuk