音声入力のサポート
[Microsoft エージェントは Windows 7 の時点で非推奨となり、以降のバージョンの Windows では使用できない場合があります。]
Microsoft エージェントには、マウスとキーボードの操作のサポートに加えて、音声入力の直接サポートも含まれています。 Microsoft エージェントの音声入力のサポートは Microsoft SAPI (Speech Application Programming Interface) に基づいているため、SAPI が必要なサポートを含む音声認識コマンドエンジンと制御エンジンで Microsoft Agent を使用できます。 音声エンジンの要件の詳細については、「 音声エンジンのサポート要件」を参照してください。
Microsoft には、Microsoft エージェントで使用できるコマンド アンド コントロール音声認識エンジンが用意されています。 詳細については、「 音声エンジンの選択」を参照してください。
ユーザーは、プッシュツートークリスニングホットキーを押し続けることで音声入力を開始できます。 このリッスン モードでは、音声エンジンが音声入力の先頭を受け取った場合、発話の終わりを検出するまでオーディオ チャネルを開いたままにします。 ただし、入力を受信しない場合、オーディオ出力はブロックされません。 これにより、ユーザーはキーを押しながら複数の音声コマンドを発行でき、ユーザーが話していないときに文字が応答できるようになります。
ユーザーがリッスン キーを解放すると、リッスン モードはタイムアウトします。 ユーザーは、[高度な文字オプション] を使用して、このモードのタイムアウトを調整できます。 クライアント アプリケーション コードからこのタイムアウトを設定することはできません。
ユーザーが話している間に文字が読み上げようとすると、文字の音声出力は失敗しますが、テキストは引き続きワード バルーンに表示される可能性があります。 Listening キーが押されている間に文字にオーディオ チャネルがある場合、サーバーは Speak メソッドのテキストを処理した後、コントロールを自動的にユーザーに転送します。 ユーザーが話し始めるために、オプションの MIDI トーンが再生されます。 これにより、文字を駆動するアプリケーションが出力で論理的な一時停止を提供できなかった場合でも、ユーザーは入力を提供できます。
Listen メソッドを使用して音声入力を開始することもできます。 このメソッドを呼び出すと、定義済みの期間の音声認識がオンになります。 この間隔で入力がない場合、Microsoft エージェントは音声認識エンジンを自動的にオフにし、オーディオ チャネルを解放します。 これにより、オーディオ デバイスへの入力やオーディオ デバイスからの出力がブロックされるのを回避し、音声認識がオンのときに使用されるプロセッサのオーバーヘッドを最小限に抑えることができます。 Listen メソッドを使用して、音声入力をオフにすることもできます。 ただし、音声認識エンジンは非同期的に動作するため、効果がすぐには発生しない可能性があることに注意してください。 その結果、Listen というコードを呼び出して音声入力をオフにした後でも、Command イベントを受信できます。
音声入力をサポートするために、文章校正を定義します。音声認識エンジンでリッスンし、Command コレクションの Command の音声設定として照合する単語のセットを定義します。 文法には、省略可能な単語や代替単語、繰り返しのシーケンスを含めることができます。 エージェントは、いずれかのクライアントが音声エンジンを正常に読み込むか、Command オブジェクトの 1 つに音声を作成するまで、リッスンホットキーを有効にしないことに注意してください。
ユーザーが Listening ホットキーを押すか、クライアント アプリケーションが Listen メソッドを呼び出して音声入力を開始するかに関係なく、音声認識エンジンは発話の入力と定義されているコマンドの文法との照合を試み、情報をサーバーに渡します。 その後、サーバーは Command イベント (IAgentNotifySink::Command) を使用してクライアント アプリケーションに通知します。最適な一致のコマンド ID と次の 2 つの代替一致 (存在する場合)、信頼度スコア、および一致する各一致のテキストを含む UserInput オブジェクトを渡します。
また、サーバーは、音声入力が指定されたコマンドのいずれかに一致すると、クライアント アプリケーションに通知します。 コマンド ID が NULL の場合でも、信頼度スコアとテキストが一致します。 リッスン モードの場合、サーバーはキャラクターのリッスン状態に割り当てられたアニメーション を 自動的に再生します。 その後、発話が実際に検出されると、サーバーはキャラクターの ヒアリング 状態アニメーションを再生します。 発話が終了するまで、サーバーはキャラクターを注意深い状態に保ちます。 これにより、ユーザーに入力を求める適切なソーシャル フィードバックが提供されます。
ユーザーが [高度な文字オプション] で音声入力を無効にすると、リッスンホットキーも無効になります。 同様に、音声入力が無効になっているときに Listen メソッドを呼び出そうとすると、 メソッドが失敗します。