Azure AI Video Indexer API を使用して言語モデルをカスタマイズする

重要

Azure Media Services の 提供終了の発表により、Azure AI Video Indexer は Azure AI Video Indexer の 機能の調整を発表します。 Azure AI Video Indexer アカウントの意味を理解するには、Azure Media Service (AMS) の提供終了に関連する変更に関するページを参照してください。 AMS 提供 終了の準備: VI の更新と移行に関するガイドを参照してください。

Azure AI Video Indexer では、カスタム言語モデルを作成し、適応テキストをアップロードすることで音声認識をカスタマイズすることができます。適応テキストとは、エンジンを適応させたいボキャブラリがあるドメインから取得したテキストのことです。 モデルをトレーニングすると、適応テキスト内に含まれる新しい単語が認識されるようになります。

カスタム言語モデルの詳細な概要とベスト プラクティスについては、「Azure AI Video Indexer を使用して言語モデルをカスタマイズする」を参照してください。

この記事で説明しているように、Azure AI Video Indexer API を使用すると、アカウント内にカスタム言語モデルを作成し、編集することができます。 また、Azure AI Video Indexer Web サイトを使用して言語モデルをカスタマイズする方法に関する記事で説明しているように、Web サイトを使用することもできます。

言語モデルの作成

言語モデルの作成 API により、指定されたアカウントに新しいカスタム言語モデルが作成されます。 この呼び出しで、言語モデル用のファイルをアップロードすることができます。 なお、ここでは言語モデルの作成だけを行い、後で言語モデルを更新することで、モデル用のファイルをアップロードすることもできます。

Note

いずれの場合も、モデル用の対応ファイルでモデルをトレーニングし、ファイルのコンテンツを学習させる必要があります。 言語のトレーニング方法については、次のセクションで説明します。

言語モデルに追加するファイルをアップロードするには、上記の必須パラメーターの値を指定するだけでなく、FormData を使用して本文内のファイルをアップロードする必要があります。 このタスクを行うには 2 つの方法があります。

  • キーはファイル名で、値は txt ファイルです。
  • キーはファイル名で、値は txt ファイルへの URL です。

回答

応答では、新しく作成された言語モデルのメタデータと、各モデルのファイルのメタデータが、次の JSON 出力サンプルの形式で返されます。

{
    "id": "dfae5745-6f1d-4edd-b224-42e1ab57a891",
    "name": "TestModel",
    "language": "En-US",
    "state": "None",
    "languageModelId": "00000000-0000-0000-0000-000000000000",
    "files": [
    {
        "id": "25be7c0e-b6a6-4f48-b981-497e920a0bc9",
        "name": "hellofile",
        "enable": true,
        "creator": "John Doe",
        "creationTime": "2018-04-28T11:55:34.6733333"
    },
    {
        "id": "33025f5b-2354-485e-a50c-4e6b76345ca7",
        "name": "worldfile",
        "enable": true,
        "creator": "John Doe",
        "creationTime": "2018-04-28T11:55:34.86"
    }
    ]
}

言語モデルのトレーニング

言語モデルのトレーニング API により、言語モデルにアップロードされ、その言語モデル内で有効化されたファイルのコンテンツを使用して、指定されたアカウント内のカスタム言語モデルがトレーニングされます。

Note

最初に、言語モデルを作成し、そのファイルをアップロードする必要があります。 ファイルのアップロードは、言語モデルの作成時に行うか、言語モデルを更新して実行することができます。

回答

応答では、新しくトレーニングされた言語モデルのメタデータと、各モデルのファイルのメタデータが、次の JSON 出力サンプルの形式で返されます。

{
    "id": "41464adf-e432-42b1-8e09-f52905d7e29d",
    "name": "TestModel",
    "language": "En-US",
    "state": "Waiting",
    "languageModelId": "531e5745-681d-4e1d-b124-12e5ab57a891",
    "files": [
    {
        "id": "84fcf1ac-1952-48f3-b372-18f768eedf83",
        "name": "RenamedFile",
        "enable": false,
        "creator": "John Doe",
        "creationTime": "2018-04-27T20:10:10.5233333"
    },
    {
        "id": "9ac35b4b-1381-49c4-9fe4-8234bfdd0f50",
        "name": "hellofile",
        "enable": true,
        "creator": "John Doe",
        "creationTime": "2018-04-27T20:10:10.68"
    }
    ]
}

返された id は、言語モデルを区別するために使用される一意の ID です。一方、languageModelId は、インデックスを作成するビデオのアップロードの API と、ビデオのインデックスの再作成の API の両方に使用されます (Azure AI Video Indexer のアップロードまたはインデックスの再作成の API では linguisticModelId とも呼ばれます)。

言語モデルの削除

言語モデルの削除 API により、指定されたアカウントからカスタム言語モデルが削除されます。 削除された言語モデルを使用していたすべてのビデオでは、ユーザーがビデオのインデックスを再作成するまで同じインデックスが保持されます。 ビデオのインデックスを再作成すると、ビデオに新しい言語モデルを割り当てることができます。 それ以外の場合、Azure AI Video Indexer では既定のモデルを使用して、ビデオのインデックスが再作成されます。

回答

言語モデルが正常に削除されたときに返されるコンテンツはありません。

言語モデルの更新

言語モデルの更新 API により、指定されたアカウントのカスタム言語モデルが更新されます。

Note

あらかじめ言語モデルを作成しておく必要があります。 この呼び出しは、モデルの配下にあるすべてのファイルを有効または無効にしたり、言語モデルの名前を更新したり、言語モデルに追加するファイルをアップロードしたりするために使用できます。

