Show page source of howto/understand/grammar #69203

= 文法とは? =

== 文法が形質 ==

[wiki:howto/use/abstract フレームワークの概要]で一度記載していますが、Speech Controller Framework における文法とは、'''発音された日本語によって状態遷移する状態遷移グラフ'''のことです。

全ての文法には始点があり終点があります。

文法が表す状態遷移グラフの始点から終点までを一度の発話の音声認識単位として扱います。

一度の発話とは、音声が長く途切れることなく連続した入力のことを指します。

始点から始まって、文法の途中まで発話がされたとしても、終点まで至らなければ認識されたとはみなされません。

文法が表す状態遷移グラフにはループがあっても構いません。

-----

文法は1つではなく、複数設定できます。

複数設定した場合は、いずれの文法も同時に有効です。

-----

== 文法と音声認識結果の関係 ==

文法を複数設定することが可能なため、どの文法によって音声が認識されたのか判断できるように、個々の文法に名前が付けられます。

音声認識に成功した場合、どの文法によって音声認識が成立したのか、文法の名前が取得可能です。

-----

どのような状態遷移によって音声認識が成立してきたのかを知る手がかりとして、各状態遷移が成立した順にキー/バリュー形式の値が設定されるよう文法にはプロパティの指定が可能です。

キーは常に文字列です。バリューには整数値(int)もしくは文字列(std::string)の指定が可能です。

-----