同期HTTP音声認識APIとの違い - AmiVoice Cloud Platform

◆同期HTTP音声認識APIとの違い

非同期HTTP音声認識APIと同期HTTP音声認識APIとの違いについて説明します。

プラン選択

ログ無しプランだけを利用する予定でも、マイページで、必ずログ有りプランも有効にしておく必要があります。

ログ無しの指定方法

データロギングをオプトアウトするには、dパラメータにloggingOptOut=Trueを指定します。デフォルトではログありとなります。

例えば、curlコマンドでログなしの音声認識のリクエストを送るには以下のようにします。

curl -X POST -F a=@test.wav 'https://acp-api-async.amivoice.com/v1/recognitions?d=grammarFileNames=-a-general loggingOptOut=False&u={APP_KEY}'

ユーザ定義ID

ユーザがジョブをトラックするために、任意のIDをリクエスト時にdパラメータに含めることができます。リクエストにcontentIdを指定すると、ジョブの状態や結果にもそのIDが含まれるようになります。

例えば、curlコマンドでログなしの音声認識のリクエストを送るには以下のようにします。

curl -X POST -F a=@test.wav 'https://acp-api-async.amivoice.com/v1/recognitions?d=grammarFileNames=-a-general contentId=123&u={APP_KEY}'

ジョブの状態には以下のようにcontent_idが含まれます。

{"content_id":"12345","service_id":"{YOUR_SERVICE_ID}","session_id":"017c2f686c4f0a304474a07e","status":"queued"}

結果フォーマット

1. ジョブに関する情報の追加

非同期APIのジョブの状態などの項目、service_idsession_idstatusaudio_sizeaudio_md5content_id、が追加されます。

2. 発話情報の追加

音声認識の結果が発話ごとにグループ化されます。同期HTTP音声認識APIでは、音声認識の結果はresults要素として発話をまとめて返しています。一方、非同期HTTP音声認識APIでは、segmentsの下に発話単位ごとのresultsが配置されます。

発話の開始や、発話の終了の時間情報は、Web Socket APIでは取得することができますが、同期HTTP APIでは取得できません。Web Socket APIを使って巨大なファイルを処理しているユーザが、非同期HTTP音声認識APIに移行できるように、標準のフォーマットをWeb Socket APIのほうに合わせています。

同期HTTP音声認識APIと同様にトップレベルにresultsを得るには、dパラメータにcompatibleWithSync=Trueを指定します。


同期 HTTP APIと非同期 HTTP APIのそれぞれの音声認識結果が含まれるレスポンスの例は以下のようになります。

同期HTTP音声認識APIの結果の構造

{
    "results": {
        "startime": 発話開始時間,
        "endtime": 発話終了時間,
        "tokens": [{単語単位の結果1},...,{単語単位の結果N}]
    },
    "text": "...",
    "code": "...",
    "message": "..."
    "utteranceid": "..."
}

非同期HTTP音声認識APIの結果の構造

{
    "segments": {
        "results": {
            "startime": 発話開始時間,
            "endtime": 発話終了時間,
            "tokens": [{単語単位の結果1},...]
        },
        "results": {
            "startime": 発話開始時間,
            "endtime": 発話終了時間,
            "tokens": [...]
        },
        "results": {
            "startime": 発話開始時間,
            "endtime": 発話終了時間,
            "tokens": [...,{単語単位の結果N}]
        },
    },
    "text": "...",
    "code": "...",
    "message": "...",
    "utteranceid": "...",
    ... (非同期HTTP音声認識APIで追加された項目) ...
}

3. ユニコードエスケープ

非同期HTTP音声認識APIは、認識結果に含まれる日本語のテキストをユニコードエスケープせず、UTF8のテキストとして出力します。

ユニコードエスケープされた結果:

"text":"\u30a2\u30c9\u30d0\u30f3\u30b9\u30c8\u30fb\u30e1\u30c7\u30a3\u30a2\u306f\u3001\u4eba\u3068\u6a5f\u68b0\u3068\u306e\u81ea\u7136\u306a\u30b3\u30df\u30e5\u30cb\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u5b9f\u73fe\u3057\u3001\u8c4a\u304b\u306a\u672a\u6765\u3092\u5275\u9020\u3057\u3066\u3044\u304f\u3053\u3068\u3092\u76ee\u6307\u3057\u307e\u3059\u3002"

ユニコードエスケープされていない結果:

"text": "アドバンスト・メディアは、人と機械等の自然なコミュニケーションを実現し、豊かな未来を創造していくことを目指します。"