HTTP Service

この項では音声認識の HTTP API について述べます。

接続情報

URL: https://service.mimi.fd.ai

概要

音声認識 の HTTP API では、以下のサービスが利用できます。

  • mimi ASR: 日本語音声認識
  • mimi ASR powered by NICT: 多言語音声認識 ( NICT )
  • Google™ Cloud Speech-to-Text: 多言語音声認識( Google API 連携 ※ 別途契約が必要

リクエストのパラメータは HTTP リクエストヘッダとして送ってください。

音声認識 API の実行結果(=応答)は、JSON 形式で受け取ることができます。
そのJSON形式の応答の構成、認識結果は、利用するサービスによって異なります。

詳しくは後述の "API Reference" および "応答例" を参照ください。

HTTP API で 音声認識を行う場合、WebSocket API と異なり、指定の音声データの認識処理をすべて終えたあとで認識結果が得られます。認識処理の途中経過のテキストをリアルタイムで取得することはできません。そのため、HTTP で mimi ASR powered by NICT を利用する際には 途中結果 を取得しないようにパラメータを指定する必要があります。詳細については API Reference 音声認識( mimi ASR powered by NICT )を行う を参照ください。

認証

HTTP APIサービスをご利用の際には実行したいサービスに対応するスコープ( スコープ一覧 )を指定して発行したアクセストークンが必要です。
mimi API Console 画面からの操作で取得するには 1. トークンの取得 を参照ください。
API の実行で取得するには 認証/認可操作 を参照ください。

クエリ文字列でのリクエスト

ブラウザ上で WebSocket API を利用する場合等、 HTTP ヘッダを使った実行時設定の指定ができない場合は、 HTTP ヘッダの代わりにクエリ文字列を使って実行時設定を指定することができます。
クエリ文字列による HTTP ヘッダの代替 の記述を参照ください。

音声認識結果について

mimi ASR powered by NICT の応答フォーマット

mimi ASR powered by NICT 利用時にはオプションで応答フォーマットを指定できます。

音声認識 Http API で mimi ASR powered by NICT を利用する場合、WebSocket API と異なり、指定の音声データの認識処理をすべて終えたあとで認識結果が得られます。

リクエスト時のフォーマット指定の詳細については 音声認識( mimi ASR powered by NICT API )を行う を参照ください。
当ドキュメントでは、mimi ASR powered by NICT v1 を 単に NICT、mimi ASR powered by NICT v2 を NICT v2 と記載することがあります。

  • v1 または フォーマット指定なし:
    認識処理経過の応答はなく、認識処理完了時に1回応答が得られる。

  • v2:
    必要なパラメータ値が設定された場合、認識処理経過に複数回、完了時に1回応答が得られる。
    ※ Http API 利用時には認識処理経の途中経過のテキストをリアルタイムで取得することはできません。

API Reference

音声認識 API の詳細な情報については、API Reference を参照ください。

実行

以下は cURL を利用した HTTP サービスの利用例です。

実行例

curl -X POST https://service.mimi.fd.ai \
-H "Content-Type: audio/x-pcm;bit=16;rate=16000;channels=1" \
-H "x-mimi-process:asr" \
-H "x-mimi-input-language:ja" \
-H "Authorization: Bearer <accessToken>" \
--data-binary @/path/to/audio.raw
curl -X POST https://service.mimi.fd.ai \
-H "Content-Type: audio/x-pcm;bit=16;rate=16000;channels=1" \
-H "x-mimi-process:nict-asr" \
-H "x-mimi-input-language:ja" \
-H "x-mimi-nict-asr-options: response_format=v2;progressive=false" \
-H "Authorization: Bearer <accessToken>" \
--data-binary @/path/to/audio.raw
curl -X POST https://service.mimi.fd.ai \
-H "Content-Type: audio/x-pcm;bit=16;rate=16000;channels=1" \
-H "x-mimi-process:nict-asr" \
-H "x-mimi-input-language:ja" \
-H "Authorization: Bearer <accessToken>" \
--data-binary @/path/to/audio.raw

応答例

以下は、mimi ASRと mimi ASR powered by NICT それぞれの応答例とその構成内容についての簡易な説明です。応答結果の詳細については "API Reference" を参照してください。

# レスポンス内容の要素
#   "response" : 認識結果配列,
#       "pronouciation" : 発話テキストの発音(よみ)
#       "result" :  発話テキスト
#       "time" : 発話開始と発話終了のミリ秒数(音声データの開始から起算)の配列
#   "session_id" : セッションID
#   "status" : 音声認識結果のステータス
#   "type" : 音声認識の型
  
{ "response" :
  [
    { 
     "pronunciation" : "ローニャク",
     "result" : "老若",
     "time" : [ 650, 1430 ]
    }, {
      "pronunciation" : "ナンニョ",
      "result" : "男女", 
      "time" : [ 1430, 1950 ] 
    }, {
      "pronunciation" : "ガ",
      "result" : "が", 
      "time" : [ 1950, 2100 ]
    }, {
      "pronunciation" : "ヒ", 
      "result" : "火", 
      "time" : [ 2100, 2410 ]
    }, { 
      "pronunciation" : "ヲ",
      "result" : "を", 
      "time" : [ 2410, 2520 ]
    }, {
      "pronunciation" : "カコン",
      "result" : "囲ん", 
      "time" : [ 2520, 3060 ]
    }, {
      "pronunciation" : "デ", 
      "result" : "で", 
      "time" : [ 3060, 3210 ]
    }, { 
      "pronunciation" : "ノミ",
      "result" : "のみ", 
      "time" : [ 3240, 3560 ]
    }, { 
      "pronunciation" : "テ",
      "result" : "手", 
      "time" : [ 3690, 3890 ]
    }, {
      "pronunciation" : "ヲ",
      "result" : "を", 
      "time" : [ 3890, 4020 ]
    }, {
      "pronunciation" : "ツナイ", 
      "result" : "つない",
      "time" : [ 4020, 4530 ] 
    }, {
      "pronunciation" : "デ", 
      "result" : "で",
      "time" : [ 4530, 4790 ]
    }, {
      "pronunciation" : "ウタウ", 
      "result" : "歌う", 
      "time" : [ 4790, 5180 ]
    } 
  ],
  "session_id" : "d2ba5a54-e5ac-11e9-abfd-42010a9200a5",
  "status" : "recog-finished",
  "type" : "asr#mimilvcsr"
}
# 応答 JSON の要素
#   "response" : 応答配列(認識結果は配列で返されます),
#       "result" :  認識結果のテキスト
#       "determined" : 確定した結果かどうか
#       "time" : 該当応答の発話中における開始時刻刻(ミリ秒)
#   "session_id" : セッションID
#   "status" : 音声認識のステータス
#   "type" : 音声認識の型
#
# 以下の一連のJSONは、カスタムヘッダにて以下を指定した場合のサンプルで、各JSONは逐次返却されます。
# x-mimi-nict-asr-options: response_format=v2;progressive=false

{
    "type": "asr#nictlvcsr2",
    "session_id": "2f4e85aa-a923-4cdf-b85f-7726d2886092",
    "status": "recog-finished",
    "response": [
        {
            "result": "ちょっと遅い昼食をとるた めファミリーレストランに入ったのです。",
            "words": [
                "ちょっと",
                "遅い",
                "昼食",
                "を",
                "とる",
                "ため",
                "ファミリーレストラン",
                "に",
                "入っ",
                "た",
                "の",
                "です"
            ],
            "determined": true,
            "time": 0
        }
    ]
}
# 応答内容の要素
#   "type" : 音声認識の型
#   "session_id" : セッションID
#   "status" : 音声認識結果のステータス
#   "response" : 認識結果配列
#       "result" : 発話テキスト | 発話テキストの発音(よみ)| ...(パイプ区切りの情報)

{
  "type": "asr#nictlvcsr",
  "session_id": "9505c4f0-e5a7-11e9-8adc-42010a9200a9",
  "status": "recog-finished",
  "response": [
    {
      "result": "老若男女|ロウニャクナンニョ|老若男女|名詞-一般||||"
    },
    {
      "result": "が|ガ|が|助詞-格助詞-一般||||"
    },
    {
      "result": "火|ヒ|火|名詞-一般||||"
    },
    {
      "result": "を|ヲ|を|助詞-格助詞-一般||||"
    },
    {
      "result": "囲ん|カコン|囲む|動詞-自立|五段・マ行|連用タ接続||"
    },
    {
      "result": "で|デ|で|助詞-接続助詞||||"
    },
    {
      "result": "のみ|ノミ|のみ|助詞-副助詞||||"
    },
    {
      "result": "手|テ|手|名詞-一般||||"
    },
    {
      "result": "を|ヲ|を|助詞-格助詞-一般||||"
    },
    {
      "result": "つない|ツナイ|つなぐ|動詞-自立|五段・ガ行|連用タ接続||"
    },
    {
      "result": "で|デ|で|助詞-接続助詞||||"
    },
    {
      "result": "歌う|ウタウ|歌う|動詞-自立|五段・ワ行促音便|基本形||"
    },
    {
      "result": "|||SENT-START-END||||"
    },
    {
      "result": "|||UTT-END||||"
    }
  ]
}