SpeechRecognitionEngine.EmulateRecognizeAsync 메서드

정의

비동기 음성 인식을 위한 오디오 대신 텍스트를 사용하여 공유 음성 인식기 입력을 모사합니다.

오버로드

EmulateRecognizeAsync(String)

비동기 음성 인식용 오디오 대신 텍스트를 사용하여 음성 인식기에 구 입력을 에뮬레이션합니다.

EmulateRecognizeAsync(RecognizedWordUnit[], CompareOptions)

비동기 음성 인식용 오디오 대신 RecognizedWordUnit 개체의 배열을 사용하여 음성 인식기에 특정 단어 입력을 에뮬레이션하고, 인식기가 단어와 로드된 음성 인식 문법 사이의 유니코드 비교를 처리할 방법을 지정합니다.

EmulateRecognizeAsync(String, CompareOptions)

비동기 음성 인식용 오디오 대신 텍스트를 사용하여 음성 인식기에 구 입력을 에뮬레이션하고, 인식기가 구와 로드된 음성 인식 문법 사이의 유니코드 비교를 처리할 방법을 지정합니다.

설명

이러한 메서드는 시스템 오디오 입력을 무시하고 인식기 String 에서 개체 또는 개체 배열 RecognizedWordUnit 로 텍스트를 제공합니다. 이 기능은 테스트 하거나 애플리케이션 또는 문법 디버깅 하는 경우에 유용할 수 있습니다. 예를 들어 에뮬레이션을 사용하여 단어가 문법에 있는지 여부와 단어가 인식될 때 반환되는 의미 체계를 확인할 수 있습니다. 메서드를 SetInputToNull 사용하여 에뮬레이션 작업 중에 음성 인식 엔진에 대한 오디오 입력을 사용하지 않도록 설정합니다.

음성 인식기는 인식 작업이 에뮬레이트되지 않은 것처럼 , SpeechHypothesized, SpeechRecognitionRejectedSpeechRecognized 이벤트를 발생SpeechDetected합니다. 인식기에는 비동기 인식 작업이 완료 되 면 발생 합니다 EmulateRecognizeCompleted 이벤트입니다. 인식기 새 줄 및 추가 공백을 무시 하 고 리터럴 입력으로 문장 부호를 처리 합니다.

참고

RecognitionResult 에뮬레이트된 입력에 대한 응답으로 음성 인식기에서 생성된 개체의 속성 값 nullAudio 은 입니다.

동기 인식 기능을 에뮬레이트하는 데 사용 된 EmulateRecognize 메서드.

EmulateRecognizeAsync(String)

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

인식 작업에 필요한 입력입니다.

예외

인식기에 음성 인식 문법이 로드되어 있지 않거나 인식기에 아직 완료되지 않은 비동기 인식 작업이 있습니다.

inputText이(가) null인 경우

inputText가 빈 문자열("")입니다.

예제

아래 코드 예제를 사용 하면 비동기 에뮬레이트된 입력, 연결 된 인식 결과 및 음성 인식기에 의해 발생 하는 연결 된 이벤트를 보여 주는 콘솔 애플리케이션의 일부인 합니다. 이 예제에서는 다음 출력을 생성합니다.

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

설명

음성 인식기는 인식 작업이 에뮬레이트되지 않은 것처럼 , SpeechHypothesized, SpeechRecognitionRejectedSpeechRecognized 이벤트를 발생SpeechDetected합니다. 인식기에는 비동기 인식 작업이 완료 되 면 발생 합니다 EmulateRecognizeCompleted 이벤트입니다.

인식기 Vista 및 Windows 7을 사용 하 여 제공 되는 대/소문자 무시 및 문자 너비 입력된 구를 문법 규칙을 적용 합니다. 이 유형의 비교에 대 한 자세한 내용은 참조는 CompareOptions 열거형 값 OrdinalIgnoreCaseIgnoreWidth합니다. 또한 인식자 새 줄 및 추가 공백을 무시 하 고 문장 부호 리터럴 입력으로 처리 합니다.

이 메서드는 메서드의 동기 대응에서 throw할 수 있는 모든 비사용 예외를 반환하는 작업에 저장됩니다. 예외가 반환된 작업에 저장되면 작업이 대기될 때 해당 예외가 throw됩니다. 와 같은 ArgumentException사용 예외는 여전히 동기적으로 throw됩니다. 저장된 예외는 에서 throw EmulateRecognize(String)된 예외를 참조하세요.

추가 정보

적용 대상

EmulateRecognizeAsync(RecognizedWordUnit[], CompareOptions)

