SpeechRecognitionEngine.LoadGrammarCompleted イベント

定義

SpeechRecognitionEngineGrammar オブジェクトの非同期読み込みを終了するときに発生します。Raised when the SpeechRecognitionEngine finishes the asynchronous loading of a Grammar object.

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) 

イベントの種類

EventHandler<LoadGrammarCompletedEventArgs>

次の例では、インプロセス音声認識エンジンを作成し、特定の単語を認識し、無料のディクテーションを受け入れるために2種類の文法を作成します。The following example creates an in-process speech recognizer, and then creates two types of grammars for recognizing specific words and for accepting free dictation. この例では、完成した Grammar 音声認識文法のそれぞれからオブジェクトを作成し、そのオブジェクトを非同期的 Grammar にインスタンスに読み込み SpeechRecognitionEngine ます。The example constructs a Grammar object from each of the completed speech recognition grammars, then asynchronously loads the Grammar objects to the SpeechRecognitionEngine instance. 認識エンジンのおよびイベントのハンドラーは、認識 LoadGrammarCompleted SpeechRecognized Grammar と認識結果のテキストの実行に使用されたオブジェクトの名前をそれぞれコンソールに書き込みます。Handlers for the recognizer's LoadGrammarCompleted and SpeechRecognized events write to the console the name of the Grammar object that was used to perform the recognition and the text of the recognition result, respectively.

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.  
    }  
  }  
}  

注釈

レコグナイザーのメソッドは、 LoadGrammarAsync 非同期操作を開始します。The recognizer's LoadGrammarAsync method initiates an asynchronous operation. は、 SpeechRecognitionEngine 操作の完了時にこのイベントを発生させます。The SpeechRecognitionEngine raises this event when it completes the operation. 認識エンジンによって読み込まれたオブジェクトを取得するには、 Grammar 関連付けられているのプロパティを使用し Grammar LoadGrammarCompletedEventArgs ます。To get the Grammar object that the recognizer loaded, use the Grammar property of the associated LoadGrammarCompletedEventArgs. レコグナイザーが読み込んだ現在のオブジェクトを取得するには Grammar 、レコグナイザーのプロパティを使用し Grammars ます。To get the current Grammar objects the recognizer has loaded, use the recognizer's Grammars property.

レコグナイザーが実行されている場合、アプリケーションは、を使用して、 RequestRecognizerUpdate 文法の読み込み、アンロード、有効化、または無効化の前に音声認識エンジンを一時停止する必要があります。If the recognizer is running, applications must use RequestRecognizerUpdate to pause the speech recognition engine before loading, unloading, enabling, or disabling a grammar.

LoadGrammarCompleted デリゲートを作成する場合は、イベントを処理するメソッドを指定します。When you create a LoadGrammarCompleted delegate, you identify the method that will handle the event. イベント ハンドラーにイベントを関連付けるには、イベントにデリゲートのインスタンスを追加します。To associate the event with your event handler, add an instance of the delegate to the event. イベント ハンドラーは、デリゲートを削除しない限り、イベントが発生するたびに呼び出されます。The event handler is called whenever the event occurs, unless you remove the delegate. イベントハンドラーデリゲートの詳細については、「 イベントとデリゲート」を参照してください。For more information about event-handler delegates, see Events and Delegates.

適用対象

こちらもご覧ください