AmiVoice® Robot SDK  0.9.10
トリガーワードの読みの指定について

トリガーワードの指定

  • トリガーワードの文字列はUTF-8で指定してください。
  • トリガーワードは10ワードまで指定可能です。
  • 認識率向上のために少なくとも4音素以上の音素を含めることをお勧めします。 配列内部の文字列は、全角ひらがなのみ指定可能です。
  • 指定する配列の最後には終端を表すため以下のようにNULLを指定してください。
  • triggerWords[0] = "トリガーいち"; triggerWords[1] = "トリガーに"; ... triggerWords[N+1] = NULL;
// トリガーワードを指定します
static const char* trigger = "おはよー";
_sHandsfreeControl = createHandsfreeControl();
... 中略 ...
// トリガーワードの個数(N) + デリミッタ分を配列として確保
const char** tw = new const char*[2];
tw[0] = trigger;
// tw[N+1]にはデリミッタとしてNULLを入れます
tw[1] = NULL;
... 中略 ...
_sHandsfreeControl->triggerWords = tw;

読みに指定可能な文字列

<読み> に指定できる文字列は、ひらがなと“ー”(長音記号)と“.”(ピリオド)のみです。 これら以外の文字を指定した場合は、そのワードが無視されます。

  • <読み> を記述する際に、“ー”(長音記号)を使用して記述しても、“ー”(長音記号)を使用せずに記述しても、AmiVoice® 音声認識エンジン内部では、共に同じ <読み> として扱います。
    例)
    • 「かー」=「かあ」
    • 「きゃー」=「きゃあ」
    • 「きー」=「きい」
    • 「くー」=「くう」
    • 「きゅー」=「きゅう」
    • 「けー」=「けい」=「けえ」
    • 「こー」=「こう」=「こお」
    • 「きょー」=「きょう」=「きょお」 など
    覚え書き
    上記の同一視ルールを確認の上、重複するような単語の登録は排除するようお願いします。
  • <読み> の中に“は” や “へ” を使用する場合、これらは常に “h a” や “h e” として扱います。”w a” や “e” として扱われることはありません。
  • <読み> を記述する際に、“.”(ピリオド)を使用することで、上記の同一視ルールを強制的に行わないような記述が可能になります。
    例)
    • 「やまのうち」 →“やまのーち”
    • 「やまの.うち」 →“やまのうち”
    • 「りくうんきょく」→“りくーんきょく”
    • 「りく.うんきょく」→“りくうんきょく” など

ルールの記述

トリガーワードには、<読み> の他に下記のルールを記述することが可能です。

  1. 列挙した単語のどれかを認識する

    例えば「はい」「いいえ」の2つを認識させたい場合は、

    • はい | いいえ

    のように記述します。 こうすると、「はい」という発話か「いいえ」という発話を認識するようになります。

  2. 単語列を認識させたい場合

    単語と単語の間にスペースを入れると単語列になります。例えば、

    • なまえわ すずき です

    とすると「なまえわ すずき です」という発話を認識するようになります。

  3. 1と2の組み合わせ

    例えば、「なまえわ すずき です」「なまえわ さとう です」を認識させたい場合、

    • なまえわ ( すずき | さとう ) です

    と記述します。

  4. 省略可能

    例えば、「はんばーぐ」「はんばーぐ ひとつ」 「はんばーぐ おねがいします」「はんばーぐ ひとつ おねがいします」を認識させたい場合、

    • はんばーぐ [ ひとつ | ふたつ ] [ おねがいします ]

    と記述します。更に、上記の例では、「はんばーぐ ふたつ おねがいします」も認識します。