3. 言語識別

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

Step1 : 事前準備

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

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

  • 参考:言語識別サービスの URI
    • https://apis.mimi.fd.ai/auth/lid/http-api-service
    • https://apis.mimi.fd.ai/auth/lid/websocket-api-service

📘

ポイント

言語識別サービスでは音声認識に mimi ASR powered by NICT を使用します。
言語識別と音声認識を利用する場合は、追加で次のURIの指定も必要です

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

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

以下のURLにアクセスし、サンプル音声を取得してください。

https://github.com/FairyDevicesRD/mimi.example.ruby/raw/master/audio.raw

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 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 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" )の値がより大きい言語が音声認識の言語となっています。

{
  "response": {
    "asr": [
      {
        "result": "ちょっと|チョット|ちょっと|副詞-助詞類接続||||"
      },
      {
        "result": "遅い|オソイ|遅い|形容詞-自立|形容詞・アウオ段|基本形||"
      },
      {
        "result": "昼食|チュウショク|昼食|名詞-一般||||"
      },
      {
        "result": "を|ヲ|を|助詞-格助詞-一般||||"
      },
      {
        "result": "とる|トル|とる|動詞-自立|五段・ラ行|基本形||"
      },
      {
        "result": "ため|タメ|ため|名詞-非自立-副詞可能||||"
      },
      {
        "result": "ファミリーレストラン|ファミリーレストラン|ファミリーレストラン|名詞-一般||||"
      },
      {
        "result": "に|ニ|に|助詞-格助詞-一般||||"
      },
      {
        "result": "入っ|ハイッ|入る|動詞-自立|五段・ラ行|連用タ接続||"
      },
      {
        "result": "た|タ|た|助動詞|特殊・タ|基本形||"
      },
      {
        "result": "の|ノ|の|名詞-非自立-一般||||"
      },
      {
        "result": "です|デス|です|助動詞|特殊・デス|基本形||"
      },
      {
        "result": "|||SENT-START-END||||"
      },
      {
        "result": "|||UTT-END||||"
      }
    ],
    "lid": [
      {
        "lang": "ja",
        "score": 0.978853
      },
      {
        "lang": "ko",
        "score": 0.014434
      },
      {
        "lang": "en",
        "score": 0.006673
      },
      {
        "lang": "zh",
        "score": 4e-05
      }
    ]
  },
  "session_id": "620ce89b-b981-44c2-9884-c781b458d2e2",
  "status": "recog-finished",
  "type": "lidasr#ja|en|zh|ko"
}
{
  "response": {
    "asr": [
      {
        "result": "ちょっと|チョット|ちょっと|副詞-助詞類接続||||"
      },
      {
        "result": "遅い|オソイ|遅い|形容詞-自立|形容詞・アウオ段|基本形||"
      },
      {
        "result": "昼食|チュウショク|昼食|名詞-一般||||"
      },
      {
        "result": "を|ヲ|を|助詞-格助詞-一般||||"
      },
      {
        "result": "とる|トル|とる|動詞-自立|五段・ラ行|基本形||"
      },
      {
        "result": "ため|タメ|ため|名詞-非自立-副詞可能||||"
      },
      {
        "result": "ファミリーレストラン|ファミリーレストラン|ファミリーレストラン|名詞-一般||||"
      },
      {
        "result": "に|ニ|に|助詞-格助詞-一般||||"
      },
      {
        "result": "入っ|ハイッ|入る|動詞-自立|五段・ラ行|連用タ接続||"
      },
      {
        "result": "た|タ|た|助動詞|特殊・タ|基本形||"
      },
      {
        "result": "の|ノ|の|名詞-非自立-一般||||"
      },
      {
        "result": "です|デス|です|助動詞|特殊・デス|基本形||"
      },
      {
        "result": "|||SENT-START-END||||"
      },
      {
        "result": "|||UTT-END||||"
      }
    ],
    "lid": [
      {
        "lang": "ja",
        "score": 0.993229
      },
      {
        "lang": "en",
        "score": 0.006771
      }
    ]
  },
  "session_id": "ac08f33a-05d7-4b62-9738-d8a560b2ed37",
  "status": "recog-finished",
  "type": "lidasr#ja|en"
}

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

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

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

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