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. Распознавители также игнорируют новые строки и дополнительные пробелы и обрабатывают знаки препинания как литеральные входные данные.
См. также раздел
- EmulateRecognizeAsync(String)
- Recognize()
- SpeechDetected
- SpeechHypothesized
- SpeechRecognitionRejected
- SpeechRecognized
Применяется к
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 .
См. также раздел
- EmulateRecognizeAsync(String)
- Recognize()
- SpeechDetected
- SpeechHypothesized
- SpeechRecognitionRejected
- SpeechRecognized
Применяется к
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 .
См. также раздел
- EmulateRecognizeAsync(String)
- Recognize()
- SpeechDetected
- SpeechHypothesized
- SpeechRecognitionRejected
- SpeechRecognized