Language

SpeechRecognizer.RequestRecognizerUpdate メソッド

定義

共有認識エンジンの状態を一時停止して更新することを要求します。

オーバーロード

名前 説明
RequestRecognizerUpdate(Object, TimeSpan)

共有認識エンジンがその状態を一時停止して更新し、関連付けられているイベントのオフセットとユーザー トークンを提供することを要求します。

RequestRecognizerUpdate(Object)

共有認識エンジンがその状態を一時停止して更新し、関連付けられているイベントのユーザー トークンを提供することを要求します。

RequestRecognizerUpdate()

共有認識エンジンの状態を一時停止して更新することを要求します。

例

次の例は、オブジェクトを読み込んでアンロードするコンソール アプリケーション Grammar 示しています。 アプリケーションでは、 RequestRecognizerUpdate メソッドを使用して、更新プログラムを受信できるように音声認識エンジンに一時停止を要求します。 その後、アプリケーションは Grammar オブジェクトを読み込むかアンロードします。

更新のたびに、 RecognizerUpdateReached イベントのハンドラーによって、現在読み込まれている Grammar オブジェクトの名前と状態がコンソールに書き込まれます。 文法が読み込まれてアンロードされると、アプリケーションは最初に農場の動物の名前、次に農場の動物の名前と果物の名前、次に果物の名前のみを認識します。

using System;
using System.Speech.Recognition;
using System.Collections.Generic;
using System.Threading;

namespace SampleRecognition
{
  class Program
  {
    private static SpeechRecognizer recognizer;
    public static void Main(string[] args)
    {

      // Initialize an in-process speech recognition engine and configure its input.
      recognizer = new SpeechRecognizer();

      // Create the first grammar - Farm.
      Choices animals = new Choices(new string[] { "cow", "pig", "goat" });
      GrammarBuilder farm = new GrammarBuilder(animals);
      Grammar farmAnimals = new Grammar(farm);
      farmAnimals.Name = "Farm";

      // Create the second grammar - Fruit.
      Choices fruit = new Choices(new string[] { "apples", "peaches", "oranges" });
      GrammarBuilder favorite = new GrammarBuilder(fruit);
      Grammar favoriteFruit = new Grammar(favorite);
      favoriteFruit.Name = "Fruit";

      // Attach event handlers.
      recognizer.SpeechRecognized +=
        new EventHandler<SpeechRecognizedEventArgs>(recognizer_SpeechRecognized);
      recognizer.RecognizerUpdateReached +=
        new EventHandler<RecognizerUpdateReachedEventArgs>(recognizer_RecognizerUpdateReached);

      // Check to see if recognizer is loaded, wait if it is not loaded.
      if (recognizer.State != RecognizerState.Listening)
      {
        Thread.Sleep(5000);

        // Put recognizer in listening state.
        recognizer.EmulateRecognizeAsync("Start listening");
      }

      // Load the Farm grammar.
      recognizer.LoadGrammar(farmAnimals);
      Console.WriteLine("Grammar Farm is loaded");

      // Pause to recognize farm animals.
      Thread.Sleep(7000);
      Console.WriteLine();

      // Request an update and load the Fruit grammar.
      recognizer.RequestRecognizerUpdate();
      recognizer.LoadGrammarAsync(favoriteFruit);
      Thread.Sleep(5000);

      // Request an update and unload the Farm grammar.
      recognizer.RequestRecognizerUpdate();
      recognizer.UnloadGrammar(farmAnimals);
      Thread.Sleep(5000);

      // Keep the console window open.
      Console.WriteLine();
      Console.WriteLine("Press any key to exit...");
      Console.ReadKey();
    }

    public static void recognizer_RecognizerUpdateReached(object sender, RecognizerUpdateReachedEventArgs e)
    {
      // At the update, get the names and enabled status of the currently loaded grammars.
      Console.WriteLine();
      Console.WriteLine("Update reached:");
      Thread.Sleep(1000);
      string qualifier;
      List<Grammar> grammars = new List<Grammar>(recognizer.Grammars);
      foreach (Grammar g in grammars)
      {
        qualifier = (g.Enabled) ? "enabled" : "disabled";
        Console.WriteLine("  Grammar {0} is loaded and is {1}.",
        g.Name, qualifier);
      }
    }

    // Write the text of the recognized phrase to the console.
    static void recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
    {
      Console.WriteLine("  Speech recognized: " + e.Result.Text);
    }
  }
}

注釈

共有認識エンジンへの変更を同期するには、このメソッドを使用します。 たとえば、認識エンジンが入力の処理中に音声認識文法を読み込んだりアンロードしたりする場合は、このメソッドと RecognizerUpdateReached イベントを使用して、アプリケーションの動作を認識エンジンの状態と同期します。

