ユーザー単語登録API
ユーザー単語登録APIを使うことで、登録単語を任意のプロファイルに保存することができます。例えば、アプリケーションでは、エンドユーザごとにプロファイルを切り替えることでユーザーごとの単語登録機能を実装することができます。
クライアントアプリケーションの役割
一般にクライアントアプリケーションは以下のような実装を行うことを想定しています。
- エンドユーザ毎に表記、読み、クラスのセットをデータベースなどに保存します。
- データに更新があった場合、ユーザー単語登録APIを使ってプロファイルを更新します。
- 音声認識のリクエストを行うときにプロファイル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": []
}