APIコンソール
APIコンソールとは、APIを簡単に試すことができるページです。アプリケーションの登録が不要で、ログインするだけで使うことができます。
ここでは、Web API形式に対応した「画像認識」「発話理解」「音声合成」「文字認識」「雑談対話」「トレンド記事抽出」「抽出知識Q&A」「環境センサー」のAPIが利用できます。
発話理解
では、実際にNTTドコモのサービスと同等の機能が体感できるAPI、「発話理解」と「音声合成」を試してみましょう。
左のメニューから発話理解APIを選択すると、次のような画面になります。
発話理解APIでは、テキストの文脈を解析して、その意図に沿った機能名を返します。
APIコンソールの初期画面で、すでにAPIキーと、発話理解APIの引数となるサンプルのテキストがセットされています。
HTTPリクエストボディというタブをクリックすると、どのようなリクエストを行うかが表示されます。
ここでは表示だけでなく、直接編集することもできます。デフォルトの「山田さんに電話して」という文字列を変更してみましょう。
「大阪から東京に行きたい」と変更して、実行ボタンをクリックします。すると、NTTドコモのサーバにリクエストが送られ、しばらくするとHTTPレスポンスが返ってきます。
ページには実行結果として、HTTPヘッダとボディが表示されます。HTTPボディには、次のようなJSON文字列が格納されています。
{ "projectKey": "OSU", "appInfo": { "appName": "hoge_app", "appKey": "hoge_app01" }, "clientVer": "1.0.0", "dialogMode": "off", "language": "ja", "userId": "12 123456 123456 0", "userUtterance": { "utteranceText": "大阪から東京に行きたい", "utteranceRevised": "大阪から東京に行きたい", "utteranceWord": [ "大阪", "から", "東京", "に", "行き", "たい" ] }, "dialogStatus": { "command": { "commandId": "BT00101", "commandName": "乗換案内" }, "slotStatus": [ { "slotName": "stationTo", "slotValue": "東京", "valueType": "station" }, { "slotName": "stationFrom", "slotValue": "大阪", "valueType": "stationFrom" } ] }, "taskIdList": [ "BT00101", "BT00201", "BT00901", "SE00101" ], "extractedWords": [ { "wordsValue": "大阪", "wordsType": [ "stationFrom", "upoi", "snoun" ] }, { "wordsValue": "東京", "wordsType": [ "station", "upoi", "snoun" ] }, { "wordsValue": "大阪から東京に行きたい", "wordsType": [ "inputText" ] } ], "serverSendTime": "2014-11-01 12:05:53" }
いろいろな情報が返されるのですが、このAPIで重要なものは次の5つです。
キー | 概要 | 値の例 |
---|---|---|
commandId | 機能ごとのID | BT00101 |
commandName | 機能ごとの名称 | 乗換案内 |
slotName | 機能ごとに設定されたスロット名称 | stationTo |
slotValue | スロットに格納された単語 | 東京 |
valueType | 単語のタイプ | station |
ここでのスロット(slot)とは、機能ごとに設定された単語のひとまとまりのことです。例えば、乗換案内には、stationFrom(乗車駅)とstationTo(降車駅)という名前のスロットがあります。slotValueは実際にスロットに格納された単語で、valueTypeは単語のタイプを意味します。
なお、返却されるキーの詳細については、別途APIごとの機能別リファレンスページに記載されていますので、それを参照してください。
utteranceWordキーの値(ユーザ発話ワードリスト)には、入力文を形態素(意味を持つ最小の言語単位)に分割した情報が格納されますので、簡易な形態素解析機能として活用することもできます。