다음을 통해 공유


Speech Service 컨테이너 구성

음성 컨테이너를 통해 고객은 강력한 클라우드 기능 및 에지 위치를 활용하기 위해 최적화된 단일 음성 애플리케이션 아키텍처를 구축할 수 있습니다.

Speech 컨테이너 런타임 환경은 docker run 명령 인수를 사용하여 구성됩니다. 이 컨테이너에는 몇 가지 필수 설정과 선택 사항 설정이 있습니다. 청구 설정은 컨테이너별로 다릅니다.

구성 설정

컨테이너에는 다음 구성 설정이 있습니다.

Required 설정 목적
ApiKey 청구 정보를 추적합니다.
아니요 ApplicationInsights Azure Application Insights 원격 분석 지원을 컨테이너에 추가할 수 있습니다.
Billing Azure에서 서비스 리소스의 엔드포인트 URI를 지정합니다.
Eula 컨테이너에 대한 라이선스에 동의했음을 나타냅니다.
아니요 Fluentd 로그 및 메트릭 데이터(선택 사항)를 Fluentd 서버에 씁니다.
아니요 HTTP 프록시 아웃바운드 요청을 만들기 위한 HTTP 프록시를 구성합니다.
아니요 로깅 컨테이너에 대한 ASP.NET Core 로깅 지원을 제공합니다.
아니요 Mounts 호스트 컴퓨터에서 컨테이너로, 컨테이너에서 호스트 컴퓨터로 데이터를 읽고 씁니다.

Important

ApiKey, BillingEula 설정은 함께 사용됩니다. 이 세 가지 설정 모두에 대해 유효한 값을 제공해야 하며, 제공하지 않을 경우 컨테이너는 시작되지 않습니다. 이러한 구성 설정을 사용하여 컨테이너를 인스턴스화하는 방법에 대한 자세한 내용은 청구를 참조하세요.

ApiKey 구성 설정

ApiKey 설정은 컨테이너에 대한 청구 정보를 추적하는 데 사용되는 Azure 리소스 키를 지정합니다. ApiKey에 대한 값을 지정해야 하며 이 값은 Billing 구성 설정에 대해 지정된 Speech 리소스에 대한 유효한 키여야 합니다.

이 설정은 다음 위치에서 찾을 수 있습니다.

  • Azure portal: 아래의 음성 리소스 관리

ApplicationInsights 설정

ApplicationInsights 설정으로 Azure Application Insights 원격 분석 지원을 컨테이너에 추가할 수 있습니다. Application Insights는 컨테이너의 심층 모니터링을 제공합니다. 컨테이너의 가용성, 성능 및 사용량을 쉽게 모니터링할 수 있습니다. 또한 컨테이너의 오류를 빠르게 식별하고 진단할 수 있습니다.

다음 표에서는 ApplicationInsights 섹션에서 지원되는 구성 설정을 설명합니다.

Required 이름 데이터 유형 설명
아니요 InstrumentationKey 문자열 컨테이너에 대한 원격 분석 데이터가 전송되는 Application Insights 인스턴스의 계측 키입니다. 자세한 내용은 ASP.NET Core용 Application Insights를 참조하세요.

예시:
InstrumentationKey=123456789

청구 구성 설정

Billing 설정은 컨테이너에 대한 청구 정보를 측정하는 데 사용되는 Azure의 Speech 리소스에 대한 엔드포인트 URI를 지정합니다. 이 구성 설정에 대한 값을 지정해야 하며, 이 값은 Azure의 Speech 리소스에 대한 유효한 엔드포인트 URI여야 합니다. 컨테이너는 약 10 ~ 15분마다 사용량을 보고합니다.

이 설정은 다음 위치에서 찾을 수 있습니다.

  • Azure Portal: EndpointSpeech 개요 페이지에 레이블이 지정됨
Required 이름 데이터 유형 설명
Billing 문자열 청구 엔드포인트 URI입니다. 청구 URI를 얻는 방법에 대한 자세한 내용은 청구를 참조하세요. 자세한 내용과 지역별 엔드포인트의 전체 목록은 Azure AI 서비스에 대한 사용자 지정 하위 도메인 이름을 참조하세요.

Eula 설정

Eula 설정은 컨테이너에 대한 라이선스에 동의했음을 나타냅니다. 이 구성 설정에 대한 값을 지정해야 하며, 이 값은 accept로 설정해야 합니다.

