SpeechRecognitionEngine.LoadGrammarCompleted Zdarzenie
Definicja
Ważny
Niektóre informacje dotyczą produktów przedpremierowych, które mogą zostać znacznie zmodyfikowane przed premierą. Microsoft nie udziela żadnych gwarancji, ani wyraźnych, ani domniemanych, dotyczących informacji podanych tutaj.
Podniesione po zakończeniu SpeechRecognitionEngine asynchronicznego ładowania Grammar obiektu.
public:
event EventHandler<System::Speech::Recognition::LoadGrammarCompletedEventArgs ^> ^ LoadGrammarCompleted;
public event EventHandler<System.Speech.Recognition.LoadGrammarCompletedEventArgs> LoadGrammarCompleted;
member this.LoadGrammarCompleted : EventHandler<System.Speech.Recognition.LoadGrammarCompletedEventArgs>
Public Custom Event LoadGrammarCompleted As EventHandler(Of LoadGrammarCompletedEventArgs)
Public Event LoadGrammarCompleted As EventHandler(Of LoadGrammarCompletedEventArgs)
Typ wydarzenia
Przykłady
Poniższy przykład tworzy aparat rozpoznawania mowy w procesie, a następnie tworzy dwa typy gramatyki do rozpoznawania określonych słów i akceptowania swobodnego dyktowania. W przykładzie skonstruuje Grammar obiekt z każdej z ukończonych gramatyk rozpoznawania mowy, a następnie asynchronicznie ładuje Grammar obiekty do SpeechRecognitionEngine wystąpienia. Programy obsługi dla zdarzeń i SpeechRecognized rozpoznawania LoadGrammarCompleted zapisują w konsoli nazwę Grammar obiektu, który został użyty do rozpoznawania i tekstu wyniku rozpoznawania, odpowiednio.
using System;
using System.Speech.Recognition;
namespace SampleRecognition
{
class Program
{
private static SpeechRecognitionEngine recognizer;
public static void Main(string[] args)
{
// Initialize an in-process speech recognition engine and set its input.
recognizer = new SpeechRecognitionEngine();
recognizer.SetInputToDefaultAudioDevice();
// Add a handler for the LoadGrammarCompleted event.
recognizer.LoadGrammarCompleted +=
new EventHandler<LoadGrammarCompletedEventArgs>(recognizer_LoadGrammarCompleted);
// Add a handler for the SpeechRecognized event.
recognizer.SpeechRecognized +=
new EventHandler<SpeechRecognizedEventArgs>(recognizer_SpeechRecognized);
// Create the "yesno" grammar.
Choices yesChoices = new Choices(new string[] { "yes", "yup", "yeah" });
SemanticResultValue yesValue =
new SemanticResultValue(yesChoices, (bool)true);
Choices noChoices = new Choices(new string[] { "no", "nope", "neah" });
SemanticResultValue noValue =
new SemanticResultValue(noChoices, (bool)false);
SemanticResultKey yesNoKey =
new SemanticResultKey("yesno", new Choices(new GrammarBuilder[] { yesValue, noValue }));
Grammar yesnoGrammar = new Grammar(yesNoKey);
yesnoGrammar.Name = "yesNo";
// Create the "done" grammar.
Grammar doneGrammar =
new Grammar(new Choices(new string[] { "done", "exit", "quit", "stop" }));
doneGrammar.Name = "Done";
// Create a dictation grammar.
Grammar dictation = new DictationGrammar();
dictation.Name = "Dictation";
// Load grammars to the recognizer.
recognizer.LoadGrammarAsync(yesnoGrammar);
recognizer.LoadGrammarAsync(doneGrammar);
recognizer.LoadGrammarAsync(dictation);
// Start asynchronous, continuous recognition.
recognizer.RecognizeAsync(RecognizeMode.Multiple);
// Keep the console window open.
Console.ReadLine();
}
// Handle the LoadGrammarCompleted event.
static void recognizer_LoadGrammarCompleted(object sender, LoadGrammarCompletedEventArgs e)
{
string grammarName = e.Grammar.Name;
bool grammarLoaded = e.Grammar.Loaded;
if (e.Error != null)
{
Console.WriteLine("LoadGrammar for {0} failed with a {1}.",
grammarName, e.Error.GetType().Name);
// Add exception handling code here.
}
Console.WriteLine("Grammar {0} {1} loaded.",
grammarName, (grammarLoaded) ? "is" : "is not");
}
// Handle the SpeechRecognized event.
static void recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
Console.WriteLine("Grammar({0}): {1}", e.Result.Grammar.Name, e.Result.Text);
// Add event handler code here.
}
}
}
Uwagi
Metoda rozpoznawania LoadGrammarAsync inicjuje operację asynchroniczną. To SpeechRecognitionEngine zdarzenie jest wywoływane po zakończeniu operacji. Aby uzyskać Grammar obiekt załadowany przez aparat rozpoznawania, użyj Grammar właściwości skojarzonego LoadGrammarCompletedEventArgsobiektu . Aby pobrać bieżące Grammar obiekty załadowane przez aparat rozpoznawania, użyj właściwości rozpoznawania Grammars .
Jeśli aparat rozpoznawania jest uruchomiony, aplikacje muszą użyć RequestRecognizerUpdate polecenia w celu wstrzymania aparatu rozpoznawania mowy przed załadowaniem, zwolnieniem, włączeniem lub wyłączeniem gramatyki.
Podczas tworzenia delegata LoadGrammarCompleted należy zidentyfikować metodę, która będzie obsługiwać zdarzenie. Aby skojarzyć zdarzenie z programem obsługi zdarzeń, dodaj wystąpienie delegata do zdarzenia. Program obsługi zdarzeń jest wywoływany przy każdym wystąpieniu zdarzenia, o ile nie usunięto delegata. Aby uzyskać więcej informacji na temat delegatów programu obsługi zdarzeń, zobacz Zdarzenia i delegaty.