メインコンテンツまでスキップ

単語登録の構成要素

単語登録に際しては、その単語の「表記」、「読み」、「クラス」を指定することができ、このうち「表記」「読み」は必須項目です。以下にそれぞれの構成要素について説明します。

項目
説明
必須
表記その単語が発話されたときに、音声認識の結果として得られる文字列です。AmiVoice
読みその単語がどのように発音されるかを表す情報です。各言語ごとに読みを記述する方法が異なります。あみぼいす
クラス単語のカテゴリーやタイプを指定するための分類です。この分類により、音声認識システムは同じ発音でも異なる文脈で使用される単語を区別することができます。クラスはエンジンごとに定義されており、API利用者がクラスを追加することはできません。固有名詞
注記

英語エンジンは、単語登録に対応していません。

単語登録の概要

例えば「パレオパラドキシア」という単語が認識されないので単語登録をしたいとします。この場合、以下のように表記と読みのペアを登録します。表記と読みは半角スペースで区切ります。クラスも設定する場合は、クラスの設定方法を参照してください。

パレオパラドキシア ぱれおぱらどきしあ
備考

同一表記に複数の読みの設定

ひとつの表記に対して、複数の読みを設定できます。

例えば「あみ」や「アドバンストメディア」という読みに対して「AMI」という表記を設定できます。

AMI あみ
AMI あどばんすとめでぃあ

複数表記に同一の読みの設定

複数の異なる表記に対して、同じ読みを設定できます。エラーにはなりませんが、どちらの表記が選ばれるかは不定です。敢えて設定することはお勧めしません

例えば「あみ」という読みに対して「AMI」と「AmiVoice」という表記を設定できます。

AMI あみ
AmiVoice あみ

表記

「表記」は発話された音声に対して出力させたい文字列のことです。

表記に使える特別な文字

表記に使える文字には、特別な働きをする記号があります。

文字
文字名
説明
_半角下線音声認識結果で半角スペースとして出力される記号
注記

音声認識結果として半角下線(_)を出力することはできません。

表記に登録できない文字

表記には以下の文字を含む文字列は登録できません。

文字
文字名
|半角パイプ
半角スペース
:半角コロン
ヒント

登録する表記に半角スペースを使用することはできませんが、表記に半角下線(_)を使用して単語登録すると、音声認識結果では半角スペースとして出力されます。

例えば、「あみ」と発話して「Advanced Media」を出力させたい場合、「Advanced_Media あみ」と単語登録してください。

Advanced_Media あみ

読み

「読み」はその単語の読み方(発話のしかた)のことです。

言語ごとの読みの記述の方法

読みは言語ごとに記述方法が異なります。以下に各言語の記述方法を説明します。

日本語

日本語の場合、ひらがな、または、カタカナで記述します。

中国語

中国語の場合、声調を数字で表したピンインで記述します。例えば、「我们」は「wo3men5」と記述してください。

我们 wo3men5

韓国語

韓国語の場合、ハングルで記述します。

読みに使える特別な文字

読みに使える文字には、特別な働きをする記号があります。以下にそれぞれの言語で使える特別な文字を示します。

日本語

文字
文字名
説明
.半角ピリオド音節区切り、長音化抑止のための記号
_半角下線無音を表す記号
ヒント
  • AmiVoice Tech Blogで、これらの読みに使える特別な文字の半角ピリオドの使い方について解説しています。詳細は以下を参照してください。
    【中級者向け】AmiVoice の単語の読みの自動変換について

  • 半角下線(_)を使用することで、単語の途中に多少の無音が挟まる場合でも、一続きの単語として認識されやすくなります。
    例えば、「AmiVoice青果店 あみぼいす_せいかてん」と単語登録すると、「あみぼいす」と「せいかてん」の間で一瞬声を区切っても、「AmiVoice青果店」と認識されやすくなります。

AmiVoice青果店 あみぼいす_せいかてん

中国語・韓国語

文字
文字名
説明
_半角下線無音を表す記号

クラス

AmiVoice APIでは、単語のカテゴリーやタイプを指定するための分類をクラスと呼びます。クラスにより、音声認識システムは同じ発音でも異なる文脈で使用される単語を区別することができます。クラスは音声認識エンジンごとに定義されており、例えば「会話_汎用エンジン」(-a-general)の場合は以下のクラスが定義されています。詳細は音声認識エンジンの日本語の言語モデルのクラス名一覧を参照してください。

  • 固有名詞
  • 名前
  • 名前(名)
  • 駅名
  • 地名
  • 会社名
  • 部署名
  • 役職名
  • 記号
  • 括弧開き
  • 括弧閉じ
  • 元号
注記
  • 「会話_汎用エンジン」のクラスの名前は人名の苗字を、名前(名)は人名のファーストネームを表しています。
  • 存在しないクラス名が指定された場合は、クラス名が指定されなかったものとして扱われます。

例えばある単語を「名前」クラスに指定すると、その単語は人名が話される文脈で認識されやすくなります。逆に人名が話される文脈以外では認識されにくくなり、同じ発音でも異なる文脈で誤って湧き出してしまう問題を減らすことができます。もし登録しようとしている単語に当てはまるクラスがある場合は、なるべくクラスを設定してください。

ヒント

人名をフルネームで単語登録しても上手く認識されない場合、以下のような対応策があります。

  1. 人名を「姓」と「名」に分け、それぞれ名前クラス、名前(名)クラスに登録する。
    この場合、発話の姓と名の間に無音やフィラーが挟まっても認識されやすくなります。一方、同音異字の人名を他にも登録する場合は、誤認識されやすくなります。(たとえば名前クラスに「山田」を、名前(名)クラスに「たろう」という読みで「太郎」と「太朗」をそれぞれ登録すると、「やまだたろう」と発話して「山田太郎」と認識してほしい場合に、「山田太朗」と認識される可能性もあります)

  2. 読みの「姓」と「名」の間に無音を表す記号の半角下線(_)を入れる。
    この場合、姓と名の間に多少の無音が挟まっても認識されやすくなります。一方、姓と名の間にフィラーが挟まる場合は正しく認識されません。

クラスの設定方法

クラスは「表記」「読み」に続けて指定します。例えば、「アソーク駅」という駅名が認識しないとします。クラス名として駅名を指定する場合、以下のように半角スペースに続けて記述します。

アソーク駅 あそーくえき 駅名