SpeechRecognitionEngine.EmulateRecognizeAsync Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Emulatie van invoer voor de spraakherkenning, waarbij tekst wordt gebruikt in plaats van audio voor asynchrone spraakherkenning.
Overloads
| Name | Description |
|---|---|
| EmulateRecognizeAsync(String) |
Emulatie van invoer van een woordgroep aan de spraakherkenning, waarbij tekst wordt gebruikt in plaats van audio voor asynchrone spraakherkenning. |
| EmulateRecognizeAsync(RecognizedWordUnit[], CompareOptions) |
Emulatie van invoer van specifieke woorden voor de spraakherkenning, met behulp van een matrix van RecognizedWordUnit objecten in plaats van audio voor asynchrone spraakherkenning en geeft aan hoe de recognizer Unicode-vergelijking verwerkt tussen de woorden en de geladen grammatica voor spraakherkenning. |
| EmulateRecognizeAsync(String, CompareOptions) |
Emulatie van invoer van een woordgroep aan de spraakherkenning, waarbij tekst wordt gebruikt in plaats van audio voor asynchrone spraakherkenning en wordt aangegeven hoe de recognizer Unicode-vergelijking tussen de woordgroep en de geladen grammatica voor spraakherkenning verwerkt. |
Opmerkingen
Deze methoden slaan de audio-invoer van het systeem over en bieden tekst aan de recognizer als String objecten of als een matrix van RecognizedWordUnit objecten. Dit kan handig zijn bij het testen of opsporen van fouten in een toepassing of grammatica. U kunt emulatie bijvoorbeeld gebruiken om te bepalen of een woord in een grammatica staat en welke semantiek wordt geretourneerd wanneer het woord wordt herkend. Gebruik de SetInputToNull methode om audio-invoer uit te schakelen naar de spraakherkenningsengine tijdens emulatiebewerkingen.
De spraakherkenning verhoogt de SpeechDetected, SpeechHypothesizeden SpeechRecognitionRejectedSpeechRecognized gebeurtenissen alsof de herkenningsbewerking niet wordt geëmuleerd. Wanneer de recognizer de asynchrone herkenningsbewerking voltooit, wordt de EmulateRecognizeCompleted gebeurtenis gegenereerd. De recognizer negeert nieuwe regels en extra witruimte en behandelt interpunctie als letterlijke invoer.
Note
Het RecognitionResult object dat is gegenereerd door de spraakherkenning als reactie op geëmuleerde invoer, heeft een waarde voor null de Audio eigenschap.
Gebruik de EmulateRecognize methode om synchrone herkenning te emuleren.
EmulateRecognizeAsync(String)
Emulatie van invoer van een woordgroep aan de spraakherkenning, waarbij tekst wordt gebruikt in plaats van audio voor asynchrone spraakherkenning.
public:
void EmulateRecognizeAsync(System::String ^ inputText);
public void EmulateRecognizeAsync(string inputText);
member this.EmulateRecognizeAsync : string -> unit
Public Sub EmulateRecognizeAsync (inputText As String)
Parameters
- inputText
- String
De invoer voor de herkenningsbewerking.
Uitzonderingen
De recognizer heeft geen grammatica's voor spraakherkenning geladen of de recognizer heeft een asynchrone herkenningsbewerking die nog niet is voltooid.
inputText is null.
inputText is de lege tekenreeks ("").
Voorbeelden
Het onderstaande codevoorbeeld maakt deel uit van een consoletoepassing die asynchrone geëmuleerde invoer demonstreert, de bijbehorende herkenningsresultaten en de bijbehorende gebeurtenissen die door de spraakherkenning worden gegenereerd. In het voorbeeld wordt de volgende uitvoer gegenereerd.
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;
}
}
}
Opmerkingen
De spraakherkenning verhoogt de SpeechDetected, SpeechHypothesizeden SpeechRecognitionRejectedSpeechRecognized gebeurtenissen alsof de herkenningsbewerking niet wordt geëmuleerd. Wanneer de recognizer de asynchrone herkenningsbewerking voltooit, wordt de EmulateRecognizeCompleted gebeurtenis gegenereerd.
De recognizers die worden verzonden met Vista en Windows 7 de breedte van hoofdletters en tekens negeren bij het toepassen van grammaticaregels op de invoerzin. Zie de CompareOptions opsommingswaarden OrdinalIgnoreCase en IgnoreWidthvoor meer informatie over dit type vergelijking. De recognizers negeren ook nieuwe regels en extra witruimte en behandelen interpunctie als letterlijke invoer.
Deze methode slaat op in de taak die alle uitzonderingen voor niet-gebruik retourneert die de synchrone tegenhanger van de methode kan genereren. Als er een uitzondering wordt opgeslagen in de geretourneerde taak, wordt deze uitzondering gegenereerd wanneer de taak wordt gewacht. Gebruiksonderzondering, zoals ArgumentException, worden nog steeds synchroon gegenereerd. Zie de uitzonderingen die zijn gegenereerd door EmulateRecognize(String)de opgeslagen uitzonderingen voor de opgeslagen uitzonderingen.
Zie ook
- EmulateRecognize(RecognizedWordUnit[], CompareOptions)
- RecognizeAsync()
- SpeechDetected
- SpeechHypothesized
- SpeechRecognitionRejected
- SpeechRecognized
- EmulateRecognizeCompleted
Van toepassing op
EmulateRecognizeAsync(RecognizedWordUnit[], CompareOptions)
Emulatie van invoer van specifieke woorden voor de spraakherkenning, met behulp van een matrix van RecognizedWordUnit objecten in plaats van audio voor asynchrone spraakherkenning en geeft aan hoe de recognizer Unicode-vergelijking verwerkt tussen de woorden en de geladen grammatica voor spraakherkenning.
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)
Parameters
- wordUnits
- RecognizedWordUnit[]
Een matrix van woordeenheden die de invoer voor de herkenningsbewerking bevat.
- compareOptions
- CompareOptions
Een bitsgewijze combinatie van de opsommingswaarden die het type vergelijking beschrijven dat moet worden gebruikt voor de geëmuleerde herkenningsbewerking.
Uitzonderingen
De recognizer heeft geen grammatica's voor spraakherkenning geladen of de recognizer heeft een asynchrone herkenningsbewerking die nog niet is voltooid.
wordUnits is null.
wordUnits bevat een of meer null elementen.
compareOptions bevat de IgnoreNonSpace, IgnoreSymbolsof StringSort vlag.
Opmerkingen
De spraakherkenning verhoogt de SpeechDetected, SpeechHypothesizeden SpeechRecognitionRejectedSpeechRecognized gebeurtenissen alsof de herkenningsbewerking niet wordt geëmuleerd. Wanneer de recognizer de asynchrone herkenningsbewerking voltooit, wordt de EmulateRecognizeCompleted gebeurtenis gegenereerd.
De recognizer gebruikt compareOptions wanneer grammaticaregels worden toegepast op de invoerzin. De recognizers die worden verzonden met Vista en Windows 7 negeren hoofdletters als de waarde OrdinalIgnoreCase of IgnoreCase aanwezig is. De recognizers negeren altijd de tekenbreedte en negeren nooit het Kana-type. De recognizers negeren ook nieuwe regels en extra witruimte en behandelen interpunctie als letterlijke invoer. Zie de opsomming voor meer informatie over de tekenbreedte en het CompareOptions Kana-type.
Deze methode slaat op in de taak die alle uitzonderingen voor niet-gebruik retourneert die de synchrone tegenhanger van de methode kan genereren. Als er een uitzondering wordt opgeslagen in de geretourneerde taak, wordt deze uitzondering gegenereerd wanneer de taak wordt gewacht. Gebruiksonderzondering, zoals ArgumentException, worden nog steeds synchroon gegenereerd. Zie de uitzonderingen die zijn gegenereerd door EmulateRecognize(RecognizedWordUnit[], CompareOptions)de opgeslagen uitzonderingen voor de opgeslagen uitzonderingen.
Zie ook
- EmulateRecognize(RecognizedWordUnit[], CompareOptions)
- RecognizeAsync()
- SpeechDetected
- SpeechHypothesized
- SpeechRecognitionRejected
- SpeechRecognized
- EmulateRecognizeCompleted
Van toepassing op
EmulateRecognizeAsync(String, CompareOptions)
Emulatie van invoer van een woordgroep aan de spraakherkenning, waarbij tekst wordt gebruikt in plaats van audio voor asynchrone spraakherkenning en wordt aangegeven hoe de recognizer Unicode-vergelijking tussen de woordgroep en de geladen grammatica voor spraakherkenning verwerkt.
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)
Parameters
- inputText
- String
De invoerterm voor de herkenningsbewerking.
- compareOptions
- CompareOptions
Een bitsgewijze combinatie van de opsommingswaarden die het type vergelijking beschrijven dat moet worden gebruikt voor de geëmuleerde herkenningsbewerking.
Uitzonderingen
De recognizer heeft geen grammatica's voor spraakherkenning geladen of de recognizer heeft een asynchrone herkenningsbewerking die nog niet is voltooid.
inputText is null.
inputText is de lege tekenreeks ("").
compareOptions bevat de IgnoreNonSpace, IgnoreSymbolsof StringSort vlag.
Opmerkingen
De spraakherkenning verhoogt de SpeechDetected, SpeechHypothesizeden SpeechRecognitionRejectedSpeechRecognized gebeurtenissen alsof de herkenningsbewerking niet wordt geëmuleerd. Wanneer de recognizer de asynchrone herkenningsbewerking voltooit, wordt de EmulateRecognizeCompleted gebeurtenis gegenereerd.
De recognizer gebruikt compareOptions wanneer grammaticaregels worden toegepast op de invoerzin. De recognizers die worden verzonden met Vista en Windows 7 negeren hoofdletters als de waarde OrdinalIgnoreCase of IgnoreCase aanwezig is. De recognizers negeren altijd de tekenbreedte en negeren nooit het Kana-type. De recognizers negeren ook nieuwe regels en extra witruimte en behandelen interpunctie als letterlijke invoer. Zie de opsomming voor meer informatie over de tekenbreedte en het CompareOptions Kana-type.
Deze methode slaat op in de taak die alle uitzonderingen voor niet-gebruik retourneert die de synchrone tegenhanger van de methode kan genereren. Als er een uitzondering wordt opgeslagen in de geretourneerde taak, wordt deze uitzondering gegenereerd wanneer de taak wordt gewacht. Gebruiksonderzondering, zoals ArgumentException, worden nog steeds synchroon gegenereerd. Zie de uitzonderingen die zijn gegenereerd door EmulateRecognize(String, CompareOptions)de opgeslagen uitzonderingen voor de opgeslagen uitzonderingen.
Zie ook
- EmulateRecognize(RecognizedWordUnit[], CompareOptions)
- RecognizeAsync()
- SpeechDetected
- SpeechHypothesized
- SpeechRecognitionRejected
- SpeechRecognized
- EmulateRecognizeCompleted