IAgentCommand::SetVoice
[Microsoft エージェントは Windows 7 の時点で非推奨となり、以降のバージョンの Windows では使用できない場合があります。]
HRESULT SetVoice(
BSTR bszVoice // voice text setting for Command
);
- 操作が成功したことを示すS_OKを返します。
音声でアクセスできるようにするには 、Command の Voice プロパティと Enabled プロパティが設定されている必要があります。 また、 VoiceCaption プロパティが [ 音声コマンド] ウィンドウに表示されるように設定されている必要があります。 (旧バージョンとの互換性のために、 VoiceCaption がない場合は、[ キャプション ] 設定が使用されます)。
指定する BSTR 式には、省略可能な単語を示す角かっこ ([ ]) と、代替文字列を示す縦棒文字 (|) を含めることができます。 代替はかっこで囲む必要があります。 たとえば、"(hello [there] |hi)" は、コマンドに対して "hello"、"hello there"、または "hi" を受け入れるように音声エンジンに指示します。 角かっこまたはかっこ内のテキストと、かっこまたはかっこに含まれていないテキストの間には、必ず適切なスペースを含めます。
star (*) 演算子を使用して、グループに含まれる単語のインスタンスを 0 個以上指定するか、プラス (+) 演算子を使用して 1 つ以上のインスタンスを指定できます。 たとえば、次の結果として、"try this"、"please this"、および "please try this" をサポートする文法が作成され、"please" の繰り返しは無制限になります。
"please* try this"
次の文法形式では、+ 演算子で "please" のインスタンスが少なくとも 1 つ定義されているため、"try this" は除外されます。
"please+ try this"
繰り返し演算子は、通常の優先順位の規則に従い、直前のテキスト項目に適用されます。 たとえば、次の文法の結果は "ニューヨーク" と "ニューヨーク" になりますが、"ニューヨーク ニューヨーク" は行われません。
"New York+"
したがって、通常は、これらの演算子をグループ化文字と共に使用します。 たとえば、次の文法には "New York" と "New York New York" の両方が含まれます。
"(New York)+"
繰り返し演算子は、電話番号やアイテムのリストの指定などの繰り返しシーケンスを含む文法を作成する場合に便利です。
"call (one|two|three|four|five|six|seven|eight|nine|zero|oh)*"
"I'd like (cheese|pepperoni|pineapple|canadian bacon|mushrooms|and)+"
演算子は角かっこ (省略可能なグループ化文字) でも使用できますが、これを行うと、エージェントによる文法処理の効率が低下する可能性があります。
省略記号 (...) を使用して 単語スポッティングをサポートすることもできます。つまり、語句内のこの位置で話されている単語 ( ガベージ ワードとも呼ばれる) を無視するように音声認識エンジンに指示できます。 したがって、音声エンジンは、隣接する単語または語句と共に読み上げられた場合に関係なく、文字列内の特定の単語のみを認識します。 たとえば、このプロパティを "[...] に設定した場合チェックメール [...]" は、音声認識エンジンが "メールをチェックしてください" や "チェック mail please" などの語句をこのコマンドに一致させます。 省略記号は、文字列内の任意の場所で使用できます。 ただし、省略記号を含む音声設定は望ましくない一致の可能性を高める可能性があるため、この手法を使用する場合は注意してください。
コマンドの単語と文法を定義するときは、必ず必要な単語を少なくとも 1 つ含めるようにしてください。つまり、省略可能な単語のみを指定しないでください。 さらに、単語に発音可能な単語と文字のみが含まれていることを確認します。 数値の場合は、数値表現を使用するのではなく、単語のスペルを入力することをお勧めします。 また、句読点や記号は省略してください。 たとえば、"#1 $10 pizza!" の代わりに、"10 ドルの数字のピザ" を使用します。 1 つのコマンドに発音できない文字や記号を含めると、音声エンジンがすべてのコマンドの文法をコンパイルできなくなる可能性があります。 最後に、定義した他の音声コマンドから可能な限り音声パラメーターを明確にします。 コマンドの音声文法の類似性が高いほど、音声エンジンで認識エラーが発生する可能性が高くなります。 また、信頼度スコアを使用して、類似または類似の音声文法を持つ可能性のある 2 つのコマンドをより適切に区別することもできます。
Command の Voice プロパティを設定すると、エージェントの音声サービスが自動的に有効になり、Listening キーと Listening Tip を使用できるようになります。 ただし、音声認識エンジンは読み込まれません。
Note
使用できる文法機能は、音声認識エンジンによって異なります。 サポートされている文法オプションを決定するには、エンジンのベンダーにチェックすることもできます。 エンジンを指定するには、IAgentCharacterEx::SRModeID を使用します。
参照
IAgentCommand::GetVoice、 IAgentCommand::SetCaption、 IAgentCommand::SetEnabled、 IAgentCommands::Add、 IAgentCommands::Insert