WebSocket Service

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

接続情報

URL: wss://lid.mimi.fd.ai/v1/identify

概要

言語識別の WebSocket API では言語識別サービスが利用できます。

言語識別サービス API のプロトコルは HTTP および WebSocket です。

mimi の WebSocket API サービス利用について詳しくは mimi WebSocket API サービス を参照ください。

実行結果は JSON 形式で返されます。JSON 形式の応答の構成は、利用するサービスによって異なります。

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

認証

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

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

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

API Reference

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

実行

以下は mimi.example.python の mimi LID サンプルスクリプト lid_stream_file.py を使用した WebSocket サービスの利用例です。

実行例

下記のタブ切り替えで lid(言語指定なし)、lid(言語指定あり)の実行例を確認できます。

入力された音声で発話されている言語が何語かを識別し、その結果だけを返します。

python3 lid_stream_file.py token.txt audio.raw
python3 lid_stream_file.py token.txt audio.raw --lid-options "lang=ja|en|zh|ko|vi|th|id|my|es|fr|pt-BR|fil"

応答例

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

対象言語はリクエスト時の x-mimi-lid-options(lid_stream_file.py では --lid-options オプション)の指定によって異なります。未指定の場合は、デフォルト 4 言語における言語識別を行います。最大 12 言語の指定が可能であるため、x-mimi-lid-options:lang=ja|en|zh|ko|vi|th|id|my|es|fr|pt-BR|fil と指定した場合は 12 言語における信頼度を返します。応答結果の詳細については "API Reference" を参照してください。

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

# 言語識別ができたタイミングで途中結果( "status": "recog-in-progress" )が返ります。
{
    "type": "lid#ja|en|zh|ko",
    "session_id": "1e2f5b7b-ea2c-4ff1-9ae9-023a53d0fb52",
    "status": "recog-in-progress",
    "response": [
        {
            "lang": "ja",
            "score": 0.98821
        },
        {
            "lang": "ko",
            "score": 0.011315
        },
        {
            "lang": "zh",
            "score": 0.000349
        },
        {
            "lang": "en",
            "score": 0.000125
        }
    ]
}

# 言語識別完了のタイミングで最終結果( "status": "recog-finished" )が返ります。
# ("response" : 言語識別応答配列 は先行して返した途中結果と同様の結果を返します)
{
    "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" : 信頼度

# 言語識別ができたタイミングで途中結果( "status": "recog-in-progress" )が返ります。
{
    "type": "lid#ja|en|zh|ko|vi|th|id|my|es|fr|pt-BR|fil",
    "session_id": "1e2f5b7b-ea2c-4ff1-9ae9-023a53d0fb52",
    "status": "recog-in-progress",
    "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
        }
    ]
}

# 言語識別完了のタイミングで最終結果( "status": "recog-finished" )が返ります。
# ("response" : 言語識別応答配列 は先行して返した途中結果 と同様の結果になります。)
{
    "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
        }
    ]
}