Поделиться через


SpeechRecognizer.EmulateRecognizeAsync Метод

Определение

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

Перегрузки

EmulateRecognizeAsync(String)

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

EmulateRecognizeAsync(RecognizedWordUnit[], CompareOptions)

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

EmulateRecognizeAsync(String, CompareOptions)

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

Комментарии

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

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

Примечание

Если распознавание речи Windows находится в спящем состоянии, общий распознаватель не обрабатывает входные данные и не вызывает SpeechDetected связанные события и , но по-прежнему EmulateRecognizeCompleted вызывает событие .

Примечание

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

Для эмуляции синхронного распознавания используйте 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 значения OrdinalIgnoreCase перечисления и IgnoreWidth. Распознаватели также игнорируют новые строки и дополнительные пробелы и обрабатывают знаки препинания как литеральные входные данные.

Этот метод сохраняет в задаче все исключения, не относящиеся к использованию, которые может создавать синхронный аналог метода. Если исключение сохраняется в возвращаемой задаче, это исключение будет создано при ожидании задачи. Исключения использования, такие как ArgumentException, по-прежнему создаются синхронно. Хранимые исключения см. в разделе исключения, создаваемые EmulateRecognize(String).

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

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

EmulateRecognizeAsync(RecognizedWordUnit[], CompareOptions)

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

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

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

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

Комментарии

Этот метод создает объект с RecognitionResult использованием сведений, указанных в параметре wordUnits .

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

Этот метод сохраняет в задаче все исключения, не относящиеся к использованию, которые может создавать синхронный аналог метода. Если исключение сохраняется в возвращаемой задаче, это исключение будет создано при ожидании задачи. Исключения использования, такие как ArgumentException, по-прежнему создаются синхронно. Хранимые исключения см. в разделе исключения, создаваемые EmulateRecognize(RecognizedWordUnit[], CompareOptions).

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

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

EmulateRecognizeAsync(String, CompareOptions)

Исходный код:
SpeechRecognizer.cs
Исходный код:
SpeechRecognizer.cs
Исходный код:
SpeechRecognizer.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

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

Комментарии

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

Этот метод сохраняет в задаче все исключения, не относящиеся к использованию, которые может создавать синхронный аналог метода. Если исключение сохраняется в возвращаемой задаче, это исключение будет создано при ожидании задачи. Исключения использования, такие как ArgumentException, по-прежнему создаются синхронно. Хранимые исключения см. в разделе исключения, создаваемые EmulateRecognize(String, CompareOptions).

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

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