HTTP Service

この項では言語識別の HTTP API について述べます。

📘

当ページでは、2023年6月22日に更新した LID の仕様について説明しています

従来の LID の仕様を確認する場合はこちら(旧ドキュメント)を参照ください。

接続情報

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

概要

言語識別の HTTP API では、 以下のサービスが利用できます。

  • 言語識別と同時に音声認識を行う
  • 言語識別のみを行う

どのサービスをどのように利用するかを、言語識別要求時のパラメータとして HTTP リクエストヘッダで送ります。

言語識別にあわせて別のサービス(音声認識、話者識別)を利用する場合は、各サービスのドキュメントを事前に参照ください。

言語識別サービスをご利用の際に指定できるサービスの種類とその指定ルールについては、サービス対応表 を参照ください。

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

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

HTTP API で言語識別を行う場合、WebSocket API と異なり、指定の音声データの認識処理をすべて終えたあとで 最終結果のみが得られます。

📘

ポイント

言語識別と同時に音声認識を行う場合( mimi が定義するカスタム HTTP ヘッダ x-mimi-processlidasr を指定する場合)音声認識サービスに mimi ASR powered by NICT を使用します。

認証

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

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

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

API Reference

言語識別 API の詳細な情報については、API Reference 言語識別を行う を参照ください。

〜 言語識別とあわせて音声認識を利用する場合 〜
音声認識 API の詳細な情報については、API Reference 音声認識( mimi ASR powered by NICT API )を行う を参照ください。

実行

以下は cURL を使用した HTTPサービスの利用例です。
詳細については "API Reference" を参照ください。

実行例(lidasr)

リクエストヘッダ x-mimi-process にて lidasr を指定することで言語識別と音声認識を利用することができます。
下記のタブ切り替えで lidasr(言語指定なし) 、lidasr(言語指定あり)の実行例を確認できます。

curl -X POST https://service.mimi.fd.ai \
-H "Content-Type: audio/x-pcm;bit=16;rate=16000;channels=1" \
-H "x-mimi-process:lidasr" \
-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:lidasr" \
-H "x-mimi-lid-options:lang=ja|en|zh|ko|vi|th|id|my|es|fr|pt-BR|fil" \
-H "Authorization: Bearer <accessToken>" \
--data-binary @/path/to/audio.raw

応答例(lidasr)

入力された音声で発話された言語が何語かを識別し、最も信頼度の高い言語で音声認識を行った上で、言語識別・音声認識双方の結果を返却します。

識別範囲はリクエスト時の x-mimi-lid-options の指定によって異なります。未指定の場合は、デフォルト 4 言語における言語識別を行い「mimi LID lidasr(言語指定なし)」のようなレスポンスとなります。最大 12 言語の指定が可能であるため、x-mimi-lid-options:lang=ja|en|zh|ko|vi|th|id|my|es|fr|pt-BR|fil と指定した場合は「mimi LID lidasr(言語指定あり)」のように 12 言語における信頼度を返します。

# 応答 JSON の要素
#   "type" : 音声認識の型
#   "session_id" : セッションID
#   "status" : 言語識別/音声認識のステータス
#   "response" : 応答配列
#       "asr" : 音声認識応答配列(認識結果は配列で返されます)
#           "result" : 認識結果のテキスト | 認識結果のテキストの発音| ...(パイプ区切りの情報)
#       "lid" : 言語識別応答配列(識別結果は "score" の高い言語順に配列で返されます)
#           "lang" : 言語コード 
#           "score" : 信頼度


# 言語識別応答の信頼度 "score" が最も高かった言語での音声認識結果を併せて "status": "recog-finished" 返却
{
    "type": "lidasr#ja|en|zh|ko",
    "session_id": "93616107-9303-499c-a749-9830af7f9451",
    "status": "recog-finished",
    "response": {
        "asr": [
            {
                "result": "とりあえず|トリアエズ|とりあえず|副詞-助詞類接続||||"
            },
            {
                "result": "腹ごしらえ|ハラゴシラエ|腹ごしらえ|名詞-一般||||"
            },
            {
                "result": "|||SENT-START-END||||"
            },
            {
                "result": "|||UTT-END||||"
            }
        ],
        "lid": [
            {
                "lang": "ja",
                "score": 0.98821
            },
            {
                "lang": "ko",
                "score": 0.011315
            },
            {
                "lang": "zh",
                "score": 0.000349
            },
            {
                "lang": "en",
                "score": 0.000125
            }
        ]
    }
}
# 応答 JSON の要素
#   "type" : 音声認識の型
#   "session_id" : セッションID
#   "status" : 言語識別/音声認識のステータス
#   "response" : 応答配列
#       "asr" : 音声認識応答配列(認識結果は配列で返されます)
#           "result" : 認識結果のテキスト | 認識結果のテキストの発音| ...(パイプ区切りの情報)
#       "lid" : 言語識別応答配列(識別結果は "score" の高い言語順に配列で返されます)
#           "lang" : 言語コード 
#           "score" : 信頼度


