SpeechRecognitionEngine.EmulateRecognize Метод

Определение

Эмулирует ввод в распознаватель речи, используя текст вместо аудио для синхронного распознавания речи.

Перегрузки

EmulateRecognize(String)

Эмулирует ввод фразы в распознаватель речи, используя текст вместо аудио для синхронного распознавания речи.

EmulateRecognize(RecognizedWordUnit[], CompareOptions)

Эмулирует ввод конкретных слов в распознаватель речи, используя текст вместо аудио для синхронного распознавания речи, и указывает способ обработки распознавателем сравнения Юникода между словами и загруженными грамматиками распознавания речи.

EmulateRecognize(String, CompareOptions)

Эмулирует ввод фразы в распознаватель речи, используя текст вместо аудио для синхронного распознавания речи, и указывает способ обработки распознавателем сравнения Юникода между фразой и загруженными грамматиками распознавания речи.

Комментарии

Эти методы обходят системный аудиовход и предоставляют текст распознавательу в виде String объектов или массива RecognizedWordUnit объектов. Это может быть полезно при тестировании или отладке приложения или грамматики. Например, можно использовать эмуляцию, чтобы определить, находится ли слово в грамматике и какая семантика возвращается при распознавании слова. Используйте метод , SetInputToNull чтобы отключить вход звука для модуля распознавания речи во время операций эмуляции.

Распознаватель речи вызывает SpeechDetectedсобытия , SpeechHypothesized, SpeechRecognitionRejectedи SpeechRecognized так, как если бы операция распознавания не эмулировалась. Распознаватель игнорирует новые строки и лишние пробелы и обрабатывает знаки препинания как литеральные входные данные.

Примечание

Объект RecognitionResult , созданный распознавателем речи в ответ на эмулированные входные данные, имеет значение null для своего Audio свойства .

Для эмуляции асинхронного распознавания используйте EmulateRecognizeAsync метод .

EmulateRecognize(String)

Исходный код:
SpeechRecognitionEngine.cs
Исходный код:
SpeechRecognitionEngine.cs
Исходный код:
SpeechRecognitionEngine.cs

Эмулирует ввод фразы в распознаватель речи, используя текст вместо аудио для синхронного распознавания речи.

public:
 System::Speech::Recognition::RecognitionResult ^ EmulateRecognize(System::String ^ inputText);
public System.Speech.Recognition.RecognitionResult EmulateRecognize (string inputText);
member this.EmulateRecognize : string -> System.Speech.Recognition.RecognitionResult
Public Function EmulateRecognize (inputText As String) As RecognitionResult

Параметры

inputText
String

Входные данные для операции распознавания.

Возвращаемое значение

Результат операции распознавания или null, если операция завершилась с ошибкой или распознаватель не включен.

Исключения

Для распознавателя нет загруженных грамматик распознавания речи.

inputText имеет значение null.

inputText является пустой строкой ("").

Примеры

Приведенный ниже пример кода является частью консольного приложения, которое демонстрирует эмулированные входные данные, связанные результаты распознавания и связанные события, вызванные распознавателем речи. В этом примере создаются следующие выходные данные.

TestRecognize("Smith")...  
 SpeechDetected event raised.  
 SpeechRecognized event raised.  
  Grammar = Smith; Text = Smith  
...Recognition result text = Smith  

TestRecognize("Jones")...  
 SpeechDetected event raised.  
 SpeechRecognized event raised.  
  Grammar = Jones; Text = Jones  
...Recognition result text = Jones  

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

TestRecognize("Mister Smith")...  
 SpeechDetected event raised.  
 SpeechRecognized event raised.  
  Grammar = Smith; Text = mister Smith  
...Recognition result text = mister Smith  

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

namespace Sre_EmulateRecognize  
{  
  class Program  
  {  
    static void Main(string[] args)  
    {  

      // Create an in-process speech recognizer for the en-US locale.  
      using (SpeechRecognitionEngine recognizer =  
        new SpeechRecognitionEngine(new CultureInfo("en-US")))  
      {  

        // Load grammars.  
        recognizer.LoadGrammar(CreateNameGrammar("Smith"));  
        recognizer.LoadGrammar(CreateNameGrammar("Jones"));  

        // Disable audio input to the recognizer.  
        recognizer.SetInputToNull();  

        // Add handlers for events raised by the EmulateRecognize 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);  

        // Start four synchronous emulated recognition operations.  
        TestRecognize(recognizer, "Smith");  
        TestRecognize(recognizer, "Jones");  
        TestRecognize(recognizer, "Mister");  
        TestRecognize(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 synchronous recognition.  
    private static void TestRecognize(  
      SpeechRecognitionEngine recognizer, string input)  
    {  
      Console.WriteLine("TestRecognize(\"{0}\")...", input);  
      RecognitionResult result =  
        recognizer.EmulateRecognize(input,CompareOptions.IgnoreCase);  
      if (result != null)  
      {  
        Console.WriteLine("...Recognition result text = {0}",  
          result.Text ?? "<null>");  
      }  
      else  
      {  
        Console.WriteLine("...No recognition result.");  
      }  
      Console.WriteLine();  
    }  

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

    // Handle events.  
    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.");  
      }  
    }  

    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.");  
      }  
    }  
  }  
}  

