SpeechRecognizer.EmulateRecognizeAsync 方法

定義

在非同步語音辨識中使用文字而不使用音訊,模擬對共用語音辨識器的輸入。

多載

EmulateRecognizeAsync(String)

在共用的語音辨識器上模擬片語輸入,針對非同步的語音辨識使用文字而不使用音訊。

EmulateRecognizeAsync(RecognizedWordUnit[], CompareOptions)

在共用的語音辨識器上模擬特定單字輸入,針對非同步的語音辨識使用文字而不使用音訊,並指定辨識器如何處理單字間的 Unicode 比較以及已載入的語音辨識文法。

EmulateRecognizeAsync(String, CompareOptions)

在共用的語音辨識器上模擬片語輸入,針對非同步的語音辨識使用文字而不使用音訊,並指定辨識器如何處理片語間的 Unicode 比較以及已載入的語音辨識文法。

備註

這些方法會略過系統音訊輸入。 當您測試或偵錯應用程式或文法時,這會很有説明。

共用辨識器會引發 SpeechDetectedSpeechHypothesizedSpeechRecognitionRejectedSpeechRecognized 事件,就像辨識作業未模擬一樣。 當辨識器完成非同步辨識作業時,它會引發 EmulateRecognizeCompleted 事件。 辨識器會忽略新的行和額外的空白字元,並將標點符號視為常值輸入。

注意

如果 Windows 語音辨識處於 睡眠 狀態,則共用辨識器不會處理輸入,也不會引發 SpeechDetected 和相關事件,但仍會引發 EmulateRecognizeCompleted 事件。

注意

RecognitionResult共用辨識器所產生的物件,以回應模擬的輸入具有 其 Audio 屬性的 值 null

若要模擬同步辨識,請使用 EmulateRecognize 方法。

EmulateRecognizeAsync(String)

來源:
SpeechRecognizer.cs
來源:
SpeechRecognizer.cs
來源:
SpeechRecognizer.cs

在共用的語音辨識器上模擬片語輸入,針對非同步的語音辨識使用文字而不使用音訊。

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

參數

inputText
String

辨識作業的輸出。

範例

下列範例是主控台應用程式的一部分,它會載入語音辨識文法,並示範非同步模擬輸入、相關聯的辨識結果,以及語音辨識器所引發的相關聯事件。 如果 Windows 語音辨識未執行,啟動此應用程式也會啟動 Windows 語音辨識。 如果 Windows 語音辨識處於 睡眠 狀態,則 EmulateRecognizeAsync 一律會傳回 Null。

using System;  
using System.Speech.Recognition;  
using System.Threading;  

namespace SharedRecognizer  
{  
  class Program  
  {  
    static bool completed;  