Source:
SpeechRecognitionEngine.cs
Source:
SpeechRecognitionEngine.cs
Source:
SpeechRecognitionEngine.cs

비동기 음성 인식용 오디오 대신 RecognizedWordUnit 개체의 배열을 사용하여 음성 인식기에 특정 단어 입력을 에뮬레이션하고, 인식기가 단어와 로드된 음성 인식 문법 사이의 유니코드 비교를 처리할 방법을 지정합니다.

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이(가) null인 경우

wordUnits에는 하나 이상의 null 요소가 포함됩니다.

compareOptions에는 IgnoreNonSpace, IgnoreSymbols 또는 StringSort 플래그가 포함됩니다.

설명

음성 인식기는 인식 작업이 에뮬레이트되지 않은 것처럼 , SpeechHypothesized, SpeechRecognitionRejectedSpeechRecognized 이벤트를 발생SpeechDetected합니다. 인식기에는 비동기 인식 작업이 완료 되 면 발생 합니다 EmulateRecognizeCompleted 이벤트입니다.

인식기가 입력 구에 문법 규칙을 적용할 때 를 사용합니다 compareOptions . 인식기 Vista 및 Windows 7을 사용 하 여 제공 되는 경우 대/소문자를 무시 합니다 OrdinalIgnoreCase 또는 IgnoreCase 값이 있음. 인식자 항상 문자 너비를 무시 하 고 일본어가 나 형식 무시 해서는 안됩니다. 또한 인식자 새 줄 및 추가 공백을 무시 하 고 문장 부호 리터럴 입력으로 처리 합니다. 문자 너비 및 일본어가 나 형식에 대 한 자세한 내용은 참조는 CompareOptions 열거형입니다.

이 메서드는 메서드의 동기 대응에서 throw할 수 있는 모든 비사용 예외를 반환하는 작업에 저장됩니다. 예외가 반환된 작업에 저장되면 작업이 대기될 때 해당 예외가 throw됩니다. 와 같은 ArgumentException사용 예외는 여전히 동기적으로 throw됩니다. 저장된 예외는 에서 throw EmulateRecognize(RecognizedWordUnit[], CompareOptions)된 예외를 참조하세요.

추가 정보

적용 대상

EmulateRecognizeAsync(String, CompareOptions)

Source:
SpeechRecognitionEngine.cs
Source:
SpeechRecognitionEngine.cs
Source:
SpeechRecognitionEngine.cs

비동기 음성 인식용 오디오 대신 텍스트를 사용하여 음성 인식기에 구 입력을 에뮬레이션하고, 인식기가 구와 로드된 음성 인식 문법 사이의 유니코드 비교를 처리할 방법을 지정합니다.

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

에뮬레이트된 인식 작업에 사용할 비교 형식을 설명하는 열거형 값의 비트 조합입니다.

예외

인식기에 음성 인식 문법이 로드되어 있지 않거나 인식기에 아직 완료되지 않은 비동기 인식 작업이 있습니다.

inputText이(가) null인 경우

inputText가 빈 문자열("")입니다.

compareOptions에는 IgnoreNonSpace, IgnoreSymbols 또는 StringSort 플래그가 포함됩니다.

설명

음성 인식기는 인식 작업이 에뮬레이트되지 않은 것처럼 , SpeechHypothesized, SpeechRecognitionRejectedSpeechRecognized 이벤트를 발생SpeechDetected합니다. 인식기에는 비동기 인식 작업이 완료 되 면 발생 합니다 EmulateRecognizeCompleted 이벤트입니다.

인식기가 입력 구에 문법 규칙을 적용할 때 를 사용합니다 compareOptions . 인식기 Vista 및 Windows 7을 사용 하 여 제공 되는 경우 대/소문자를 무시 합니다 OrdinalIgnoreCase 또는 IgnoreCase 값이 있음. 인식자 항상 문자 너비를 무시 하 고 일본어가 나 형식 무시 해서는 안됩니다. 또한 인식자 새 줄 및 추가 공백을 무시 하 고 문장 부호 리터럴 입력으로 처리 합니다. 문자 너비 및 일본어가 나 형식에 대 한 자세한 내용은 참조는 CompareOptions 열거형입니다.

이 메서드는 메서드의 동기 대응에서 throw할 수 있는 모든 비사용 예외를 반환하는 작업에 저장됩니다. 예외가 반환된 작업에 저장되면 작업이 대기될 때 해당 예외가 throw됩니다. 와 같은 ArgumentException사용 예외는 여전히 동기적으로 throw됩니다. 저장된 예외는 에서 throw EmulateRecognize(String, CompareOptions)된 예외를 참조하세요.

추가 정보

적용 대상