3. 言語識別

mimi LID のスタートガイドです。 mimi の言語識別サービスを利用できるようになるまでの手順をまとめています。

Step1 : 事前準備

1. アクセストークンの取得

1. トークンの取得を実行して、アクセストークンを取得してください。この際、音声認識サービスが実行できるようスコープの指定を行い、アクセストークンを払い出すよう注意して下さい。

📘

ポイント

言語識別にあわせて音声認識を利用する場合(mimi が定義するカスタム HTTP ヘッダ x-mimi-processlidasr を指定する場合)は、音声認識に mimi ASR powered by NICT を使用します。
そのため、追加で次のスコープの指定も必要です。

  • https://apis.mimi.fd.ai/auth/nict-asr/http-api-service
  • https://apis.mimi.fd.ai/auth/nict-asr/websocket-api-service

2. 言語識別用のサンプルファイルの取得

サンプル音声のページを参考に、適宜サンプル音声を用意ください。

Step2 : 言語識別サービスの実行

アクセストークンを発行したら、言語識別サービスを実行することができます。

以下は、 cURL コマンドを利用したHTTPリクエストの実行例と応答例です。

📘

ポイント

cURL リクエストで 音声ファイルを指定する場合、先頭に@をつけることが必要です。
@ をつけずにリクエスト実行してもファイルが読み込まれないため内容は送信されず、空('')応答になりますのでご注意ください。

実行例

リクエスト時にオプションの言語範囲指定を送信しない場合は、デフォルトの言語範囲である 日本語、英語、中国語、韓国語の4言語のうちのいずれに該当するかを識別します。
タブ "言語指定あり" は、日本語と英語 の2言語を識別範囲の言語に指定するときの実行例です。

言語識別と音声認識を利用する場合

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" \
-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 "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" \
-H "Authorization: Bearer <accessToken>" \
--data-binary @/path/to/audio.raw

応答例

言語識別が正常に実行できた場合、結果は JSON で返ってきます。
タブ "言語指定あり" は、日本語と英語 の2言語を識別範囲の言語に指定したときの応答例です。

言語識別と音声認識を利用する場合

言語識別の結果、スコア( "score" )の値がより大きい言語が音声認識の言語となっています。

{
  "session_id": "35c4a48e-8515-451f-bb81-52120cc9fc04",
  "status": "recog-finished",
  "type": "lidasr#ja|en|zh|ko",
  "response": {
    "asr": [
      {
        "result": "とりあえず|トリアエズ|とりあえず|副詞-助詞類接続||||"
      },
      {
        "result": "腹ごしらえ|ハラゴシラエ|腹ごしらえ|名詞-一般||||"
      },
      {
        "result": "|||SENT-START-END||||"
      },
      {
        "result": "|||UTT-END||||"
      }
    ],
    "lid": [
      {
        "lang": "ja",
        "score": 0.998649
      },
      {
        "lang": "ko",
        "score": 0.00091
      },
      {
        "lang": "zh",
        "score": 0.00025
      },
      {
        "lang": "en",
        "score": 0.00019
      }
    ]
  }
}
{
  "session_id": "87be19a4-0391-4de0-8b06-3dde535bf3eb",
  "status": "recog-finished",
  "type": "lidasr#ja|en",
  "response": {
    "asr": [
      {
        "result": "とりあえず|トリアエズ|とりあえず|副詞-助詞類接続||||"
      },
      {
        "result": "腹ごしらえ|ハラゴシラエ|腹ごしらえ|名詞-一般||||"
      },
      {
        "result": "|||SENT-START-END||||"
      },
      {
        "result": "|||UTT-END||||"
      }
    ],
    "lid": [
      {
        "lang": "ja",
        "score": 0.99981
      },
      {
        "lang": "en",
        "score": 0.00019
      }
    ]
  }
}

言語識別のみを利用する場合

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

{
  "session_id": "105ad739-a985-41d9-95b4-1095c3d7f372",
  "status": "recog-finished",
  "type": "lid#ja|en|zh|ko",
  "response": [
    {
      "lang": "ja",
      "score": 0.978853
    },
    {
      "lang": "ko",
      "score": 0.014434
    },
    {
      "lang": "en",
      "score": 0.006673
    },
    {
      "lang": "zh",
      "score": 4e-05
    }
  ]
}
{
  "session_id": "d5c9ed86-b0ef-43db-a410-13ea280cd7ad",
  "status": "recog-finished",
  "type": "lid#ja|en",
  "response": [
    {
      "lang": "ja",
      "score": 0.993229
    },
    {
      "lang": "en",
      "score": 0.006771
    }
  ]
}

言語識別の詳細な情報については mimi LID のドキュメント および API Reference を参照ください。