Комментарии

Распознаватель речи вызывает SpeechDetectedсобытия , SpeechHypothesized, SpeechRecognitionRejectedи SpeechRecognized так, как если бы операция распознавания не эмулировалась.

Распознавели, поставляемые с Vista и Windows 7, игнорируют регистр и ширину символов при применении правил грамматики к входной фразе. Дополнительные сведения об этом типе сравнения см. в разделах CompareOptions значения OrdinalIgnoreCase перечисления и IgnoreWidth. Распознавители также игнорируют новые строки и дополнительные пробелы и обрабатывают знаки препинания как литеральные входные данные.

См. также раздел

Применяется к

EmulateRecognize(RecognizedWordUnit[], CompareOptions)

Исходный код:
SpeechRecognitionEngine.cs
Исходный код:
SpeechRecognitionEngine.cs
Исходный код:
SpeechRecognitionEngine.cs

Эмулирует ввод конкретных слов в распознаватель речи, используя текст вместо аудио для синхронного распознавания речи, и указывает способ обработки распознавателем сравнения Юникода между словами и загруженными грамматиками распознавания речи.

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

Параметры

wordUnits
RecognizedWordUnit[]

Массив единиц слов, содержащий входные данные для операции распознавания.

compareOptions
CompareOptions

Поразрядное сочетание значений перечисления, описывающих тип сравнения, который требуется использовать для эмулируемой операции распознавания.

Возвращаемое значение

Результат операции распознавания или null, если операция завершилась с ошибкой или распознаватель не включен.

Исключения

Для распознавателя нет загруженных грамматик распознавания речи.

wordUnits имеет значение null.

wordUnits содержит один или несколько элементов null.

compareOptions содержит флаг IgnoreNonSpace, IgnoreSymbols или StringSort.

Комментарии

Распознаватель речи вызывает SpeechDetectedсобытия , SpeechHypothesized, SpeechRecognitionRejectedи SpeechRecognized так, как если бы операция распознавания не эмулировалась.

Распознаватель использует compareOptions , когда применяет правила грамматики к входной фразе. Распознавели, поставляемые с Vista и Windows 7, игнорируют регистр, OrdinalIgnoreCase если имеется значение или IgnoreCase . Распознаватель всегда игнорирует ширину символов и никогда не игнорирует тип кана. Распознаватель также игнорирует новые строки и дополнительные пробелы и рассматривает знаки препинания как литеральные входные данные. Дополнительные сведения о ширине символов и типе каны см. в перечислении CompareOptions .

См. также раздел

Применяется к

EmulateRecognize(String, CompareOptions)

Исходный код:
SpeechRecognitionEngine.cs
Исходный код:
SpeechRecognitionEngine.cs
Исходный код:
SpeechRecognitionEngine.cs

Эмулирует ввод фразы в распознаватель речи, используя текст вместо аудио для синхронного распознавания речи, и указывает способ обработки распознавателем сравнения Юникода между фразой и загруженными грамматиками распознавания речи.

public:
 System::Speech::Recognition::RecognitionResult ^ EmulateRecognize(System::String ^ inputText, System::Globalization::CompareOptions compareOptions);
public System.Speech.Recognition.RecognitionResult EmulateRecognize (string inputText, System.Globalization.CompareOptions compareOptions);
member this.EmulateRecognize : string * System.Globalization.CompareOptions -> System.Speech.Recognition.RecognitionResult
Public Function EmulateRecognize (inputText As String, compareOptions As CompareOptions) As RecognitionResult

Параметры

inputText
String

Входная фраза для операции распознавания.

compareOptions
CompareOptions

Поразрядное сочетание значений перечисления, описывающих тип сравнения, который требуется использовать для эмулируемой операции распознавания.

Возвращаемое значение

Результат операции распознавания или null, если операция завершилась с ошибкой или распознаватель не включен.

Исключения

Для распознавателя нет загруженных грамматик распознавания речи.

inputText имеет значение null.

inputText является пустой строкой ("").

compareOptions содержит флаг IgnoreNonSpace, IgnoreSymbols или StringSort.

Комментарии

Распознаватель речи вызывает SpeechDetectedсобытия , SpeechHypothesized, SpeechRecognitionRejectedи SpeechRecognized так, как если бы операция распознавания не эмулировалась.

Распознаватель использует compareOptions , когда применяет правила грамматики к входной фразе. Распознавели, поставляемые с Vista и Windows 7, игнорируют регистр, OrdinalIgnoreCase если имеется значение или IgnoreCase . Распознаватель всегда игнорирует ширину символов и никогда не игнорирует тип кана. Распознаватель также игнорирует новые строки и дополнительные пробелы и рассматривает знаки препинания как литеральные входные данные. Дополнительные сведения о ширине символов и типе каны см. в перечислении CompareOptions .

См. также раздел

Применяется к