SpeechRecognizer.EmulateRecognizeAsync 方法

定义

使用文本而不是异步语音识别的音频来模拟输入到共享语音识别器。

重载

EmulateRecognizeAsync(String)

使用文本而不是异步语音识别的音频来模拟输入短语到共享语音识别器。

EmulateRecognizeAsync(RecognizedWordUnit[], CompareOptions)

使用文本代替异步语音识别的音频来模拟特定字输入到共享语音识别器,并指定识别器如何处理单词和加载的语音识别语法间的 Unicode 比较。

EmulateRecognizeAsync(String, CompareOptions)

使用文本代替异步语音识别的音频来模拟短语输入到共享语音识别器,并指定识别器如何处理短语和加载的语音识别语法间的 Unicode 比较。

注解

这些方法绕过系统音频输入。 在测试或调试应用程序或语法时,这非常有用。

共享识别器引发 SpeechDetected、、 SpeechHypothesizedSpeechRecognitionRejectedSpeechRecognized 事件,就好像未模拟识别操作一样。 当识别器完成异步识别操作时,它将引发 EmulateRecognizeCompleted 事件。 识别器忽略新行和多余的空格,并将标点视为文本输入。

备注

如果 Windows 语音识别处于 睡眠 状态,则共享识别器不会处理输入,也不会引发 SpeechDetected 和 相关事件,但仍会引发 事件 EmulateRecognizeCompleted

备注

RecognitionResult共享识别器为响应模拟输入null而生成的 对象的 Audio 属性值为 。

若要模拟同步识别,请使用 EmulateRecognize 方法。

EmulateRecognizeAsync(String)

Source:
SpeechRecognizer.cs
Source:
SpeechRecognizer.cs
Source:
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)

Source:
SpeechRecognizer.cs
Source:
SpeechRecognizer.cs
Source:
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 语法规则应用于输入短语时使用 。 如果 存在 或 IgnoreCase 值,则随 Vista 和 Windows 7 一起附带的OrdinalIgnoreCase识别器将忽略大小写。 识别器始终忽略字符宽度,从不忽略假名类型。 识别器还会忽略新行和额外的空格,并将标点符号视为文本输入。 有关字符宽度和假名类型的详细信息,请参阅 CompareOptions 枚举。

此方法将存储在任务中,它返回该方法的同步对应项可能引发的所有非使用异常。 如果异常存储在返回的任务中,则在等待任务时将引发该异常。 使用异常(如 ArgumentException)仍会同步引发。 有关存储的异常,请参阅 引发的 EmulateRecognize(RecognizedWordUnit[], CompareOptions)异常。

另请参阅

适用于

EmulateRecognizeAsync(String, CompareOptions)

Source:
SpeechRecognizer.cs
Source:
SpeechRecognizer.cs
Source:
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 语法规则应用于输入短语时使用 。 如果 存在 或 IgnoreCase 值,则随 Vista 和 Windows 7 一起附带的OrdinalIgnoreCase识别器将忽略大小写。 识别器始终忽略字符宽度,从不忽略假名类型。 识别器还会忽略新行和额外的空格,并将标点符号视为文本输入。 有关字符宽度和假名类型的详细信息,请参阅 CompareOptions 枚举。

此方法将存储在任务中,它返回该方法的同步对应项可能引发的所有非使用异常。 如果异常存储在返回的任务中,则在等待任务时将引发该异常。 使用异常(如 ArgumentException)仍会同步引发。 有关存储的异常,请参阅 引发的 EmulateRecognize(String, CompareOptions)异常。

另请参阅

适用于