IAgentCharacterEx::Listen

[Microsoft エージェントは Windows 7 の時点で非推奨となり、以降のバージョンの Windows では使用できない場合があります。]

HRESULT Listen(
   long bListen  // listening mode flag
);

リッスン モード (音声認識入力) のオンとオフを切り替えます。

  • 操作が成功したことを示すS_OKを返します。

bListen

リッスン モード フラグ。 このパラメーターが True の場合、リッスン モードは有効になります。 False の場合、リッスン モードはオフになります。

このメソッドを True に設定すると、一定の期間、リッスン モード (音声認識が有効になります) が有効になります。 タイムアウトの値を設定することはできませんが、タイムアウトが切れる前にリッスン モードをオフにすることはできます。 さらに、タイムアウトの期限が切れる前に、ユーザー (または別のクライアント) がメソッドを正常に True に設定したためにリッスン モードが既にオンになっている場合、メソッドは成功し、タイムアウトをリセットします。ただし、ユーザーがリッスン キーを押しているためにリッスン モードが既にオンになっている場合、メソッドは成功しますが、タイムアウトは無視され、リッスン キーとのユーザーの操作に基づいてリッスン モードが終了します。

このメソッドは、入力アクティブ なクライアントによって呼び出された場合にのみ成功します。 したがって、クライアントが最上位文字のアクティブなクライアントでない場合、メソッドは失敗します。 メソッドを False に設定しようとして、ユーザーがリッスン キーを押すと、メソッドも失敗します。 また、文字の言語 ID 設定に一致する互換性のある音声エンジンがない場合、またはユーザーが Microsoft Agent プロパティ シートを使用して音声入力を無効にした場合にも失敗する可能性があります。 ただし、オーディオ デバイスがビジー状態の場合、メソッドは失敗しません。

このメソッドを True に正常に設定すると、サーバーは IAgentNotifySinkEx::ListeningState イベントを トリガーします。 また、リッスン モードのタイムアウトが完了したとき、または IAgentCharacterEx::Listen を False に設定すると、サーバーは IAgentNotifySinkEx::ListeningState を送信 します

このメソッドは、 IAgentCharacter::StopAll を自動的に呼び出し、ユーザーがリッスン キーを押したときに発生する文字のリッスン状態アニメーションを再生しません。 これにより、 IAgentNotifySinkEx::ListeningState イベントを 使用して、現在のアニメーションを停止し、独自の適切なアニメーションを再生するかどうかを判断できます。 ただし、ユーザー発話が検出されると、サーバーは IAgentCharacter::StopAll を自動的に呼び出し、ヒアリング状態アニメーションを再生します。

参照

IAgentNotifySinkEx::ListeningState,IAgentSpeechInputProperties::GetEnabled