Voice プロパティ (Commands オブジェクト)
[Microsoft エージェントは Windows 7 の時点で非推奨となり、以降のバージョンの Windows では使用できない場合があります。]
-
Description
-
(認識用) 音声エンジンの文法に渡されるテキストを設定または返します。
-
構文
-
agent**.文字 ("CharacterID")。Commands.Voice** [ = string]
パーツ Description string このコマンドを認識するために音声エンジンによって使用される単語または語句に対応する文字列式。
解説
このパラメーターを指定しない場合、Commands オブジェクトの VoiceCaption は [音声コマンド] ウィンドウに表示されません。
指定する文字列式には、省略可能な単語を示す角かっこ文字 ([ ]) と、代替文字列を示す縦棒文字 (|) を含めることができます。 代替はかっこで囲む必要があります。 たとえば、"(hello [there] |hi)" は、コマンドに対して "hello"、"hello there"、または "hi" を受け入れるように音声エンジンに指示します。 角かっこまたはかっこで囲まれたテキストと、角かっこまたはかっこ以外のテキストの間には、必ず適切なスペースを含めます。 star (*) 演算子を使用して、グループに含まれる単語のインスタンスを 0 個以上指定するか、プラス (+) 演算子を使用して 1 つ以上のインスタンスを指定できます。 たとえば、次の結果は、"try this"、"please this"、"please try this"、"please this"、および "please" の無制限の反復をサポートする文法になります。
"please* try this"
次の文法形式では、+ 演算子で "please" のインスタンスが少なくとも 1 つ定義されているため、"try this" は除外されます。
"please+ try this"
繰り返し演算子は、通常の優先順位の規則に従い、直前のテキスト項目に適用されます。 たとえば、次の文法では "New York" と "New York York" になりますが、"ニューヨーク ニューヨーク" は行われません。
"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 [...]" チェック、音声認識エンジンは、"メールをチェックしてください" や "チェック mail please" などの語句をこのコマンドに一致させます。 省略記号は、文字列内の任意の場所で使用できます。 ただし、この手法を使用すると、不要な一致の可能性が高まる可能性があるため、注意が必要です。
コマンドの文法という単語を定義する場合は、必要な単語を少なくとも 1 つ含めます。つまり、省略可能な単語のみを指定しないでください。 さらに、単語に発音可能な単語と文字のみが含まれていることを確認します。 数値の場合は、あいまいな表現を使用するのではなく、単語をスペル アウトすることをお勧めします。 たとえば、"345" は適切な文法形式ではありません。 同様に、"IEEE" ではなく、"I triple E" を使用します。 また、句読点や記号は省略してください。 たとえば、"#1 $10 pizza!" の代わりに、"10 ドルの数字のピザ" を使用します。 1 つのコマンドに発音できない文字や記号を含めると、音声エンジンがすべてのコマンドの文法をコンパイルできなくなる可能性があります。 最後に、定義した他の音声コマンドから、音声パラメーターをできるだけ明確にします。 コマンドの音声文法の類似性が高いほど、音声エンジンで認識エラーが発生する可能性が高くなります。 また、信頼度スコアを使用して、類似または類似の音声文法を持つ可能性のある 2 つのコマンドをより適切に区別することもできます。
"text\pronunciation" の形式で文法単語に含めることができます。 テキスト は表示されるテキスト、 発音 は発音を明確にするテキストです。 たとえば、ユーザーが "first" と言うと文法 "1st\first" が認識されますが、 Command イベントは "1st\first" というテキストを返します。 IPA (国際ふりがな) を使用して発音を指定するには、発音をシャープ記号文字 ("#") で始めてから、IPA の発音を表すテキストを含めることもできます。
日本語音声認識エンジンでは、"かな\漢字" という形式で文法を定義し、代替発音を減らし、精度を高めることができます。 (下位互換性のために順序は逆になります)。これは漢字の正しい名前の発音に特に重要です。 ただし、かなを使用せずに漢字を渡すだけでかまいません。その場合、エンジンは漢字に対して受け入れられるすべての発音を聞く必要があります。 かなだけを渡すこともできます。
また、日本語、中国語、タイ語などの言語では、単語区切りを指定するためにスペース文字を使用しない場合は、Unicode のゼロ幅スペース文字 (0x200B) を挿入して論理ワード区切りを示します。
グループ化または繰り返しの書式設定文字を使用するエラーを除き、エンジン自体がエラーを報告しない限り、エージェントは文法のエラーを報告しません。 文章校正で、エンジンがコンパイルに失敗したが、エンジンが処理せず、エラーとして返された場合、エージェントはエラーを報告できません。 そのため、クライアント アプリケーションは Voice プロパティの文法を慎重に定義する必要があります。
Note
使用できる文法機能は、音声認識エンジンによって異なります。 エンジンのベンダーにチェックして、サポートされている文法オプションを決定することができます。 特定のエンジンを使用するには、 SRModeID を使用します。
このプロパティの操作は、サーバーの音声認識プロパティの状態によって異なります。 たとえば、音声認識が無効になっているか、インストールされていない場合、このプロパティは無効になります。