単語登録
AmiVoice API では、認識できない単語があれば追加できます。追加した単語をユーザ登録単語と言います。
単語を追加するには 2 つの方法があります。
- マイページの単語登録ページで事前に設定しておく
- リクエスト時に
profileWords
パラメータに設定する
- 英語エンジンは単語登録に対応していません。
- 中国語エンジンはマイページでの単語登録に対応していません。
- マイページで事前に単語登録しておくほうが、セッションの開始時に時間がかからず効率的です。
以下ではprofileWords
パラメータに設定する方法を説明します。
マイページで単語登録する方法については、プロファイルと単語登録を参照してください。
ユーザ登録単語
単語を登録するには、単語の「表記」と「読み」が必要です。「表記」は喋ったときに表示させたい文字列、「読み」は単語の読み方のことで、ひらがな、または、カタカナで記述します。この表記と読みをエンジンごとに登録することができます。例えば、汎用エンジン(-a-general)で「パレオパラドキシア」という単語が認識しないとします。この場合、リクエストパラメータのgrammarFileNames
とprofileWords
に、以下のように設定します。
grammarFileNames=-a-general profileWords="パレオパラドキシア ぱれおぱらどきしあ"
表記の「パレオパラドキシア」と読みの「ぱれおぱらどきしあ」は、半角スペースで区切ります。
複数単語の設定
複数の単語を登録する場合は、表記と読みのセットを|(パイプ)で区切ります。 「AMI あみ」と「AmiVoice あみぼいす」の2つの単語を登録する場合は以下のように設定します。
profileWords="AMI あみ|AmiVoice あみぼいす"
登録できない文字
表記には、"|"(半角縦棒)と" "(半角スペース)と":"(半角コロン)を含む文字列は登録できません。
クラス
ユーザ登録単語には、「クラス」と呼ばれる単語のカテゴリを指定できます。クラスはエンジンごとに定義されており、例えば汎用(-a-general
)エンジンの場合は以下のクラスが定義されています。
- 固有名詞
- 名前
- 名前(名)
- 駅名
- 地名
- 会社名
- 部署名
- 役職名
- 記号
- 括弧開き
- 括弧閉じ
- 元号
クラスの「名前」は人名の苗字を、「名前(名)」は人名のファーストネームを表しています。
クラスを指定することで、音声認識エンジンはその単語の出現しやすいコンテキストの情報を利用することができます。もし、当てはまるクラスがある場合は、クラスを設定することで精度を改善できる可能性があります。存在しないクラス名が指定された場合は、クラス名が指定されなかったものとして扱われます。エンジン毎に定義されているクラスは、マイページから確認してください。確認方法の詳細はプロファイルと単語登録を参照してください。
クラスは「表記」、「読み」に続けて指定します。例えば、「アソーク駅」という駅名が認識しないとします。この場合、単語、読みに続けて、半角スペースの後にクラス名の駅名
を指定できます。
grammarFileNames=-a-general profileWords="アソーク駅 あそーくえき 駅名"
プロファイル
profileWords
で設定したユーザ登録単語はそのセッションだけで有効になります。セッションのたびに単語を登録しなくてもすむように、プロファイルにユーザ登録単語を保存できます。プロファイルとは、音声認識サーバ上に存在するユーザーごとのデータファイルです。プロファイルを保存するには、リクエスト時にprofileWords
にあわせて、profileId
を指定します。
profileId
とprofileWords
の両方を指定する場合、必ずprofileId
を先に指定します。
testというプロファイルにパレオパラドキシアを登録するには以下のようにします。
grammarFileNames=-a-general profileId=test profileWords="パレオパラドキシア ぱれおぱらどきしあ"
profileId には、半角英数文字、および、「-」(半角マイナス)、「_」(半角アンダーライン) で構成される文字列が利用できます。ただし、「__」(半角アンダーライン 2 文字)ではじまる文字列は、 音声認識エンジン側で予約されていますので、「__」(半角アンダーライン 2 文字)ではじまる文字列は指定しないようにしてください。
ユーザ登録単語の利用方法
次回のリクエスト時には、profileId
だけを指定することで登録した単語を有効にできます。このとき、先頭に半角コロンを付けてください。
profileId=:test
- profileId の先頭に「:」をつけない場合も動作しますが、認識精度が低下する場合があります。
- プロファイルに単語を保存するための接続では、profileId の先頭に「:」(半角コロン)を付けないでください。先頭に半角コロンを付けると、そのプロファイルに単語が保存されません。
マイページの単語登録
マイページの単語登録でユーザ登録単語を追加した場合は、サービスIDのプロファイルに保存されます。
例)サービス ID が「user01」の場合
profileId=:user01
マイページでの単語登録の方法については、プロファイルと単語登録を参照してください。
登録単語の修正、追加
profileId
とprofileWords
を指定してプロファイルに単語を保存する場合、ひとつだけ後から単語を追記できません。以前に登録したすべての単語も合わせて再度profileWords
に指定してください。
登録単語の削除方法
登録した単語を削除したい場合、s コマンド送信時にprofileId
を指定したうえで、profileWords
に半角スペース 1 個を指定してください。
制限事項
登録する単語はプロファイルごとに約1000個を目安にしてください。
参考
AmiVoice のテックブログに単語登録のコツとAmiVoice APIの単語登録機能で選択可能な「クラス」の解説(汎用エンジン)を紹介していますので、そちらも参照してください。