SpeechRecognizer.RequestRecognizerUpdate メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
共有認識エンジンがその状態を更新および停止するように要求します。
オーバーロード
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)
共有認識エンジンがその状態を停止および更新し、関連イベントのオフセットとユーザー トークンを提供するように要求します。
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 からのオフセット。
注釈
認識エンジンは、認識エンジンの が現在AudioPositionの RecognizerAudioPosition パラメーターの値と等しくなるまで、認識エンジンの更新要求をaudioPositionAheadToRaiseUpdate
開始しません。
認識エンジンがイベントを RecognizerUpdateReached 生成すると、 UserToken の RecognizerUpdateReachedEventArgs プロパティに パラメーターの値が userToken
含まれます。
こちらもご覧ください
適用対象
RequestRecognizerUpdate(Object)
共有認識エンジンがその状態を停止および更新し、関連イベントのユーザー トークンを提供するように要求します。
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()
共有認識エンジンがその状態を更新および停止するように要求します。
public:
void RequestRecognizerUpdate();
public void RequestRecognizerUpdate ();
member this.RequestRecognizerUpdate : unit -> unit
Public Sub RequestRecognizerUpdate ()
注釈
認識エンジンがイベントを RecognizerUpdateReached 生成すると、 の UserTokenRecognizerUpdateReachedEventArgs プロパティは になります null
。
ユーザー トークンを指定するには、 メソッドまたは RequestRecognizerUpdate メソッドをRequestRecognizerUpdate使用します。 オーディオ位置オフセットを指定するには、 メソッドを使用します RequestRecognizerUpdate 。
こちらもご覧ください
適用対象
.NET