SpeechRecognitionEngine.EmulateRecognize Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Emuluje vstup do rozpoznávání řeči pomocí textu místo zvuku pro synchronní rozpoznávání řeči.
Přetížení
EmulateRecognize(String) |
Emuluje vstup fráze do rozpoznávání řeči pomocí textu namísto zvuku pro synchronní rozpoznávání řeči. |
EmulateRecognize(RecognizedWordUnit[], CompareOptions) |
Emuluje vstup určitých slov do rozpoznávání řeči, používá místo zvuku text pro synchronní rozpoznávání řeči a určuje, jak rozpoznávací nástroj zpracovává porovnání slov v kódování Unicode a načtených gramatik rozpoznávání řeči. |
EmulateRecognize(String, CompareOptions) |
Emuluje vstup frázi do rozpoznávání řeči, používá místo zvuku text pro synchronní rozpoznávání řeči a určuje, jak rozpoznávací nástroj zpracovává porovnání frází a načtených gramatik rozpoznávání řeči v kódování Unicode. |
Poznámky
Tyto metody obcházejí systémový zvukový vstup a poskytují text rozpoznávání jako String objekty nebo pole RecognizedWordUnit objektů. To může být užitečné při testování nebo ladění aplikace nebo gramatiky. Pomocí emulace můžete například určit, jestli je slovo v gramatice a jaká sémantika se vrátí, když je slovo rozpoznáno. SetInputToNull Pomocí metody můžete zakázat zvukový vstup do modulu rozpoznávání řeči během operací emulace.
Rozpoznávání řeči vyvolá SpeechDetectedudálosti , SpeechHypothesized, SpeechRecognitionRejecteda SpeechRecognized , jako by operace rozpoznávání nebyla emulována. Rozpoznávání ignoruje nové řádky a nadbytečné prázdné znaky a interpunkci považuje za vstup literálu.
Poznámka
Objekt RecognitionResult vygenerovaný rozpoznáváním řeči v reakci na emulovaný vstup má hodnotu null
pro jeho Audio vlastnost.
K emulaci asynchronního rozpoznávání použijte metodu EmulateRecognizeAsync .
EmulateRecognize(String)
Emuluje vstup fráze do rozpoznávání řeči pomocí textu namísto zvuku pro synchronní rozpoznávání řeči.
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
Parametry
- inputText
- String
Vstup pro operaci rozpoznávání.
Návraty
Výsledek pro operaci rozpoznávání nebo null
pokud operace není úspěšná nebo není povolený rozpoznávání.
Výjimky
Rozpoznávání nemá načtené žádné gramatiky rozpoznávání řeči.
inputText
je null
.
inputText
je prázdný řetězec ("").
Příklady
Následující příklad kódu je součástí konzolové aplikace, která demonstruje emulovaný vstup, přidružené výsledky rozpoznávání a přidružené události vyvolané rozpoznáváním řeči. Příklad vygeneruje následující výstup.
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.");
}
}
}
}
Poznámky
Rozpoznávání řeči vyvolá SpeechDetectedudálosti , SpeechHypothesized, SpeechRecognitionRejecteda SpeechRecognized , jako by operace rozpoznávání nebyla emulována.
Rozpoznávatelé, které se dodávají s Vista a Windows 7, při použití gramatických pravidel na vstupní frázi ignorují šířku písmen a znaků. Další informace o tomto typu porovnání najdete ve výčtu CompareOptions hodnot OrdinalIgnoreCase a IgnoreWidth. Rozpoznávatelé také ignorují nové řádky a nadbytečné prázdné znaky a zacházejí s interpunkcí jako s literálovým vstupem.
Viz také
- EmulateRecognizeAsync(String)
- Recognize()
- SpeechDetected
- SpeechHypothesized
- SpeechRecognitionRejected
- SpeechRecognized
Platí pro
EmulateRecognize(RecognizedWordUnit[], CompareOptions)
Emuluje vstup určitých slov do rozpoznávání řeči, používá místo zvuku text pro synchronní rozpoznávání řeči a určuje, jak rozpoznávací nástroj zpracovává porovnání slov v kódování Unicode a načtených gramatik rozpoznávání řeči.
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
Parametry
- wordUnits
- RecognizedWordUnit[]
Pole slov jednotek, které obsahuje vstup pro operaci rozpoznávání.
- compareOptions
- CompareOptions
Bitové kombinace hodnot výčtu, které popisují typ porovnání, který se má použít pro operaci emulovaného rozpoznávání.
Návraty
Výsledek pro operaci rozpoznávání nebo null
pokud operace není úspěšná nebo není povolený rozpoznávání.
Výjimky
Rozpoznávání nemá načtené žádné gramatiky rozpoznávání řeči.
wordUnits
je null
.
wordUnits
obsahuje jeden nebo více null
prvků.
compareOptions
IgnoreNonSpaceobsahuje příznak , IgnoreSymbolsnebo StringSort .
Poznámky
Rozpoznávání řeči vyvolá SpeechDetectedudálosti , SpeechHypothesized, SpeechRecognitionRejecteda SpeechRecognized , jako by operace rozpoznávání nebyla emulována.
Rozpoznávání používá compareOptions
, když na vstupní frázi aplikuje gramatická pravidla. Rozpoznávatelé, které se dodávají s Vista a Windows 7, ignorují případ, pokud OrdinalIgnoreCase je hodnota nebo IgnoreCase . Rozpoznávání vždy ignoruje šířku znaku a nikdy ignoruje typ Kana. Rozpoznávání také ignoruje nové řádky a nadbytečné prázdné znaky a zachází s interpunkcí jako s literálovým vstupem. Další informace o šířce znaku a typu Kana najdete ve výčtu CompareOptions .
Viz také
- EmulateRecognizeAsync(String)
- Recognize()
- SpeechDetected
- SpeechHypothesized
- SpeechRecognitionRejected
- SpeechRecognized
Platí pro
EmulateRecognize(String, CompareOptions)
Emuluje vstup frázi do rozpoznávání řeči, používá místo zvuku text pro synchronní rozpoznávání řeči a určuje, jak rozpoznávací nástroj zpracovává porovnání frází a načtených gramatik rozpoznávání řeči v kódování Unicode.
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
Parametry
- inputText
- String
Vstupní fráze pro operaci rozpoznávání.
- compareOptions
- CompareOptions
Bitové kombinace hodnot výčtu, které popisují typ porovnání, který se má použít pro operaci emulovaného rozpoznávání.
Návraty
Výsledek pro operaci rozpoznávání nebo null
pokud operace není úspěšná nebo není povolený rozpoznávání.
Výjimky
Rozpoznávání nemá načtené žádné gramatiky rozpoznávání řeči.
inputText
je null
.
inputText
je prázdný řetězec ("").
compareOptions
IgnoreNonSpaceobsahuje příznak , IgnoreSymbolsnebo StringSort .
Poznámky
Rozpoznávání řeči vyvolá SpeechDetectedudálosti , SpeechHypothesized, SpeechRecognitionRejecteda SpeechRecognized , jako by operace rozpoznávání nebyla emulována.
Rozpoznávání používá compareOptions
, když na vstupní frázi aplikuje gramatická pravidla. Rozpoznávatelé, které se dodávají s Vista a Windows 7, ignorují případ, pokud OrdinalIgnoreCase je hodnota nebo IgnoreCase . Rozpoznávání vždy ignoruje šířku znaku a nikdy ignoruje typ Kana. Rozpoznávání také ignoruje nové řádky a nadbytečné prázdné znaky a zachází s interpunkcí jako s literálovým vstupem. Další informace o šířce znaku a typu Kana najdete ve výčtu CompareOptions .
Viz také
- EmulateRecognizeAsync(String)
- Recognize()
- SpeechDetected
- SpeechHypothesized
- SpeechRecognitionRejected
- SpeechRecognized