ルールグラマ
グラマファイルを用いた音声認識
AmiVoice API Private で利用可能な「音声入力_ルール」エンジン(-a-rule-input-private
)では、ユーザが作成したグラマファイルを用いて音声認識を行うことができます。たとえば、IVR システムで顧客情報の音声認識を行う場合に、会員番号の確認など、一定のルールに基づいて限られた単語のみが用いられる発話が期待される場面などに有効です。
グラマファイルフォーマット
「音声入力_ルール」エンジンでは、JSpeech Grammar Format(JSGF)で記述されたグラマファイル(JSGF グラマファイル)、または、Speech Recognition Grammar Specification(SRGS)で記述されたグラマファイル(SRGF グラマファイル)を使用することができます。これらのフォーマットを使用することで音声認識エンジンに認識して欲しいフレーズ(単語のセット)とタグ(フレーズが認識された時に付随情報としてアプリケーションに返される文字列)を限定的に記述することができます。新しくグラマファイルを作成する場合は JSGF グラマファイルを推奨します。 ここでは、2つのグラマファイルの仕様について簡単な説明をしますが、それぞれのグラマファイルの仕様の詳細については、以下の Web ページを参照してください。
- JSpeech Grammar Format: https://www.w3.org/TR/jsgf/
- Speech Recognition Grammar Specification Version 1.0: https://www.w3.org/TR/speech-grammar/
JSGF グラマファイル簡易仕様
JSGF グラマファイルは、以下の要素で構成されます。
ヘッダ情報
文字エンコーディング情報、および、国・言語情報を記述します。「ヘッダ情報」の形式は、以下の通りです。
#JSGF V1.0;
#JSGF V1.0 <文字エンコーディング情報>;
#JSGF V1.0 <文字エンコーディング情報> <国・言語情報>;
文字エンコーディング情報、および、国・言語情報は、記述を省略することができます。
例:
#JSGF V1.0;
#JSGF V1.0 MS932;
#JSGF V1.0 MS932 ja-JP;
#JSGF V1.0 UTF-8;
grammar 文
グラマ名を記述します。「grammar 文」の形式は、以下の通りです。
grammar 【グラマ名】;
グラマ名には、グラマファイル名からパス部分や拡張子部分を除いた文字列を指定するようにしてください。
例:
grammar Sample;
ルール定義文
実際に音声認識エンジンに認識して欲しいフレーズとタグの定義を記述します。一つのグラマファイルの中に複数のルール定義文を記述することができます。 ルールには、public ルールと private ルールの二種類があります。public ルールは、それ単独で音声認識エンジンに認識して欲しいフレーズやタグを規定するものです。private ルールは、他のルールから参照されるものです。 public ルールの「ルール定義文」の形式は、以下の通りです。
public <【ルール名】> = 【ルール定義】;
private ルールの「ルール定義文」の形式は、以下の通りです。
<【ルール名】> = 【ルール定義】;
ルール定義については、ルール定義を参照してください。
例:
public <sample1> = おはよう <sample2>;
<sample2> = AmiVoice\あみぼいす;
ルール定義
ルール定義は、以下の要素で構成されます。