Docker를 사용한 언어 식별 컨테이너

음성 언어 식별 컨테이너는 오디오 파일에서 사용되는 언어를 감지합니다. 중간 결과가 포함된 실시간 음성 또는 일괄 오디오 녹음을 얻을 수 있습니다. 이 문서에서는 언어 식별 컨테이너를 다운로드, 설치 및 실행하는 방법을 알아봅니다.

참고 항목

음성 언어 식별 컨테이너는 공개 미리 보기로 제공됩니다. 미리 보기의 컨테이너는 아직 개발 중이며 Microsoft의 안정성 및 지원 요구 사항을 충족하지 않습니다.

필수 조건, 컨테이너 실행 여부 확인, 동일한 호스트에서 여러 컨테이너 실행, 연결 해제된 컨테이너 실행에 대한 자세한 내용은 Docker를 사용하여 음성 컨테이너 설치 및 실행을 참조하세요.

가장 유용한 결과를 얻으려면 음성 텍스트 변환 또는 사용자 지정 음성 텍스트 변환 컨테이너와 함께 음성 언어 식별 컨테이너를 사용하세요.

컨테이너 이미지

지원되는 모든 버전 및 로캘에 대한 음성 언어 식별 컨테이너 이미지는 Microsoft Container Registry(MCR) 신디케이트에서 찾을 수 있습니다. azure-cognitive-services/speechservices/ 리포지토리 내에 있으며 이름은 language-detection입니다.

A screenshot of the search connectors and triggers dialog.

전체 컨테이너 이미지 이름은 mcr.microsoft.com/azure-cognitive-services/speechservices/language-detection입니다. 최신 버전을 얻으려면 특정 버전을 추가하거나 :latest를 추가하세요.

버전 Path
가장 늦은 날짜 mcr.microsoft.com/azure-cognitive-services/speechservices/language-detection:latest
1.12.0 mcr.microsoft.com/azure-cognitive-services/speechservices/language-detection:1.12.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.3.0-amd64-preview",
    "1.5.0-amd64-preview",
    <--redacted for brevity-->
    "1.8.0-amd64-preview",
    "latest"
  ]
}

docker pull로 컨테이너 이미지 가져오기

필수 하드웨어를 포함한 필수 조건이 필요합니다. 각 음성 컨테이너에 대한 권장 리소스 할당도 참조하세요.

docker pull 명령을 사용하여 Microsoft Container Registry에서 컨테이너 이미지를 다운로드합니다.

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 코어 및 1GB 메모리를 할당합니다.
  • TCP 포트 5000을 노출하고 컨테이너의 의사-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 및 1GB 메모리를 사용하는 최대 4개의 동시 호출을 적용하는 것이 좋습니다. 2개 CPU 및 2GB 메모리를 사용하는 호스트의 경우 최대 6개의 동시 호출을 적용하는 것이 좋습니다.

컨테이너 사용

음성 컨테이너는 음성 SDK 및 음성 CLI를 통해 액세스되는 websocket 기반 쿼리 엔드포인트 API를 제공합니다. 기본적으로 음성 SDK 및 음성 CLI는 공개 음성 서비스를 사용합니다. 컨테이너를 사용하려면 초기화 메서드를 변경해야 합니다.

Important

컨테이너와 함께 음성 서비스를 사용하는 경우 호스트 인증을 사용해야 합니다. 키와 지역을 구성하면 요청이 공개 음성 서비스로 이동됩니다. 음성 서비스의 결과가 예상과 다를 수 있습니다. 연결이 끊긴 컨테이너의 요청은 실패합니다.

이 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")

컨테이너에서 음성 CLI를 사용하는 경우 --host http://localhost:5000/ 옵션을 포함하세요. CLI가 인증을 위해 음성 키를 사용하지 않도록 하려면 --key none도 지정해야 합니다. 음성 CLI를 구성하는 방법에 대한 자세한 내용은 Azure AI 음성 CLI 시작하기를 참조하세요.

키와 지역 대신 호스트 인증을 사용하여 언어 식별을 시도해 보세요. 컨테이너에서 언어 ID를 실행할 때 SpeechRecognizer 또는 TranslationRecognizer 대신 SourceLanguageRecognizer 개체를 사용하세요.

다음 단계