Required 이름 데이터 유형 설명
Eula 문자열 라이선스 승인

예시:
Eula=accept

Azure AI 서비스 컨테이너는 Azure 사용에 관한 계약에 따라 라이선스가 부여됩니다. Azure 사용에 관한 기존 계약이 없으면 Azure 사용에 관한 계약은 온라인 서비스 사용 약관을 포함한 Microsoft 온라인 정기가입 계약임에 동의합니다. 미리 보기의 경우 Microsoft Azure 미리 보기에 대한 추가 사용 약관에도 동의합니다. 컨테이너를 사용하여 이 사용 약관에 동의합니다.

Fluentd 설정

Fluentd는 통합된 로깅에 대한 오픈 소스 데이터 수집기입니다. Fluentd 설정은 Fluentd 서버에 컨테이너의 연결을 관리합니다. 컨테이너에는 Fluentd 로깅 공급자가 포함되어 있어 컨테이너에서 로그 및 메트릭 데이터(선택 사항)를 Fluentd 서버에 쓸 수 있습니다.

다음 표에서는 Fluentd 섹션에서 지원되는 구성 설정을 설명합니다.

이름 데이터 유형 설명
Host 문자열 Fluentd 서버의 IP 주소 또는 DNS 호스트 이름입니다.
Port 정수 Fluentd 서버의 포트입니다.
기본값은 24224입니다.
HeartbeatMs 정수 하트비트 간격(밀리초)입니다. 이 간격이 만료되기 전에 전송된 이벤트 트래픽이 없을 경우 하트 비트는 Fluentd 서버로 전송됩니다. 기본값은 60000밀리초(1분)입니다.
SendBufferSize 정수 전송 작업에 할당된 네트워크 버퍼 공간(바이트)입니다. 기본값은 32768바이트(32킬로바이트)입니다.
TlsConnectionEstablishmentTimeoutMs 정수 Fluentd 서버와 SSL/TLS 연결을 설정하기 위한 시간 제한(밀리초)입니다. 기본값은 10000밀리초(10초)입니다.
UseTLS가 false로 설정되어 있는 경우 이 값은 무시됩니다.
UseTLS 부울 컨테이너가 Fluentd 서버와 통신하기 위해 SSL/TLS를 사용해야 하는지 여부를 나타냅니다. 기본값은 false입니다.

HTTP 프록시 자격 증명 설정

아웃바운드 요청을 만들기 위한 HTTP 프록시를 구성해야 하는 경우 다음 두 인수를 사용합니다.

