C# の XML で複数のルールを定義しました。ファイルが読み込まれ、最終的に RecognizeAsync(RecognizeMode.Multiple) が呼び出され、継続的な認識になりたいと考えています。SpeechRecognized イベントは、文法ファイルから認識されたテキストを正しく返します。
ここで、「2 対 3 の比率」を受け入れるが、表示されるテキスト「2:3 の比率」として返すルールが必要です。"ratio of 2:3:" を返すのにうまく機能する次のルールを定義しました。
<rule id="ratio" scope="public">
<example>ratio of 2 to 3</example>
ratio of
<ruleref uri="#numbers"/><tag>$.value1=$$; </tag>
<item> to </item>
<ruleref uri="#numbers"/><tag>$.value2=$$;</tag>
<tag>$="ratio of "+ $.value1+ ":" +$.value2;</tag>
</rule>
しかし、これは最も下のルールであり、それを呼び出す複数のルールがあるため、「2:3」を上位のルールにエコーする唯一の方法は、上位の各ルールでも意味解釈を使用することです。これは、そうでなければセマンティクスを必要としないルールにかなりの量の追加コーディングを意味します。
では、セマンティクスを使用せずに「比率 2:3」を返す XML ルール「比率」内にとにかくありますか? もっと言えば、「2 対 3 の比率」の認識された単語「to」が実際には「:」であることを指定する XML 内の方法はありますか? さらに言えば、表示を「to」から「two」または「to」または「too」または「:」に変更するにはどうすればよいですか?
提案をありがとう。