# 言語識別応答の信頼度 "score" が最も高かった言語での音声認識結果を併せて "status": "recog-finished" 返却
{
    "type": "lidasr#ja|en|zh|ko|vi|th|id|my|es|fr|pt-BR|fil",
    "session_id": "93616107-9303-499c-a749-9830af7f9451",
    "status": "recog-finished",
    "response": {
        "asr": [
            {
                "result": "とりあえず|トリアエズ|とりあえず|副詞-助詞類接続||||"
            },
            {
                "result": "腹ごしらえ|ハラゴシラエ|腹ごしらえ|名詞-一般||||"
            },
            {
                "result": "|||SENT-START-END||||"
            },
            {
                "result": "|||UTT-END||||"
            }
        ],
        "lid": [
            {
                "lang": "ja",
                "score": 0.943168
            },  
            {  
                "lang": "ko",
                "score": 0.029825
            },  
            {  
                "lang": "en",
                "score": 0.013436
            },  
            {  
                "lang": "vi",
                "score": 0.00356
            },  
            {  
                "lang": "es",
                "score": 0.00345
            },  
            {  
                "lang": "zh",
                "score": 0.002738
            },  
            {  
                "lang": "id",
                "score": 0.001584
            },  
            {  
                "lang": "my",
                "score": 0.001268
            },  
            {  
                "lang": "fr",
                "score": 0.000646
            },  
            {  
                "lang": "pt-BR",
                "score": 0.000154
            },  
            {  
                "lang": "th",
                "score": 0.00015
            },  
            {  
                "lang": "fil",
                "score": 2.1e-05
            }
        ]
    }
}

実行例(lid)

リクエストヘッダ x-mimi-process にて lid を指定することで言語識別のみを実行します。 lidasr とは異なり、音声認識を実行しません。 入力された音声で発話されている言語が何語かを識別し、その結果だけを返します。

curl -X POST https://service.mimi.fd.ai \
-H "Content-Type: audio/x-pcm;bit=16;rate=16000;channels=1" \
-H "x-mimi-process:lid" \
-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:lid" \
-H "x-mimi-lid-options:lang=ja|en|zh|ko|vi|th|id|my|es|fr|pt-BR|fil" \
-H "Authorization: Bearer <accessToken>" \
--data-binary @/path/to/audio.raw

応答例(lid)

リクエストヘッダ x-mimi-lid-options の指定を元に、入力された音声で発話された言語が何語かを識別し、各言語の信頼度を返します。

識別範囲はリクエスト時の x-mimi-lid-options の指定によって異なります。未指定の場合は、デフォルト 4 言語における言語識別を行い「mimi LID lidasr(言語指定なし)」のようなレスポンスとなります。最大 12 言語の指定が可能であるため、x-mimi-lid-options:lang=lang=ja|en|zh|ko|vi|th|id|my|es|fr|pt-BR|fil と指定した場合は「mimi LID lidasr(言語指定あり)」のように 12言語における信頼度を返します。

# 応答 JSON の要素
#   "type" : 音声認識の型
#   "session_id" : セッションID
#   "status" : 言語識別/音声認識のステータス
#   "response" : 言語識別応答配列(識別結果は "score" の高い言語順に配列で返されます)
#        "lang" : 言語コード 
#        "score" : 信頼度


{
    "type": "lid#ja|en|zh|ko",
    "session_id": "1e2f5b7b-ea2c-4ff1-9ae9-023a53d0fb52",
    "status": "recog-finished",
    "response": [
        {
            "lang": "ja",
            "score": 0.98821
        },
        {
            "lang": "ko",
            "score": 0.011315
        },
        {
            "lang": "zh",
            "score": 0.000349
        },
        {
            "lang": "en",
            "score": 0.000125
        }
    ]
}
# 応答 JSON の要素
#   "type" : 音声認識の型
#   "session_id" : セッションID
#   "status" : 言語識別/音声認識のステータス
#   "response" : 言語識別応答配列(識別結果は "score" の高い言語順に配列で返されます)
#        "lang" : 言語コード 
#        "score" : 信頼度


{
    "type": "lid#ja|en|zh|ko|vi|th|id|my|es|fr|pt-BR|fil",
    "session_id": "1e2f5b7b-ea2c-4ff1-9ae9-023a53d0fb52",
    "status": "recog-finished",
    "response": [
        {
            "lang": "ja",
            "score": 0.943168
        },
        {
            "lang": "ko",
            "score": 0.029825
        },
        {
            "lang": "en",
            "score": 0.013436
        },
        {
            "lang": "vi",
            "score": 0.00356
        },
        {
            "lang": "es",
            "score": 0.00345
        },
        {
            "lang": "zh",
            "score": 0.002738
        },
        {
            "lang": "id",
            "score": 0.001584
        },
        {
            "lang": "my",
            "score": 0.001268
        },
        {
            "lang": "fr",
            "score": 0.000646
        },
        {
            "lang": "pt-BR",
            "score": 0.000154
        },
        {
            "lang": "th",
            "score": 0.00015
        },
        {
            "lang": "fil",
            "score": 2.1e-05
        }
    ]
}