이름 데이터 유형 설명
HTTP_PROXY string 사용할 프록시(예: http://proxy:8888)
<proxy-url>
HTTP_PROXY_CREDS string 프록시를 인증하는 데 필요한 자격 증명(예: username:password). 이 값은 소문자여야 합니다.
<proxy-user> string 프록시 사용자입니다.
<proxy-password> string 프록시에 대해 <proxy-user>에 연결된 암호입니다.
docker run --rm -it -p 5000:5000 \
--memory 2g --cpus 1 \
--mount type=bind,src=/home/azureuser/output,target=/output \
<registry-location>/<image-name> \
Eula=accept \
Billing=<endpoint> \
ApiKey=<api-key> \
HTTP_PROXY=<proxy-url> \
HTTP_PROXY_CREDS=<proxy-user>:<proxy-password> \

로깅 설정

Logging 설정은 컨테이너에 대한 ASP.NET Core 로깅 지원을 관리합니다. ASP.NET Core 애플리케이션에 사용하는 컨테이너에 대한 동일한 구성 설정 및 값을 사용할 수 있습니다.

컨테이너에서 지원되는 로깅 공급자는 다음과 같습니다.

공급자 목적
콘솔 ASP.NET Core Console 로깅 공급자입니다. 이 로깅 공급자에 대한 모든 ASP.NET Core 구성 설정 및 기본값이 지원됩니다.
디버그 ASP.NET Core Debug 로깅 공급자입니다. 이 로깅 공급자에 대한 모든 ASP.NET Core 구성 설정 및 기본값이 지원됩니다.
디스크 JSON 로깅 공급자입니다. 이 로깅 공급자는 출력 탑재에 로그 데이터를 씁니다.

이 컨테이너 명령은 출력 탑재에 대한 JSON 형식의 로깅 정보를 저장합니다.

docker run --rm -it -p 5000:5000 \
--memory 2g --cpus 1 \
--mount type=bind,src=/home/azureuser/output,target=/output \
<registry-location>/<image-name> \
Eula=accept \
Billing=<endpoint> \
ApiKey=<api-key> \
Logging:Disk:Format=json \
Mounts:Output=/output

이 컨테이너 명령은 컨테이너가 실행되는 동안 접두사가 dbug인 디버깅 정보를 보여줍니다.

docker run --rm -it -p 5000:5000 \
--memory 2g --cpus 1 \
<registry-location>/<image-name> \
Eula=accept \
Billing=<endpoint> \
ApiKey=<api-key> \
Logging:Console:LogLevel:Default=Debug

디스크 로깅

Disk 로깅 공급자는 다음과 같은 구성 설정을 지원합니다.

이름 데이터 유형 설명
Format 문자열 로그 파일에 대한 출력 형식입니다.
참고: 로깅 공급자를 사용 설정하려면 이 값을 json으로 설정해야 합니다. 또한 컨테이너를 인스턴스화하는 동안 출력 탑재를 지정하지 않고 이 값이 지정된 경우에는 오류가 발생합니다.
MaxFileSize 정수 로그 파일의 최대 크기(MB)입니다. 현재 로그 파일의 크기가 이 값을 충족하거나 초과할 경우 로깅 공급자가 새 로그 파일을 시작합니다. -1을 지정하면 로그 파일의 크기는 출력 탑재(있는 경우)에 대한 최대 파일 크기에 의해서만 제한됩니다. 기본값은 1입니다.

ASP.NET Core 로깅 지원 구성에 대한 자세한 내용은 설정 파일 구성을 참조하세요.

탑재 설정

바인딩 탑재를 사용하여 컨테이너에서 또는 컨테이너로 읽고 씁니다. Docker 실행 명령의 --mount옵션을 지정하여 입력 탑재 또는 출력 탑재를 지정할 수 있습니다.

표준 Speech 컨테이너는 입력 또는 출력 탑재를 사용하여 학습 또는 서비스 데이터를 저장하지 않습니다. 그러나 Custom Speech 컨테이너는 볼륨 탑재를 사용합니다.

호스트 탑재 위치의 정확한 구문은 호스트 운영 체제에 따라 다릅니다. 또한 Docker 서비스 계정에서 사용하는 권한과 호스트 탑재 위치 권한이 충돌하여 호스트 컴퓨터의 탑재 위치에 액세스하지 못할 수도 있습니다.

선택 사항 이름 데이터 유형 설명
허용되지 않음 Input 문자열 표준 Speech 컨테이너는 사용하지 않습니다. Custom Speech 컨테이너는 볼륨 탑재를 사용합니다.
선택 사항 Output 문자열 출력 탑재의 대상입니다. 기본값은 /output입니다. 로그의 위치입니다. 컨테이너 로그가 포함됩니다.

예시:
--mount type=bind,src=c:\output,target=/output

볼륨 탑재 설정

Custom Speech 컨테이너는 볼륨 탑재를 사용하여 사용자 지정 모델을 유지합니다. docker run 명령에 -v(또는 --volume) 옵션을 추가하여 볼륨 탑재를 지정할 수 있습니다.

참고 항목

볼륨 탑재 설정은 사용자 지정 음성 텍스트 변환 컨테이너에만 적용됩니다.

사용자 지정 모델은 Custom Speech 컨테이너 docker run 명령의 일부로 새 모델을 수집할 때 처음 다운로드됩니다. Custom Speech 컨테이너에 대해 동일한 ModelId를 순차적으로 실행하면 이전에 다운로드한 모델이 사용됩니다. 볼륨 탑재를 제공하지 않으면 사용자 지정 모델을 유지할 수 없습니다.

볼륨 탑재 설정은 세 가지 색상의 :로 구분된 필드로 구성됩니다.

  1. 첫 번째 필드는 호스트 컴퓨터의 볼륨 이름입니다(예: C:\input).
  2. 두 번째 필드는 컨테이너의 디렉터리입니다(예: /usr/local/models).
  3. 세 번째 필드(선택 사항)는 쉼표로 구분된 옵션 목록입니다. 자세한 내용은 볼륨 사용을 참조하세요.

다음은 호스트 시스템 C:\input 디렉터리를 컨테이너 /usr/local/models 디렉터리에 탑재하는 볼륨 마운트 예입니다.

-v C:\input:/usr/local/models

다음 단계