単語登録の基本
AmiVoice API では、認識できない単語があれば追加できます。追加した単語をユーザー登録単語と言います。
単語を追加するには 2 つの方法があります。
- マイページの単語登録ページで事前に設定しておく
- リクエスト時に
profileWords
パラメータに設定する
- 英語エンジンは単語登録に対応していません。
- 中国語エンジンはマイページでの単語登録に対応していません。
- マイページで事前に単語登録しておくほうが、セッションの開始時に時間がかからず効率的です。
以下ではprofileWords
パラメータに設定する方法を説明します。
- マイページで単語登録する方法については、マイページでの単語登録を参照してください。
- パラメータを設定する方法はインタフェースによって異なります。詳細は以下を参照してください。
ユーザー登録単語の構成要素
表記・読み
単語をエンジンに追加するには、単語の「表記」と「読み」が必要です。「表記」は喋ったときに表示させたい文字列、「読み」は単語の読み方のことで、ひらがな、または、カタカナで記述します。
登録したい単語の表記と読みのペアをリクエストパラメータのprofileWords
に設定します。
例えば、会話_汎用エンジン(-a-general
)で「パレオパラドキシア」という単語が認識しないとします。この場合、以下のように表記と読みを半角スペースで区切って指定します。
profileWords="パレオパラドキシア ぱれおぱらどきしあ"
複数の単語を登録する場合は、表記と読みのセットを|(パイプ)で区切ります。 「AMI あみ」と「AmiVoice あみぼいす」の2つの単語を登録するには以下のように設定します。
profileWords="AMI あみ|AmiVoice あみぼいす"
クラス
単語を登録するとき、「表記」と「読み」に加えて、「クラス」と呼ばれる単語のカテゴリを指定できます。クラスはエンジンごとに定義されており、API利用者がクラスを追加することはできません。エンジンごとに定義されているクラスは日本語の言語モデルのクラス名一覧を参照してください。例えば「会話_汎用エンジン」(-a-general
)の場合は以下のクラスが定義されています。
- 固有名詞
- 名前
- 名前(名)
- 駅名
- 地名
- 会社名
- 部署名
- 役職名
- 記号
- 括弧開き
- 括弧閉じ
- 元号
- クラスの「名前」は人名の苗字を、「名前(名)」は人名のファーストネームを表しています。
- 存在しないクラス名が指定された場合は、クラス名が指定されなかったものとして扱われます。
人名の単語を登録する場合、その単語が人名であることをクラスで指定することで、その単語は人名が話される文脈で認識されやすくなります。逆に、人名が話される文脈以外では認識されにくくなり、誤って湧き出してしまう事を防ぐことになります。もし登録しようとしている単語に当てはまるクラスがある場合は、クラスを設定することをお勧めします。
AmiVoice Tech BlogのAmiVoice APIの単語登録機能で選択可能な「クラス」の解説(汎用エンジン)も参照してください。
クラスの確認方法
エンジン毎に定義されているクラスは、マイページから確認してください。確認方法の詳細はマイページでの単語登録を参照してください。
クラスの設定方法
クラスを設定するには「表記」「読み」に続けて指定します。例えば、「アソーク駅」という駅名が認識しないとします。この場合、単語、読みに続けて、半角スペースの後にクラス名の駅名
を指定します。
profileWords="アソーク駅 あそーくえき 駅名"
プロファイル
profileWords
で設定したユーザー登録単語はそのセッションだけで有効になります。セッションのたびに単語を登録しなくてもすむように、プロファイルにユーザー登録単語を保存できます。プロファイルとは、AmiVoice APIの基盤でユーザーごとに保存しているデータファイルです。プロファイルはエンジンごとに作成されます。
プロファイルに単語を保存する方法
プロファイルを保存するには、リクエスト時にprofileWords
にあわせて、profileId
を指定します。
profileId
とprofileWords
の両方を指定する場合、必ずprofileId
を先に指定します。
「会話_汎用エンジン」(-a-general
)のtestというプロファイルにパレオパラドキシアを登録するには以下のようにします。
grammarFileNames=-a-general profileId=test profileWords="パレオパラドキシア ぱれおぱらどきしあ"
profileId には、半角英数文字、および、「-」(半角マイナス)、「_」(半角アンダーライン) で構成される文字列が利用できます。ただし、「__」(半角アンダーライン 2 文字)ではじまる文字列は、 音声認識エンジン側で予約されていますので、「__」(半角アンダーライン 2 文字)ではじまる文字列は指定しないようにしてください。
プロファイルの利用方法
次回のリクエスト時には、profileId
だけを指定することで登録した単語を有効にできます。「:」(半角コロン)に続けて、プロファイル名を設定してください。profileId の先頭に「:」をつけなくても動作しますが、認識精度が低下する場合があります。
先程単語を登録したtestというプロファイルを指定して音声認識セッションを行うにはprofileId
に以下のように設定します。
grammarFileNames=-a-general profileId=:test
- プロファイルに単語を保存するための接続では、profileId の先頭に「:」(半角コロン)を付けないでください。先頭に半角コロンを付けると、そのプロファイルに単語が保存されません。
マイページの単語登録の利用方法
マイページの単語登録機能を使って登録した単語は、profileId
がサービスIDのプロファイルに保存されています。
例えば、サービス ID が「user01」の場合は、以下のように指定すると、マイページで「会話_汎用エンジン」(-a-general
)に登録した単語を有効にできます。
grammarFileNames=-a-general profileId=:user01
マイページでの単語登録の方法については、マイページでの単語登録を参照してください。
プロファイルの登録単語の修正、追加
profileId
とprofileWords
を指定してプロファイルに単語を保存する場合、ひとつだけ後から単語を追記できません。以前に登録したすべての単語も合わせて再度profileWords
に指定してください。
プロファイルの登録単語の削除方法
登録した単語を削除したい場合、profileId
を指定したうえで、profileWords
に半角スペース 1 個を指定してください。
ヒント
登録する単語はプロファイルごとに1,000個を目安にしてください。マイページで登録できる「マイ単語帳」では1,000個を上限にしています。
エンジンごとに語彙が決まっており、その語彙に含まれない単語は絶対に認識されません。1,000個を超えてしまっても、単語登録しておくほうが良い場合もあります。ただし、新たに追加した単語が、発音の似た他の単語と誤って認識されてしまう可能性が生じます。多くの単語を登録することによって、こういった誤りを増やしてしまい、かえって認識精度を下げてしまう場合があることに注意してください。
一般的な注意として以下に気をつけてください。
- 話されることのないであろう単語を、念の為にといった理由で追加しない
- 対応するクラスがある場合は、クラスを指定して単語登録する
- 音節が少ない単語は誤って認識されやすいので特に注意する
AmiVoice Tech Blogの単語登録のコツも参照してください。