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

ユーザー単語登録API

ユーザー単語登録APIを使うことで、登録単語を任意のプロファイルに保存することができます。例えば、アプリケーションでは、エンドユーザごとにプロファイルを切り替えることでユーザーごとの単語登録機能を実装することができます。

クライアントアプリケーションの役割

一般にクライアントアプリケーションは以下のような実装を行うことを想定しています。

  1. エンドユーザ毎に表記、読み、クラスのセットをデータベースなどに保存します。
  2. データに更新があった場合、ユーザー単語登録APIを使ってプロファイルを更新します。
  3. 音声認識のリクエストを行うときにプロファイルIDを指定します。
注記

できるだけプロファイルをマスターデータとせずにクライアントアプリケーションでユーザー単語情報保持してバックアップを取ってください。

使い方

APIの詳細はリファレンスを参照してください。以降ではユースケースごとの利用例を示します。

認証

ユーザー単語登録APIは、認証情報としてAPPKEYを指定します。HTTP リクエスト時のAuthorizationヘッダーにBearer {APPKEY}を指定してください。

単語の登録

エンドポイントは以下の通りです。

POST https://acp-api.amivoice.com/profilewords/{接続エンジン名}/{プロファイルID}

パスパラメータの{接続エンジン名}には、-a-generalのような音声認識エンジンを設定します。また、作成したいプロファイルの名前を同じくパスパラメータの{プロファイルID}に指定してください。プロファイルIDに使える文字は「使える文字」を参照してください。

単語登録データは以下のようなJSON形式で指定します。

{
"profilewords": [
{
"written": "表記",
"spoken": "読み"
},
{
"written": "表記",
"spoken": "読み",
"classname": "クラス"
}
, ...
]
}
備考

文字エンコーディングは、以下のいずれかの方法で記述してください

  • UTF-8での直接記述(例:「あ」)
  • Unicodeエスケープシーケンス(例:\u3042)

curlコマンドを使った例を以下に示します。汎用_会話エンジン(-a-general)にtestというプロファイルIDでAmiVoice あみぼいすAOI あおいを登録する例です。

curl -sS https://acp-api.amivoice.com/profilewords/-a-general/test \
-H "Authorization: Bearer {APPKEY}" \
-H "Content-Type: application/json" \
-d '{"profilewords":[{"written":"AmiVoice","spoken":"あみぼいす"},{"written":"AOI","spoken":"あおい"}]}'

レスポンスは以下の様にURLエンコードされたJSON形式です。

{"profilewords":[{"written":"AOI","spoken":"\u3042\u304a\u3044"},{"written":"AmiVoice","spoken":"\u3042\u307f\u307c\u3044\u3059"}]}

jqコマンドや各プログラミング言語のJSONパーサを使って結果を整形すると以下のようになります。

{
"profilewords": [
{
"written": "AOI",
"spoken": "あおい"
},
{
"written": "AmiVoice",
"spoken": "あみぼいす"
}
]
}
備考

単語を追加することはできません。追加するときはすべての単語を設定してください。

登録している単語の取得

エンドポイントは以下の通りで、パスパラメータは単語の登録と同じです。

GET https://acp-api.amivoice.com/profilewords/{接続エンジン名}/{プロファイルID}

curlコマンドを使って、汎用_会話エンジン(-a-general)にtestというプロファイルIDに設定された単語の一覧を取得する例です。

curl -sS https://acp-api.amivoice.com/profilewords/-a-general/test \
-H "Authorization: Bearer {APPKEY}"

レスポンスのUnicodeエスケープされた文字列をデコードして整形すると以下のようになります。

{
"profilewords": [
{
"written": "AOI",
"spoken": "あおい"
},
{
"written": "AmiVoice",
"spoken": "あみぼいす"
}
]
}

クラスの一覧取得

エンドポイントは以下の通りで、パスパラメータは単語の登録のものと同じ意味です。

GET https://acp-api.amivoice.com/classnames/{接続エンジン名}

curlコマンドを使って、指定した汎用_会話エンジン(-a-general)のクラスの一覧は以下のようにして取得できます。

curl -sS https://acp-api.amivoice.com/classnames/-a-general \
-H "Authorization: Bearer {APPKEY}"

レスポンス

{"classnames":["\u56fa\u6709\u540d\u8a5e","\u540d\u524d","\u540d\u524d(\u540d)","\u99c5\u540d","\u5730\u540d","\u4f1a\u793e\u540d","\u90e8\u7f72\u540d","\u5f79\u8077\u540d","\u8a18\u53f7","\u62ec\u5f27\u958b\u304d","\u62ec\u5f27\u9589\u3058","\u5143\u53f7"]}

レスポンスのUnicodeエスケープされた文字列をデコードして整形すると以下のようになります。

{
"classnames": [
"固有名詞",
"名前",
"名前(名)",
"駅名",
"地名",
"会社名",
"部署名",
"役職名",
"記号",
"括弧開き",
"括弧閉じ",
"元号"
]
}

プロファイルから単語の削除

単語をすべて削除するには空の配列を登録します。

curl -sS https://acp-api.amivoice.com/profilewords/-a-general/test \
-H "Authorization: Bearer {APPKEY}" \
-H "Content-Type: application/json" \
-d '{"profilewords": []}'

レスポンスは以下の様にURLエンコードされたJSON形式です。

{
"profilewords": []
}