SpeechRecognitionEngine.RecognizeAsyncStop 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.
Stopt asynchrone herkenning nadat de huidige herkenningsbewerking is voltooid.
public:
void RecognizeAsyncStop();
public void RecognizeAsyncStop();
member this.RecognizeAsyncStop : unit -> unit
Public Sub RecognizeAsyncStop ()
Voorbeelden
In het volgende voorbeeld ziet u een deel van een consoletoepassing waarin het gebruik van de RecognizeAsyncStop methode wordt gedemonstreert. In het voorbeeld wordt een grammatica voor spraakherkenning gemaakt en geladen, wordt een continue asynchrone herkenningsbewerking gestart en wordt vervolgens 2 seconden onderbroken voordat de bewerking wordt gestopt. De recognizer ontvangt invoer van het bestand c:\temp\audioinput\sample.wav. Gebeurtenis-handlers zijn opgenomen om de gebeurtenissen te demonstreren die de recognizer genereert tijdens de bewerking.
using System;
using System.Globalization;
using System.Speech.Recognition;
using System.Threading;
namespace AsynchronousRecognition
{
class Program
{
// Indicate whether asynchronous recognition is complete.
static bool completed;
static void Main(string[] args)
{
// Create an in-process speech recognizer.
using (SpeechRecognitionEngine recognizer =
new SpeechRecognitionEngine(new CultureInfo("en-US")))
{
// Create and load a dictation grammar.
Grammar dictation = new DictationGrammar();
dictation.Name = "Dictation Grammar";
recognizer.LoadGrammar(dictation);
// Attach event handlers.
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.RecognizeCompleted +=
new EventHandler<RecognizeCompletedEventArgs>(
RecognizeCompletedHandler);
// Begin asynchronous recognition from pre-recorded input.
recognizer.SetInputToWaveFile(@"c:\temp\audioinput\sample.wav");
completed = false;
Console.WriteLine("Begin continuing asynchronous recognition...");
recognizer.RecognizeAsync(RecognizeMode.Multiple);
// Wait 2 seconds and then stop the recognition operation.
Thread.Sleep(TimeSpan.FromSeconds(2));
recognizer.RecognizeAsyncStop();
// Wait for the operation to complete.
while (!completed)
{
Thread.Sleep(333);
}
Console.WriteLine("Done.");
}
Console.WriteLine();
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
}
// Handle the SpeechDetected event.
static void SpeechDetectedHandler(object sender, SpeechDetectedEventArgs e)
{
Console.WriteLine(" In SpeechDetectedHandler:");
Console.WriteLine(" - AudioPosition = {0}", e.AudioPosition);
}
// Handle the SpeechHypothesized event.
static void SpeechHypothesizedHandler(
object sender, SpeechHypothesizedEventArgs e)
{
Console.WriteLine(" In SpeechHypothesizedHandler:");
string grammarName = "<not available>";
string resultText = "<not available>";
if (e.Result != null)
{
if (e.Result.Grammar != null)
{
grammarName = e.Result.Grammar.Name;
}
resultText = e.Result.Text;
}
Console.WriteLine(" - Grammar Name = {0}; Result Text = {1}",
grammarName, resultText);
}
// Handle the SpeechRecognitionRejected event.
static void SpeechRecognitionRejectedHandler(
object sender, SpeechRecognitionRejectedEventArgs e)
{
Console.WriteLine(" In SpeechRecognitionRejectedHandler:");
string grammarName = "<not available>";
string resultText = "<not available>";
if (e.Result != null)
{
if (e.Result.Grammar != null)
{
grammarName = e.Result.Grammar.Name;
}
resultText = e.Result.Text;
}
Console.WriteLine(" - Grammar Name = {0}; Result Text = {1}",
grammarName, resultText);
}
// Handle the SpeechRecognized event.
static void SpeechRecognizedHandler(
object sender, SpeechRecognizedEventArgs e)
{
Console.WriteLine(" In SpeechRecognizedHandler.");
string grammarName = "<not available>";
string resultText = "<not available>";
if (e.Result != null)
{
if (e.Result.Grammar != null)
{
grammarName = e.Result.Grammar.Name;
}
resultText = e.Result.Text;
}
Console.WriteLine(" - Grammar Name = {0}; Result Text = {1}",
grammarName, resultText);
}
// Handle the RecognizeCompleted event.
static void RecognizeCompletedHandler(
object sender, RecognizeCompletedEventArgs e)
{
Console.WriteLine(" In RecognizeCompletedHandler.");
if (e.Error != null)
{
Console.WriteLine(
" - Error occurred during recognition: {0}", e.Error);
return;
}
if (e.Cancelled)
{
Console.WriteLine(" - asynchronous operation canceled.");
}
if (e.InitialSilenceTimeout || e.BabbleTimeout)
{
Console.WriteLine(
" - BabbleTimeout = {0}; InitialSilenceTimeout = {1}",
e.BabbleTimeout, e.InitialSilenceTimeout);
return;
}
if (e.InputStreamEnded)
{
Console.WriteLine(
" - AudioPosition = {0}; InputStreamEnded = {1}",
e.AudioPosition, e.InputStreamEnded);
}
if (e.Result != null)
{
Console.WriteLine(
" - Grammar = {0}; Text = {1}; Confidence = {2}",
e.Result.Grammar.Name, e.Result.Text, e.Result.Confidence);
}
else
{
Console.WriteLine(" - No result.");
}
completed = true;
}
}
}
Opmerkingen
Met deze methode wordt asynchrone herkenning voltooid zonder invoer af te kapen. Als de huidige asynchrone herkenningsbewerking invoer ontvangt, blijft de recognizer invoer accepteren totdat de huidige herkenningsbewerking is voltooid. De recognizer genereert de RecognizeCompleted of EmulateRecognizeCompleted gebeurtenis wanneer een asynchrone bewerking wordt gestopt en de eigenschap van de RecognizeCompletedEventArgs bewerking wordt ingesteld Cancelled op true. Met deze methode worden asynchrone bewerkingen gestopt die door de RecognizeAsync en EmulateRecognizeAsync methoden zijn geïnitieerd.
Als u asynchrone herkenning onmiddellijk wilt annuleren met alleen de bestaande invoer, gebruikt u de RecognizeAsyncCancel methode.