Docker を使用した言語識別コンテナー

音声言語識別コンテナーは、オーディオ ファイルで読み上げられた言語を検出します。 中間結果を含むリアルタイムの音声またはバッチ音声録音を取得できます。 この記事では、言語識別コンテナーをダウンロード、インストール、実行する方法について説明します。

Note

音声言語識別コンテナーは、パブリック プレビューで使用できます。 プレビュー段階のコンテナーはまだ開発中であり、Microsoft の安定性とサポートの要件を満たしていません。

前提条件の詳細、コンテナーが実行されていることの検証、同じホスト上での複数コンテナーの実行、切断されたコンテナーの実行については、「Docker を使用して音声コンテナーをインストールして実行する」を参照してください。

ヒント

最も役立つ結果を得るには、音声言語識別コンテナーを音声テキスト変換またはカスタム音声テキスト変換コンテナーと共に使用します。

コンテナー イメージ

サポートされているすべてのバージョンとロケールの音声言語識別コンテナー イメージは、Microsoft Container Registry (MCR) シンジケートにあります。 azure-cognitive-services/speechservices/ リポジトリ内にあり、language-detection という名前が付いています。

検索コネクタとトリガー ダイアログのスクリーンショット。

完全修飾コンテナー イメージ名は mcr.microsoft.com/azure-cognitive-services/speechservices/language-detection です。 特定のバージョンを追加するか、:latest を追加して最新バージョンを取得します。

Version Path
最新 mcr.microsoft.com/azure-cognitive-services/speechservices/language-detection:latest
1.16.0 mcr.microsoft.com/azure-cognitive-services/speechservices/language-detection:1.16.0-amd64-preview

latest を除くすべてのタグは次の形式であり、大文字と小文字が区別されます。

<major>.<minor>.<patch>-<platform>-<prerelease>

作業を容易にするために、このタグは JSON 形式でも使用できます。 本文には、コンテナー パスとタグの一覧が含まれています。 タグはバージョン別に並べ替えられませんが、次のスニペットに示すように、"latest" は必ずリストの末尾に含まれます。

{
  "name": "azure-cognitive-services/speechservices/language-detection",
  "tags": [
    "1.1.0-amd64-preview",
    "1.11.0-amd64-preview",
    "1.12.0-amd64-preview",
    "1.13.0-amd64-preview",
    "1.14.0-amd64-preview",
    "1.15.0-amd64-preview",
    "1.16.0-amd64-preview",
    "1.3.0-amd64-preview",
    "1.5.0-amd64-preview",
    "1.6.1-amd64-preview",
    "1.7.0-amd64-preview",
    "1.8.0-amd64-preview",
    "latest"
  ]
}

docker pull でコンテナー イメージを取得する

必要なハードウェアを含む前提条件を満たす必要があります。 また、各音声コンテナーに対して推奨されるリソースの割り当ても参照してください。

Microsoft Container Registry からコンテナー イメージをダウンロードするには、docker pull コマンドを使用します。

docker pull mcr.microsoft.com/azure-cognitive-services/speechservices/language-detection:latest

docker run でコンテナーを実行する

コンテナーを実行するには、docker run コマンドを使用します。

次の表は、さまざまな docker run パラメーターとその説明をまとめたものです。

パラメーター 説明
{ENDPOINT_URI} 測定と課金にはエンドポイントが必須です。 詳細については、「課金引数」を参照してください。
{API_KEY} API キーは必須です。 詳細については、「課金引数」を参照してください。

音声言語識別コンテナーを実行する場合は、言語識別コンテナーの要件と推奨事項に従って、ポート、メモリ、CPU を構成します。

プレースホルダー値を含む docker run コマンドの例を次に示します。 ENDPOINT_URIAPI_KEY の値を指定する必要があります。

docker run --rm -it -p 5000:5003 --memory 1g --cpus 1 \
mcr.microsoft.com/azure-cognitive-services/speechservices/language-detection \
Eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}

このコマンドは、次の操作を行います。

  • コンテナー イメージから音声言語識別コンテナーを実行します。
  • 1 つの CPU コアと 1 GB のメモリを割り当てます。
  • TCP ポート 5000 を公開し、コンテナーに pseudo-TTY を割り当てます。
  • コンテナーの終了後にそれを自動的に削除します。 ホスト コンピューター上のコンテナー イメージは引き続き利用できます。