このメソッドが呼び出されると、認識エンジンは非同期操作を一時停止または完了し、 RecognizerUpdateReached イベントを生成します。 RecognizerUpdateReached イベント ハンドラーは、認識操作の間に認識エンジンの状態を変更できます。

このメソッドが呼び出されたとき:

  • 認識エンジンが入力を処理していない場合、認識エンジンはすぐに RecognizerUpdateReached イベントを生成します。

  • 認識エンジンが無音またはバックグラウンド ノイズで構成される入力を処理している場合、認識エンジンは認識操作を一時停止し、 RecognizerUpdateReached イベントを生成します。

  • 認識エンジンが無音またはバックグラウンド ノイズで構成されていない入力を処理している場合、認識エンジンは認識操作を完了し、 RecognizerUpdateReached イベントを生成します。

認識エンジンが RecognizerUpdateReached イベントを処理している間:

  • 認識エンジンは入力を処理せず、 RecognizerAudioPosition プロパティの値は変わりません。

  • 認識エンジンは引き続き入力を収集し、 AudioPosition プロパティの値を変更できます。

アプリケーションが SpeechRecognized イベントを処理している間に共有認識エンジンが認識操作を一時停止するかどうかを変更するには、 PauseRecognizerOnRecognition プロパティを使用します。

RequestRecognizerUpdate(Object, TimeSpan)

ソース:
SpeechRecognizer.cs
ソース:
SpeechRecognizer.cs
ソース:
SpeechRecognizer.cs
ソース:
SpeechRecognizer.cs

共有認識エンジンがその状態を一時停止して更新し、関連付けられているイベントのオフセットとユーザー トークンを提供することを要求します。

public:
 void RequestRecognizerUpdate(System::Object ^ userToken, TimeSpan audioPositionAheadToRaiseUpdate);
public void RequestRecognizerUpdate(object userToken, TimeSpan audioPositionAheadToRaiseUpdate);
member this.RequestRecognizerUpdate : obj * TimeSpan -> unit
Public Sub RequestRecognizerUpdate (userToken As Object, audioPositionAheadToRaiseUpdate As TimeSpan)

パラメーター

userToken
Object

操作の情報を含むユーザー定義情報。

audioPositionAheadToRaiseUpdate
TimeSpan

要求を遅延させる現在の AudioPosition からのオフセット。

注釈

認識エンジンの RecognizerAudioPosition が現在の AudioPosition と audioPositionAheadToRaiseUpdate パラメーターの値と等しくなるまで、認識エンジンは認識エンジンの更新要求を開始しません。

認識エンジンがRecognizerUpdateReached イベントを生成すると、UserTokenのRecognizerUpdateReachedEventArgs プロパティには、userToken パラメーターの値が含まれます。

こちらもご覧ください

適用対象

RequestRecognizerUpdate(Object)

ソース:
SpeechRecognizer.cs
ソース:
SpeechRecognizer.cs
ソース:
SpeechRecognizer.cs
ソース:
SpeechRecognizer.cs

共有認識エンジンがその状態を一時停止して更新し、関連付けられているイベントのユーザー トークンを提供することを要求します。

public:
 void RequestRecognizerUpdate(System::Object ^ userToken);
public void RequestRecognizerUpdate(object userToken);
member this.RequestRecognizerUpdate : obj -> unit
Public Sub RequestRecognizerUpdate (userToken As Object)

パラメーター

userToken
Object

操作の情報を含むユーザー定義情報。

注釈

認識エンジンがRecognizerUpdateReached イベントを生成すると、UserTokenのRecognizerUpdateReachedEventArgs プロパティには、userToken パラメーターの値が含まれます。

オーディオ位置のオフセットを指定するには、 RequestRecognizerUpdate メソッドを使用します。

こちらもご覧ください

適用対象

RequestRecognizerUpdate()

ソース:
SpeechRecognizer.cs
ソース:
SpeechRecognizer.cs
ソース:
SpeechRecognizer.cs
ソース:
SpeechRecognizer.cs

共有認識エンジンの状態を一時停止して更新することを要求します。

public:
 void RequestRecognizerUpdate();
public void RequestRecognizerUpdate();
member this.RequestRecognizerUpdate : unit -> unit
Public Sub RequestRecognizerUpdate ()

注釈

認識エンジンがRecognizerUpdateReached イベントを生成すると、UserTokenのRecognizerUpdateReachedEventArgs プロパティがnullされます。

ユーザー トークンを指定するには、 RequestRecognizerUpdate または RequestRecognizerUpdate メソッドを使用します。 オーディオ位置のオフセットを指定するには、 RequestRecognizerUpdate メソッドを使用します。

こちらもご覧ください

適用対象