    static void Main(string[] args)  
    {  
      // Initialize an instance of the shared recognizer.  
      using (SpeechRecognizer recognizer = new SpeechRecognizer())  
      {  
        // Create and load a sample grammar.  
        Grammar testGrammar =  
          new Grammar(new GrammarBuilder("testing testing"));  
        testGrammar.Name = "Test Grammar";  

        recognizer.LoadGrammar(testGrammar);  

        // Attach event handlers for recognition events.  
        recognizer.SpeechRecognized +=  
          new EventHandler<SpeechRecognizedEventArgs>(  
            SpeechRecognizedHandler);  
        recognizer.EmulateRecognizeCompleted +=  
          new EventHandler<EmulateRecognizeCompletedEventArgs>(  
            EmulateRecognizeCompletedHandler);  

        completed = false;  

        // This EmulateRecognizeAsync call generates a SpeechRecognized event.  
        recognizer.EmulateRecognizeAsync("testing testing");  

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

        completed = false;  

        // This EmulateRecognizeAsync call does not match the grammar   
        // or generate a SpeechRecognized event.  
        recognizer.EmulateRecognizeAsync("testing one two three");  

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

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

    // Handle the SpeechRecognized event.  
    static void SpeechRecognizedHandler(  
      object sender, SpeechRecognizedEventArgs e)  
    {  
      if (e.Result != null)  
      {  
        Console.WriteLine("Recognition result = {0}",  
          e.Result.Text ?? "<no text>");  
      }  
      else  
      {  
        Console.WriteLine("No recognition result");  
      }  
    }  

    // Handle the EmulateRecognizeCompleted event.   
    static void EmulateRecognizeCompletedHandler(  
      object sender, EmulateRecognizeCompletedEventArgs e)  
    {  
      if (e.Result == null)  
      {  
        Console.WriteLine("No result generated.");  
      }  

      completed = true;  
    }  
  }  
}

備註

當將文法規則套用至輸入片語時,隨附于 Vista 和 Windows 7 的辨識器會忽略大小寫和字元寬度。 如需這種比較類型的詳細資訊,請參閱 CompareOptions 列舉值 OrdinalIgnoreCaseIgnoreWidth 。 辨識器也會忽略新行和額外的空白字元,並將標點符號視為常值輸入。

這個方法會儲存在工作中,它會傳回方法同步對應專案可以擲回的所有非使用狀況例外狀況。 如果例外狀況儲存在傳回的工作中,則會在等候工作時擲回該例外狀況。 使用狀況例外狀況,例如 ArgumentException ,仍會同步擲回。 如需預存的例外狀況,請參閱 所 EmulateRecognize(String) 擲回的例外狀況。

另請參閱

適用於

EmulateRecognizeAsync(RecognizedWordUnit[], CompareOptions)

來源:
SpeechRecognizer.cs
來源:
SpeechRecognizer.cs
來源:
SpeechRecognizer.cs

在共用的語音辨識器上模擬特定單字輸入,針對非同步的語音辨識使用文字而不使用音訊,並指定辨識器如何處理單字間的 Unicode 比較以及已載入的語音辨識文法。

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)

參數

wordUnits
RecognizedWordUnit[]

文字單位陣列,包含辨識作業的輸入。

compareOptions
CompareOptions

列舉值的位元組合,描述要用於模擬辨識作業的比較類型。

備註

這個方法會使用 參數中 wordUnits 提供的資訊來 RecognitionResult 建立 物件。

辨識器會在將文法規則套用至輸入片語時使用 compareOptions 。 隨附于 Vista 和 Windows 7 的辨識器會在 或 IgnoreCase 值存在時 OrdinalIgnoreCase 忽略大小寫。 辨識器一律會忽略字元寬度,且永遠不會忽略假名類型。 辨識器也會忽略新行和額外的空白字元,並將標點符號視為常值輸入。 如需字元寬度和假名類型的詳細資訊,請參閱 CompareOptions 列舉。

這個方法會儲存在工作中,它會傳回方法同步對應專案可以擲回的所有非使用狀況例外狀況。 如果例外狀況儲存在傳回的工作中,則會在等候工作時擲回該例外狀況。 使用狀況例外狀況,例如 ArgumentException ,仍會同步擲回。 如需預存的例外狀況,請參閱 所 EmulateRecognize(RecognizedWordUnit[], CompareOptions) 擲回的例外狀況。

另請參閱

適用於

EmulateRecognizeAsync(String, CompareOptions)

來源:
SpeechRecognizer.cs
來源:
SpeechRecognizer.cs
來源:
SpeechRecognizer.cs

在共用的語音辨識器上模擬片語輸入,針對非同步的語音辨識使用文字而不使用音訊,並指定辨識器如何處理片語間的 Unicode 比較以及已載入的語音辨識文法。

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)

參數

inputText
String

辨識作業的輸入片語。

compareOptions
CompareOptions

列舉值的位元組合,描述要用於模擬辨識作業的比較類型。

備註

辨識器會在將文法規則套用至輸入片語時使用 compareOptions 。 隨附于 Vista 和 Windows 7 的辨識器會在 或 IgnoreCase 值存在時 OrdinalIgnoreCase 忽略大小寫。 辨識器一律會忽略字元寬度,且永遠不會忽略假名類型。 辨識器也會忽略新行和額外的空白字元,並將標點符號視為常值輸入。 如需字元寬度和假名類型的詳細資訊,請參閱 CompareOptions 列舉。

這個方法會儲存在工作中,它會傳回方法同步對應專案可以擲回的所有非使用狀況例外狀況。 如果例外狀況儲存在傳回的工作中,則會在等候工作時擲回該例外狀況。 使用狀況例外狀況,例如 ArgumentException ,仍會同步擲回。 如需預存的例外狀況,請參閱 所 EmulateRecognize(String, CompareOptions) 擲回的例外狀況。

另請參閱

適用於