SpeechRecognitionEngine.RecognizeCompleted Evento
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Acionado quando o SpeechRecognitionEngine finaliza uma operação assíncrona de reconhecimento.
public:
event EventHandler<System::Speech::Recognition::RecognizeCompletedEventArgs ^> ^ RecognizeCompleted;
public event EventHandler<System.Speech.Recognition.RecognizeCompletedEventArgs> RecognizeCompleted;
member this.RecognizeCompleted : EventHandler<System.Speech.Recognition.RecognizeCompletedEventArgs>
Public Custom Event RecognizeCompleted As EventHandler(Of RecognizeCompletedEventArgs)
Public Event RecognizeCompleted As EventHandler(Of RecognizeCompletedEventArgs)
Tipo de evento
Exemplos
O exemplo a seguir reconhece frases como "Exibir a lista de artistas na categoria jazz" ou "Exibir álbuns gospel". O exemplo usa um manipulador para o RecognizeCompleted evento para exibir informações sobre os resultados do reconhecimento no console.
using System;
using System.Speech.Recognition;
namespace SampleRecognition
{
class Program
{
static void Main(string[] args)
// Initialize an in-process speech recognition engine.
{
using (SpeechRecognitionEngine recognizer =
new SpeechRecognitionEngine())
{
// Create lists of alternative choices.
Choices listTypes = new Choices(new string[] { "albums", "artists" });
Choices genres = new Choices(new string[] {
"blues", "classical", "gospel", "jazz", "rock" });
// Create a GrammarBuilder object and assemble the grammar components.
GrammarBuilder mediaMenu = new GrammarBuilder("Display");
mediaMenu.Append("the list of", 0, 1);
mediaMenu.Append(listTypes);
mediaMenu.Append("in the", 0, 1);
mediaMenu.Append(genres);
mediaMenu.Append("category.", 0, 1);
// Build a Grammar object from the GrammarBuilder.
Grammar mediaMenuGrammar = new Grammar(mediaMenu);
mediaMenuGrammar.Name = "Media Chooser";
// Attach event handlers.
recognizer.RecognizeCompleted +=
new EventHandler<RecognizeCompletedEventArgs>(recognizer_RecognizeCompleted);
recognizer.LoadGrammarCompleted +=
new EventHandler<LoadGrammarCompletedEventArgs>(recognizer_LoadGrammarCompleted);
// Load the grammar object to the recognizer.
recognizer.LoadGrammarAsync(mediaMenuGrammar);
// Set the input to the recognizer.
recognizer.SetInputToDefaultAudioDevice();
// Start asynchronous, continuous recognition.
recognizer.RecognizeAsync();
// Keep the console window open.
Console.ReadLine();
}
}
// Handle the RecognizeCompleted event.
static void recognizer_RecognizeCompleted(object sender, RecognizeCompletedEventArgs e)
{
if (e.Error != null)
{
Console.WriteLine(
"RecognizeCompleted, error occurred during recognition: {0}", e.Error);
return;
}
if (e.InitialSilenceTimeout || e.BabbleTimeout)
{
Console.WriteLine(
"RecognizeCompleted: BabbleTimeout({0}), InitialSilenceTimeout({1}).",
e.BabbleTimeout, e.InitialSilenceTimeout);
return;
}
if (e.InputStreamEnded)
{
Console.WriteLine(
"RecognizeCompleted: AudioPosition({0}), InputStreamEnded({1}).",
e.AudioPosition, e.InputStreamEnded);
}
if (e.Result != null)
{
Console.WriteLine("RecognizeCompleted:");
Console.WriteLine(" Grammar: " + e.Result.Grammar.Name);
Console.WriteLine(" Recognized text: " + e.Result.Text);
Console.WriteLine(" Confidence score: " + e.Result.Confidence);
Console.WriteLine(" Audio position: " + e.AudioPosition);
}
else
{
Console.WriteLine("RecognizeCompleted: No result.");
}
Console.WriteLine();
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
}
// Handle the LoadGrammarCompleted event.
static void recognizer_LoadGrammarCompleted(object sender, LoadGrammarCompletedEventArgs e)
{
Console.WriteLine("Grammar loaded: " + e.Grammar.Name);
}
}
}
Comentários
O SpeechRecognitionEngine método do RecognizeAsync objeto inicia uma operação de reconhecimento assíncrono. Quando o reconhecedor finaliza a operação assíncrona, ele gera esse evento.
Usando o manipulador para o RecognizeCompleted evento, você pode acessar o RecognitionResultRecognizeCompletedEventArgs no objeto . Se o reconhecimento não tiver sido bem-sucedido, RecognitionResult será null
. Para determinar se um tempo limite ou uma interrupção na entrada de áudio causou falha no reconhecimento, você pode acessar as propriedades de InitialSilenceTimeout, BabbleTimeoutou InputStreamEnded.
Consulte a RecognizeCompletedEventArgs classe para obter mais informações.
Para obter detalhes sobre os melhores candidatos de reconhecimento rejeitados, anexe um manipulador para o SpeechRecognitionRejected evento.
Ao criar um RecognizeCompleted delegado, você identifica o método que manipulará o evento. Para associar o evento ao manipulador de eventos, adicione uma instância do delegado ao evento. O manipulador de eventos é chamado sempre que o evento ocorre, a menos que você remova o representante. Para obter mais informações sobre delegados do manipulador de eventos, consulte Eventos e Delegados.