SpeechRecognitionEngine.EmulateRecognizeAsync 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 asynchronní rozpoznávání řeči.
Přetížení
| Name | Description |
|---|---|
| EmulateRecognizeAsync(String) |
Emuluje vstup fráze do rozpoznávání řeči pomocí textu místo zvuku pro asynchronní rozpoznávání řeči. |
| EmulateRecognizeAsync(RecognizedWordUnit[], CompareOptions) |
Emuluje vstup konkrétních slov do rozpoznávání řeči pomocí pole RecognizedWordUnit objektů místo zvuku pro asynchronní rozpoznávání řeči a určuje, jak rozpoznávací modul zpracovává porovnání znaků Unicode mezi slovy a gramatikou rozpoznávání řeči načtenou. |
| EmulateRecognizeAsync(String, CompareOptions) |
Emuluje vstup fráze do rozpoznávání řeči, používá text místo zvuku pro asynchronní rozpoznávání řeči a určuje, jak rozpoznávací modul zpracovává porovnání unicode mezi frází a načtenými gramatikami rozpoznávání řeči. |
Poznámky
Tyto metody obcházejí systémový zvukový vstup a poskytují text rozpoznávání jako String objekty nebo jako 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 gramatikě a jaká sémantika se vrátí při rozpoznání slova. SetInputToNull Tato metoda slouží k zakázání zvukového vstupu do modulu pro rozpoznávání řeči během emulačních operací.
Rozpoznávání řeči vyvolá SpeechDetected, , SpeechHypothesizedSpeechRecognitionRejecteda SpeechRecognized události, jako by operace rozpoznávání není emulována. Když rozpoznávání dokončí operaci asynchronního rozpoznávání, vyvolá EmulateRecognizeCompleted událost. Rozpoznávání ignoruje nové řádky a nadbytečné prázdné znaky a považuje interpunkci 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 synchronního rozpoznávání použijte metodu EmulateRecognize .
EmulateRecognizeAsync(String)
Emuluje vstup fráze do rozpoznávání řeči pomocí textu místo zvuku pro asynchronní rozpoznávání řeči.
public:
void EmulateRecognizeAsync(System::String ^ inputText);
public void EmulateRecognizeAsync(string inputText);
member this.EmulateRecognizeAsync : string -> unit
Public Sub EmulateRecognizeAsync (inputText As String)
Parametry
- inputText
- String
Vstup pro operaci rozpoznávání.
Výjimky
Rozpoznávání nemá načtené žádné gramatiky rozpoznávání řeči nebo rozpoznávání řeči má operaci asynchronního rozpoznávání, která ještě není dokončená.
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 asynchronní 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.
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;
}
}
}
Poznámky
Rozpoznávání řeči vyvolá SpeechDetected, , SpeechHypothesizedSpeechRecognitionRejecteda SpeechRecognized události, jako by operace rozpoznávání není emulována. Když rozpoznávání dokončí operaci asynchronního rozpoznávání, vyvolá EmulateRecognizeCompleted událost.
Rozpoznávání, které se dodává s Vista a Windows 7 ignorovat velká a znaková šířka při použití gramatických pravidel pro vstupní frázi. Další informace o tomto typu porovnání naleznete v výčtu CompareOptions hodnot OrdinalIgnoreCase a IgnoreWidth. Rozpoznávání také ignorují nové řádky a nadbytečné prázdné znaky a zachází s interpunkcí jako se vstupem literálu.
Tato metoda ukládá do úlohy všechny výjimky bez použití, které může vyvolat synchronní protějšek metody. Pokud je výjimka uložena do vrácené úlohy, tato výjimka bude vyvolána, když je úkol očekáván. Výjimky použití, například ArgumentException, jsou stále vyvolány synchronně. V případě uložených výjimek se podívejte na výjimky vyvolané EmulateRecognize(String).
Viz také
- EmulateRecognize(RecognizedWordUnit[], CompareOptions)
- RecognizeAsync()
- SpeechDetected
- SpeechHypothesized
- SpeechRecognitionRejected
- SpeechRecognized
- EmulateRecognizeCompleted
Platí pro
EmulateRecognizeAsync(RecognizedWordUnit[], CompareOptions)
Emuluje vstup konkrétních slov do rozpoznávání řeči pomocí pole RecognizedWordUnit objektů místo zvuku pro asynchronní rozpoznávání řeči a určuje, jak rozpoznávací modul zpracovává porovnání znaků Unicode mezi slovy a gramatikou rozpoznávání řeči načtenou.
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)
Parametry
- wordUnits
- RecognizedWordUnit[]
Pole jednotek slova, 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 emulovanou operaci rozpoznávání.
Výjimky
Rozpoznávání nemá načtené žádné gramatiky rozpoznávání řeči nebo rozpoznávání řeči má operaci asynchronního rozpoznávání, která ještě není dokončená.
wordUnits je null.
wordUnits obsahuje jeden nebo více null prvků.
compareOptions
IgnoreNonSpaceobsahuje , IgnoreSymbolsnebo StringSort příznak.
Poznámky
Rozpoznávání řeči vyvolá SpeechDetected, , SpeechHypothesizedSpeechRecognitionRejecteda SpeechRecognized události, jako by operace rozpoznávání není emulována. Když rozpoznávání dokončí operaci asynchronního rozpoznávání, vyvolá EmulateRecognizeCompleted událost.
Rozpoznávání používá compareOptions při použití gramatických pravidel pro vstupní frázi. Rozpoznávání, které se dodává se systémem Vista a Windows 7, ignorují případ, pokud OrdinalIgnoreCase je k dispozici nebo IgnoreCase hodnota. Rozpoznávání vždy ignorují šířku znaků a nikdy ignorují typ Kana. Rozpoznávání také ignorují nové řádky a nadbytečné prázdné znaky a zachází s interpunkcí jako se vstupem literálu. Další informace o šířce znaků a typu Kana naleznete v výčtu CompareOptions .
Tato metoda ukládá do úlohy všechny výjimky bez použití, které může vyvolat synchronní protějšek metody. Pokud je výjimka uložena do vrácené úlohy, tato výjimka bude vyvolána, když je úkol očekáván. Výjimky použití, například ArgumentException, jsou stále vyvolány synchronně. V případě uložených výjimek se podívejte na výjimky vyvolané EmulateRecognize(RecognizedWordUnit[], CompareOptions).
Viz také
- EmulateRecognize(RecognizedWordUnit[], CompareOptions)
- RecognizeAsync()
- SpeechDetected
- SpeechHypothesized
- SpeechRecognitionRejected
- SpeechRecognized
- EmulateRecognizeCompleted
Platí pro
EmulateRecognizeAsync(String, CompareOptions)
Emuluje vstup fráze do rozpoznávání řeči, používá text místo zvuku pro asynchronní rozpoznávání řeči a určuje, jak rozpoznávací modul zpracovává porovnání unicode mezi frází a načtenými gramatikami rozpoznávání řeči.
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)
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 emulovanou operaci rozpoznávání.
Výjimky
Rozpoznávání nemá načtené žádné gramatiky rozpoznávání řeči nebo rozpoznávání řeči má operaci asynchronního rozpoznávání, která ještě není dokončená.
inputText je null.
inputText je prázdný řetězec ("").
compareOptions
IgnoreNonSpaceobsahuje , IgnoreSymbolsnebo StringSort příznak.
Poznámky
Rozpoznávání řeči vyvolá SpeechDetected, , SpeechHypothesizedSpeechRecognitionRejecteda SpeechRecognized události, jako by operace rozpoznávání není emulována. Když rozpoznávání dokončí operaci asynchronního rozpoznávání, vyvolá EmulateRecognizeCompleted událost.
Rozpoznávání používá compareOptions při použití gramatických pravidel pro vstupní frázi. Rozpoznávání, které se dodává se systémem Vista a Windows 7, ignorují případ, pokud OrdinalIgnoreCase je k dispozici nebo IgnoreCase hodnota. Rozpoznávání vždy ignorují šířku znaků a nikdy ignorují typ Kana. Rozpoznávání také ignorují nové řádky a nadbytečné prázdné znaky a zachází s interpunkcí jako se vstupem literálu. Další informace o šířce znaků a typu Kana naleznete v výčtu CompareOptions .
Tato metoda ukládá do úlohy všechny výjimky bez použití, které může vyvolat synchronní protějšek metody. Pokud je výjimka uložena do vrácené úlohy, tato výjimka bude vyvolána, když je úkol očekáván. Výjimky použití, například ArgumentException, jsou stále vyvolány synchronně. V případě uložených výjimek se podívejte na výjimky vyvolané EmulateRecognize(String, CompareOptions).
Viz také
- EmulateRecognize(RecognizedWordUnit[], CompareOptions)
- RecognizeAsync()
- SpeechDetected
- SpeechHypothesized
- SpeechRecognitionRejected
- SpeechRecognized
- EmulateRecognizeCompleted