音声コンテナーでの docker run の詳細については、「Docker を使用して音声コンテナーをインストールして実行する」を参照してください。

音声テキスト変換コンテナーを使用して実行する

言語識別コンテナーを音声テキスト変換コンテナーで実行する場合は、この Docker イメージを使用できます。 両方のコンテナーが起動したら、こちらの docker run コマンドを使用して speech-to-text-with-languagedetection-client を実行します。

docker run --rm -v ${HOME}:/root -ti antsu/on-prem-client:latest ./speech-to-text-with-languagedetection-client ./audio/LanguageDetection_en-us.wav --host localhost --lport 5003 --sport 5000

同時呼び出しの数を増やすと、信頼性と待機時間に影響を与える可能性があります。 言語識別では、1 つの CPU と 1 GB のメモリを使用した最大 4 個の同時呼び出しをお勧めします。 2 つの CPU と 2 GB のメモリが搭載されたホストでは、最大 6 個の同時呼び出しをお勧めします。

コンテナーを使用する

音声コンテナーは、WebSocket ベースのクエリ エンドポイント API シリーズを提供します。これには、Speech SDK および Speech CLI を介してアクセスします。 既定では、Speech SDK と Speech CLI ではパブリック音声サービスが使用されます。 コンテナーを使用するには、初期化方法を変更する必要があります。

重要

コンテナーで音声サービスを使用する場合は、必ずホスト認証を使用してください。 キーとリージョンを構成すると、要求はパブリック音声サービスに送信されます。 音声サービスからの結果は、期待どおりではない場合があります。 切断されたコンテナーからの要求は失敗します。

この Azure クラウド初期化構成は使用しません。

var config = SpeechConfig.FromSubscription(...);

コンテナー ホストで、この構成を使用します。

var config = SpeechConfig.FromHost(
    new Uri("http://localhost:5000"));

この Azure クラウド初期化構成は使用しません。

auto speechConfig = SpeechConfig::FromSubscription(...);

コンテナー ホストで、この構成を使用します。

auto speechConfig = SpeechConfig::FromHost("http://localhost:5000");

この Azure クラウド初期化構成は使用しません。

speechConfig, err := speech.NewSpeechConfigFromSubscription(...)

コンテナー ホストで、この構成を使用します。

speechConfig, err := speech.NewSpeechConfigFromHost("http://localhost:5000")

この Azure クラウド初期化構成は使用しません。

SpeechConfig speechConfig = SpeechConfig.fromSubscription(...);

コンテナー ホストで、この構成を使用します。

SpeechConfig speechConfig = SpeechConfig.fromHost("http://localhost:5000");

この Azure クラウド初期化構成は使用しません。

const speechConfig = sdk.SpeechConfig.fromSubscription(...);

コンテナー ホストで、この構成を使用します。

const speechConfig = sdk.SpeechConfig.fromHost("http://localhost:5000");

この Azure クラウド初期化構成は使用しません。

SPXSpeechConfiguration *speechConfig = [[SPXSpeechConfiguration alloc] initWithSubscription:...];

コンテナー ホストで、この構成を使用します。

SPXSpeechConfiguration *speechConfig = [[SPXSpeechConfiguration alloc] initWithHost:"http://localhost:5000"];

この Azure クラウド初期化構成は使用しません。

let speechConfig = SPXSpeechConfiguration(subscription: "", region: "");

コンテナー ホストで、この構成を使用します。

let speechConfig = SPXSpeechConfiguration(host: "http://localhost:5000");

この Azure クラウド初期化構成は使用しません。

speech_config = speechsdk.SpeechConfig(
    subscription=speech_key, region=service_region)

コンテナー エンドポイントで、この構成を使用します。

speech_config = speechsdk.SpeechConfig(
    host="http://localhost:5000")

コンテナーで Speech CLI を使用する場合は、--host http://localhost:5000/ オプションを含めます。 CLI が認証に音声キーを使用しないようにするには、--key none も指定する必要があります。 Speech CLI を構成する方法については、「Azure AI Speech CLI の概要」をご覧ください。

キーとリージョンではなく、ホスト認証を使用して言語識別を試してください。 コンテナーで言語 ID を実行する場合は、SpeechRecognizer または TranslationRecognizer ではなく、SourceLanguageRecognizer オブジェクトを使用します。

次のステップ