言語モデルに追加するファイルをアップロードするには、上記の必須パラメーターの値を指定するだけでなく、FormData を使用して本文内のファイルをアップロードする必要があります。 このタスクを行うには 2 つの方法があります。

  • キーはファイル名で、値は txt ファイルです。
  • キーはファイル名で、値は txt ファイルへの URL です。

回答

応答では、新しくトレーニングされた言語モデルのメタデータと、各モデルのファイルのメタデータが、次の JSON 出力サンプルの形式で返されます。

{
    "id": "41464adf-e432-42b1-8e09-f52905d7e29d",
    "name": "TestModel",
    "language": "En-US",
    "state": "Waiting",
    "languageModelId": "531e5745-681d-4e1d-b124-12e5ab57a891",
    "files": [
    {
        "id": "84fcf1ac-1952-48f3-b372-18f768eedf83",
        "name": "RenamedFile",
        "enable": true,
        "creator": "John Doe",
        "creationTime": "2018-04-27T20:10:10.5233333"
    },
    {
        "id": "9ac35b4b-1381-49c4-9fe4-8234bfdd0f50",
        "name": "hellofile",
        "enable": true,
        "creator": "John Doe",
        "creationTime": "2018-04-27T20:10:10.68"
    }
    ]
}

応答で返されたファイルの id を使用して、ファイルのコンテンツをダウンロードします。

言語モデル内のファイルを更新する

ファイルの更新を使用すると、指定されたアカウント内のカスタム言語モデルに含まれるファイルの名前を更新したり、状態を enable にしたりすることができます。

回答

応答では、更新したファイルのメタデータが、次の JSON 出力サンプルの形式で返されます。

{
  "id": "84fcf1ac-1952-48f3-b372-18f768eedf83",
  "name": "RenamedFile",
  "enable": false,
  "creator": "John Doe",
  "creationTime": "2018-04-27T20:10:10.5233333"
}

応答で返されたファイルの id を使用して、ファイルのコンテンツをダウンロードします。

特定の言語モデルを取得する

取得 API を使用すると、指定されたアカウント内の指定された言語モデルに関する情報が返されます (言語や、言語モデルに含まれるファイルなど)。

回答

応答では、指定された言語モデルのメタデータと、各モデルのファイルのメタデータが、次の JSON 出力サンプルの形式で返されます。

{
    "id": "dfae5745-6f1d-4edd-b224-42e1ab57a891",
    "name": "TestModel",
    "language": "En-US",
    "state": "None",
    "languageModelId": "00000000-0000-0000-0000-000000000000",
    "files": [
    {
        "id": "25be7c0e-b6a6-4f48-b981-497e920a0bc9",
        "name": "hellofile",
        "enable": true,
        "creator": "John Doe",
        "creationTime": "2018-04-28T11:55:34.6733333"
    },
    {
        "id": "33025f5b-2354-485e-a50c-4e6b76345ca7",
        "name": "worldfile",
        "enable": true,
        "creator": "John Doe",
        "creationTime": "2018-04-28T11:55:34.86"
    }
    ]
}

応答で返されたファイルの id を使用して、ファイルのコンテンツをダウンロードします。

すべての言語モデルを取得する

すべて取得 API を使用すると、指定されたアカウント内のすべてのカスタム言語モデルが一覧で返されます。

回答

応答では、アカウント内のすべての言語モデルと、各言語モデルのメタデータとファイルが、次の JSON 出力サンプルの形式で一覧表示されます。

[
    {
        "id": "dfae5745-6f1d-4edd-b224-42e1ab57a891",
        "name": "TestModel",
        "language": "En-US",
        "state": "None",
        "languageModelId": "00000000-0000-0000-0000-000000000000",
        "files": [
        {
            "id": "25be7c0e-b6a6-4f48-b981-497e920a0bc9",
            "name": "hellofile",
            "enable": true,
            "creator": "John Doe",
            "creationTime": "2018-04-28T11:55:34.6733333"
        },
        {
            "id": "33025f5b-2354-485e-a50c-4e6b76345ca7",
            "name": "worldfile",
            "enable": true,
            "creator": "John Doe",
            "creationTime": "2018-04-28T11:55:34.86"
        }
        ]
    },
    {
        "id": "dfae5745-6f1d-4edd-b224-42e1ab57a892",
        "name": "AnotherTestModel",
        "language": "En-US",
        "state": "None",
        "languageModelId": "00000000-0000-0000-0000-000000000001",
        "files": []
    }
]

言語モデルからファイルを削除する

削除 API を使用すると、指定されたアカウント内の指定された言語モデルから、指定されたファイルが削除されます。

回答

言語モデルからファイルが正常に削除された場合、返されるコンテンツはありません。

言語モデルからファイルのメタデータを取得する

ファイルのメタデータを取得 API を使用すると、アカウント内の選択された言語モデルから、指定されたファイルのコンテンツとメタデータが返されます。

回答

応答では、ファイルのコンテンツとメタデータが、次の例のような JSON 形式で返されます。

{
    "content": "hello\r\nworld",
    "id": "84fcf1ac-1952-48f3-b372-18f768eedf83",
    "name": "Hello",
    "enable": true,
    "creator": "John Doe",
    "creationTime": "2018-04-27T20:10:10.5233333"
}

Note

このサンプル ファイルのコンテンツは、2 つの行に分けられた、"hello" と "world" という単語です。

言語モデルからファイルをダウンロードする

ファイルのダウンロード API を使用すると、指定されたアカウント内の指定された言語モデルから、指定されたファイルのコンテンツを含んだテキスト ファイルがダウンロードされます。 このテキスト ファイルは、最初にアップロードされたテキスト ファイルのコンテンツと一致します。

回答

応答では、ファイルのコンテンツを含んだテキスト ファイルが JSON 形式でダウンロードされます。