Docker를 사용하는 텍스트 음성 변환 컨테이너
인공신경망 텍스트 음성 변환 컨테이너는 심층 신경망 기술을 사용하여 텍스트를 자연스러운 음성으로 변환하므로 보다 자연스러운 합성 음성을 사용할 수 있습니다. 이 문서에서는 텍스트 음성 변환 컨테이너를 다운로드, 설치 및 실행하는 방법에 대해 알아봅니다.
필수 조건, 컨테이너 실행 여부 확인, 동일한 호스트에서 여러 컨테이너 실행, 연결 해제된 컨테이너 실행에 대한 자세한 내용은 Docker를 사용하여 음성 컨테이너 설치 및 실행을 참조하세요.
컨테이너 이미지
지원되는 모든 버전 및 로캘에 대한 인공신경망 텍스트 음성 변환 컨테이너 이미지는 Microsoft Container Registry(MCR) 신디케이트에서 찾을 수 있습니다. azure-cognitive-services/speechservices/
리포지토리 내에 있으며 이름은 neural-text-to-speech
입니다.
전체 컨테이너 이미지 이름은 mcr.microsoft.com/azure-cognitive-services/speechservices/neural-text-to-speech
입니다. 최신 버전을 얻으려면 특정 버전을 추가하거나 :latest
를 추가하세요.
버전 | Path |
---|---|
가장 늦은 날짜 | mcr.microsoft.com/azure-cognitive-services/speechservices/neural-text-to-speech:latest latest 태그는 en-US 로캘 및 en-us-arianeural 음성을 끌어오기 합니다. |
3.5.0 | mcr.microsoft.com/azure-cognitive-services/speechservices/neural-text-to-speech:3.5.0-amd64-en-us-arianeural |
latest
를 제외한 모든 태그는 다음과 같은 형식이며 대/소문자를 구분합니다.
<major>.<minor>.<patch>-<platform>-<voice>-<preview>
편의를 위해 태그는 JSON 형식으로도 제공됩니다. 본문에는 컨테이너 경로와 태그 목록이 포함됩니다. 태그는 버전별로 정렬되지 않지만 이 조각에 표시된 것처럼 "latest"
은 항상 목록 끝에 포함됩니다.
{
"name": "azure-cognitive-services/speechservices/neural-text-to-speech",
"tags": [
<--redacted for brevity-->
"3.5.0-amd64-uk-ua-ostapneural",
"3.5.0-amd64-zh-cn-xiaochenneural-preview",
"3.5.0-amd64-zh-cn-xiaohanneural",
"3.5.0-amd64-zh-cn-xiaomoneural",
"3.5.0-amd64-zh-cn-xiaoqiuneural-preview",
"3.5.0-amd64-zh-cn-xiaoruineural",
"3.5.0-amd64-zh-cn-xiaoshuangneural-preview",
"3.5.0-amd64-zh-cn-xiaoxiaoneural",
"3.5.0-amd64-zh-cn-xiaoyanneural-preview",
"3.5.0-amd64-zh-cn-xiaoyouneural",
"3.5.0-amd64-zh-cn-yunxineural",
"3.5.0-amd64-zh-cn-yunyangneural",
"3.5.0-amd64-zh-cn-yunyeneural",
"latest"
]
}
Important
2021년 8월 31일 표준 음성 합성 음성 및 표준 텍스트 음성 변환 컨테이너의 사용을 중지했습니다. 대신 인공신경망 텍스트 음성 변환 컨테이너 버전 3.0 이상을 사용하여 인공신경망 음성을 사용해야 합니다.
2024년 2월 29일부터 텍스트 음성 변환 및 인공신경망 텍스트 음성 변환 컨테이너 버전 2.19 및 이전 버전은 지원되지 않습니다. 애플리케이션 업데이트에 대한 자세한 내용은 표준 음성에서 미리 빌드된 신경망 음성으로 마이그레이션을 참조하세요.
docker pull로 컨테이너 이미지 가져오기
필수 하드웨어를 포함한 필수 조건이 필요합니다. 각 음성 컨테이너에 대한 권장 리소스 할당도 참조하세요.
docker pull 명령을 사용하여 Microsoft Container Registry에서 컨테이너 이미지를 다운로드합니다.
docker pull mcr.microsoft.com/azure-cognitive-services/speechservices/neural-text-to-speech:latest
Important
latest
태그는 en-US
로캘 및 en-us-arianeural
음성을 끌어오기 합니다. 추가 로캘 및 음성은 텍스트 음성 변환 컨테이너 이미지를 참조하세요.
docker run을 사용하여 컨테이너 실행
docker run 명령을 사용하여 컨테이너를 실행합니다.
다음 표에는 다양한 docker run
매개 변수와 해당하는 설명이 나와 있습니다.
매개 변수 | 설명 |
---|---|
{ENDPOINT_URI} |
이 엔드포인트는 측정 및 청구에 필요합니다. 자세한 내용은 청구 인수를 참조하세요. |
{API_KEY} |
API 키가 필요합니다. 자세한 내용은 청구 인수를 참조하세요. |
텍스트 음성 변환 컨테이너를 실행할 때 텍스트 음성 변환 컨테이너 요구 사항 및 권장 사항에 따라 포트, 메모리 및 CPU를 구성합니다.
다음은 자리 표시자 값이 포함된 docker run
명령의 예입니다. ENDPOINT_URI
및 API_KEY
값을 지정해야 합니다.
docker run --rm -it -p 5000:5000 --memory 12g --cpus 6 \
mcr.microsoft.com/azure-cognitive-services/speechservices/neural-text-to-speech \
Eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}
이 명령은 다음을 수행합니다.
- 컨테이너 이미지에서 인공신경망 텍스트 음성 변환 컨테이너를 실행합니다.
- 6개 CPU 코어 및 12GB 메모리를 할당합니다.
- TCP 포트 5000을 노출하고 컨테이너의 의사-TTY를 할당합니다.
- 종료 후 자동으로 컨테이너를 제거합니다. 컨테이너 이미지는 호스트 컴퓨터에서 계속 사용할 수 있습니다.
음성 컨테이너가 있는 docker run
에 대한 자세한 내용은 Docker를 사용하여 음성 컨테이너 설치 및 실행을 참조하세요.
컨테이너 사용
음성 컨테이너는 음성 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 시작하기를 참조하세요.
키와 지역 대신 호스트 인증을 사용하여 텍스트 음성 변환 빠른 시작을 사용해 보세요.
SSML 음성 요소
인공신경망 텍스트 음성 변환 HTTP POST를 구성하는 경우 SSML 메시지에는 name
특성이 있는 voice
요소가 필요합니다. 음성의 로캘은 컨테이너 모델의 로캘에 해당해야 합니다. SSML 태그 지원은 Azure 클라우드와 컨테이너 환경 모두에서 각 텍스트 음성 변환에 대해 일관되게 적용됩니다.
예를 들어 latest
태그를 통해 다운로드된 모델(기본값은 "en-US")의 음성 이름은 en-US-AriaNeural
입니다.
<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
<voice name="en-US-AriaNeural">
This is the text that is spoken.
</voice>
</speak>
다음 단계
- 음성 컨테이너 개요를 참조하세요.
- 컨테이너 구성에서 구성 설정 검토
- 더 많은 Azure AI 컨테이너 사용