Articleaws.amazon.com·2026년 9월 25일·0

Deploying real-time personalized speech with Qwen3-TTS on Amazon SageMaker AI

Quick Summary

Qwen3 TTS 12Hz 1.7B Base를 Amazon SageMaker JumpStart로 배포하면 짧은 참조 음성과 전사문으로 재학습 없이 음성을 복제할 수 있으며, 두 추론 단계의 GPU 메모리 설정과 TTS 요청 라우팅이 핵심이다.

Deploying real-time personalized speech with Qwen3-TTS on Amazon SageMaker AI 관련 대표 이미지

🖼️ 인포그래픽

Deploying real-time personalized speech with Qwen3-TTS on Amazon SageMaker AI 내용을 설명하는 본문 이미지

🖼️ 4컷 인포그래픽

Deploying real-time personalized speech with Qwen3-TTS on Amazon SageMaker AI의 핵심 내용을 4단계로 요약한 인포그래픽
Deploying real-time personalized speech with Qwen3-TTS on Amazon SageMaker AI 핵심 내용을 4단계로 압축한 4컷 인포그래픽

💡 한 줄 요약

Qwen3-TTS-12Hz-1.7B-Base를 Amazon SageMaker JumpStart로 배포하면 짧은 참조 음성과 전사문으로 재학습 없이 음성을 복제할 수 있으며, 두 추론 단계의 GPU 메모리 설정과 TTS 요청 라우팅이 핵심이다.

📌 핵심 요약

  • Alibaba Cloud의 Qwen3-TTS는 한국어를 포함한 10개 언어와 스트리밍 생성을 지원하며, Qwen3-TTS-12Hz-1.7B-Base는 수초의 참조 음성과 전사문으로 화자의 음색·높낮이·리듬을 반영하고 다른 언어로도 음성을 생성한다.
  • Amazon SageMaker JumpStart는 모델 아티팩트와 사전 구축된 서빙 컨테이너를 제공한다. Amazon SageMaker AI는 실시간 엔드포인트의 인프라 프로비저닝·상태 모니터링·자동 확장을 관리하며, 데이터는 사용자의 AWS 환경에 유지되고 비용은 문자 수 대신 컴퓨팅 사용량에 연동된다.
  • 배포 예제는 모델 버전 1.0.1과 NVIDIA L4 GPU 1개·24 GB 메모리를 갖춘 ml.g6.4xlarge를 사용한다. 같은 GPU에서 실행되는 talker와 code2wav에 SM_VLLM_GPU_MEMORY_UTILIZATION=0.45를 각각 적용해 합산 예약 비율을 0.90으로 제한한다.
  • 음성 복제 호출에는 CustomAttributes="route=/v1/audio/speech"와 task_type="Base"가 필요하다. 참조 음성은 24 kHz 모노 WAV로 변환한 base64 데이터 URI가 권장되며, 참조 전사문과 생성할 텍스트를 함께 보내면 예제에서는 24 kHz 모노 WAV를 반환한다.
  • Amazon CloudWatch Logs의 시작 로그 예시는 talker 가중치 3.66 GiB, code2wav 가중치 0.45 GiB, talker KV 캐시 6.08 GiB와 56,928토큰의 용량을 보여준다. 제공된 본문은 단일 문장 호출까지 설명하고 긴 콘텐츠 처리 설명 도중 끊겨 있어, 후속 처리 방식과 구체적인 지연 시간·처리량은 확인할 수 없다.

🧩 주요 포인트

  1. 사용자 참조 음성을 받는 Base와 사전 정의된 화자를 사용하는 CustomVoice의 차이 → 화자 개인화와 다국어 정체성 유지가 모델 선택의 기준이 된다.
  2. talker와 code2wav가 GPU를 공유하는 구조 → 모델 가중치 크기뿐 아니라 단계별 메모리 예약과 KV 캐시를 함께 고려해야 시작 시 메모리 부족을 피할 수 있다.
  3. 기본 /invocations 경로가 completions 처리기로 연결되는 컨테이너 구조 → 엔드포인트 배포 성공과 별개로 TTS 라우팅 및 음성 복제 페이로드 형식을 맞춰야 실제 음성을 얻을 수 있다.

🧠 상세 정리

1. 짧은 참조 음성으로 구현하는 개인화

음성 복제는 특정 화자의 짧은 녹음과 그 녹음의 전사문을 받아, 새로운 텍스트를 해당 화자의 목소리로 발화하는 기능이다. 이 글은 공개 모델인 Qwen3-TTS-12Hz-1.7B-Base를 Amazon SageMaker JumpStart에서 완전 관리형 실시간 추론 엔드포인트로 배포하는 방법을 설명하며, 기본적인 복제에 모델 재학습이 필요하지 않다고 밝힌다. 미디어 제작자와 교육자, 애플리케이션 개발자는 이를 개인화된 음성 경험, 다국어 콘텐츠 현지화, 접근성 지원에 활용할 수 있다. 자체 호스팅 방식은 오디오 데이터를 사용자의 AWS 환경에 유지하고 비용을 통제하며 모델을 도메인에 맞게 조정할 수 있다는 장점으로 제시된다. Amazon SageMaker AI는 인프라 프로비저닝과 상태 모니터링, 자동 확장을 관리하므로 사용자가 기반 GPU 서버를 직접 관리할 필요가 없다.

2. Qwen3-TTS의 언어 지원과 모델 변형

Alibaba Cloud의 Qwen 팀이 개발한 Qwen3-TTS는 중국어, 영어, 일본어, 한국어, 독일어, 프랑스어, 러시아어, 포르투갈어, 스페인어, 이탈리아어의 10개 언어를 지원하는 공개 음성 합성 모델 계열이다. 모델들은 Qwen3-TTS-Tokenizer-12Hz 음성 토크나이저를 사용하고, 지연 시간이 짧아야 하는 상호작용 시나리오를 위한 스트리밍 생성을 지원한다. 글에서 사용하는 Base 변형은 수초의 사용자 음성과 전사문에서 음색, 높낮이, 발화 리듬을 포착해 새로운 텍스트에 적용하며 미세 조정의 기반으로도 사용할 수 있다. 이는 사용자가 제공한 참조 음성 대신 미리 정의된 화자 집합으로 발화하는 CustomVoice 변형과 구별된다. 한 언어에서 포착한 목소리의 정체성을 유지하며 다른 언어로 생성하는 교차 언어 복제도 지원하고, JumpStart에는 이 Base 모델과 함께 Qwen3-TTS-12Hz-1.7B-CustomVoice 및 Qwen3-ASR-1.7B가 제공된다.

3. 기대 효과와 주요 활용 사례

글은 짧은 음성 샘플만으로 목표 화자의 목소리를 생성할 수 있어 대규모 학습 데이터를 모으지 않고도 개인화를 구현할 수 있다고 설명한다. 다국어 활용 측면에서는 한 언어로 녹음한 목소리를 다른 언어의 발화에도 유지할 수 있으며, 비용 측면에서는 문자당 API 요금 대신 컴퓨팅 사용량에 연동되는 배포 방식을 장점으로 든다. 데이터가 사용자의 AWS 계정과 관리하는 Amazon SageMaker 엔드포인트 안에 머문다는 점도 주요 이점으로 제시된다. 활용 사례에는 원래 화자의 목소리를 보존하는 콘텐츠 현지화, 일관된 브랜드 음성을 사용하는 고객센터와 가상 비서, 강사나 저자의 목소리로 제공하는 교육 콘텐츠와 오디오북이 포함된다. 스튜디오 제작 전에 대사와 내레이션을 시험하는 창작 시제품 작업, 스트리밍 음성 인식과 낮은 지연 시간의 합성을 결합하는 실시간 음성 에이전트도 소개되지만, 구체적인 비용 절감률이나 응답 속도 수치는 제시되지 않는다.

4. 관리형 엔드포인트의 추론 구조

솔루션은 JumpStart가 제공하는 모델 아티팩트와 사전 구축된 서빙 컨테이너를 사용하므로 별도의 사용자 정의 추론 핸들러를 작성하지 않는다. 사용자는 JumpStartModel 객체를 만들고 deploy 메서드를 호출한 뒤 Amazon SageMaker 런타임 클라이언트로 생성된 엔드포인트를 호출한다. 클라이언트의 HTTP 요청에는 생성할 텍스트, base64로 인코딩된 참조 오디오, 참조 오디오의 전사문이 포함되며, Amazon SageMaker AI는 이를 GPU 인스턴스의 vLLM-Omni 서빙 컨테이너로 전달한다. 컨테이너 내부에서는 talker 단계가 텍스트와 참조 목소리로 음성 토큰을 생성하고, code2wav 단계가 토큰을 실제 파형으로 변환한다. 결과는 요청한 오디오 형식으로 클라이언트에 반환되며 이 글은 24 kHz WAV 출력을 사용하고, 두 단계가 같은 GPU를 사용한다는 구조가 메모리 용량 설정의 핵심 조건이 된다.

5. 배포 준비와 JumpStart 설정

배포에는 Amazon SageMaker AI와 Amazon S3에 접근할 수 있는 AWS 계정, 모델·엔드포인트 구성·엔드포인트 생성 및 호출 권한을 갖춘 IAM 자격 증명이 필요하다. 실행 환경은 Amazon SageMaker Studio, 노트북 인스턴스 또는 Amazon SageMaker Python SDK가 설치된 로컬 환경을 사용할 수 있으며, 지원 GPU 인스턴스의 서비스 할당량과 수초의 참조 음성 및 전사문도 준비해야 한다. 예제는 NVIDIA L4 GPU 1개와 24 GB 메모리를 갖춘 ml.g6.4xlarge를 사용하고, 재현성을 위해 모델 버전을 1.0.1로 고정한다. JumpStartModel에는 모델 ID huggingface-ttsvoiceclone-qwen3-tts-12hz-1-7b-base, 실행 역할 ARN, 인스턴스 유형, GPU 메모리 환경 변수를 전달하며, deploy 호출에서는 엔드포인트 이름 qwen3-tts-voice-clone과 accept_eula=True를 지정한다. 컨테이너가 모델을 GPU에 올려 InService 상태가 되기까지 수분이 걸리고, 상태는 Amazon SageMaker AI 콘솔이나 describe_endpoint API로 확인할 수 있다.

6. 두 단계의 GPU 메모리 예약 조정

vLLM은 gpu_memory_utilization 값에 따라 GPU 메모리를 미리 예약하므로, 같은 GPU에서 실행되는 talker와 code2wav의 예약량 합계가 전체 용량을 넘지 않게 설정해야 한다. 글은 두 단계에 동일하게 적용되는 SM_VLLM_GPU_MEMORY_UTILIZATION을 0.45로 지정하면 합계가 0.90이 되어 약 10%의 여유를 남길 수 있다고 설명한다. Amazon CloudWatch Logs의 컨테이너 시작 로그 예시에서 talker 가중치는 3.66 GiB, code2wav 가중치는 0.45 GiB를 사용하고, talker KV 캐시는 6.08 GiB이며 토큰 용량은 56,928개다. 가중치를 제외한 허용 메모리의 상당 부분은 처리 중인 요청의 토큰을 보관하는 KV 캐시가 되므로, 가중치 크기만으로 GPU 사용량을 판단해서는 안 된다. 본문은 24 GB GPU의 사용 가능한 용량을 약 22 GiB로 보고 이 설정에서 각 단계가 대략 10 GiB까지 사용할 수 있다고 설명하며, 해당 1.7B 모델에는 더 큰 GPU가 필요하지 않다는 근거로 제시한다.

7. TTS 라우팅과 참조 오디오 형식

엔드포인트가 InService 상태가 된 뒤에는 이 JumpStart 컨테이너에 맞는 라우팅과 페이로드 구조로 음성 복제를 시험해야 한다. Amazon SageMaker 엔드포인트는 단일 /invocations 경로를 제공하지만 컨테이너가 기본적으로 이를 completions 처리기로 연결하므로, TTS 처리기에 도달하려면 CustomAttributes에 route=/v1/audio/speech를 전달해야 하며 이를 생략하면 요청이 거부된다. 페이로드는 OpenAI 음성 스키마를 사용하고 task_type을 Base로 설정하며, 참조 오디오 URI와 해당 녹음의 전사문을 포함해야 한다. 참조 오디오는 data:audio/wav;base64,... 형태의 데이터 URI로 제공하고, 인코딩 전에 24 kHz 모노 WAV로 변환하는 형식이 권장된다. 예제는 ffmpeg로 reference.m4a를 변환한 후 soundfile과 base64로 데이터를 준비하며, response_format을 wav로 지정해 모델이 생성한 24 kHz 모노 음성을 받는다.

8. 단일 문장 호출과 제공된 설명의 범위

단일 문장 예제는 sagemaker-runtime 클라이언트를 만들고 페이로드의 input에 생성할 문장, ref_audio에 참조 음성 URI, ref_text에 참조 전사문을 넣어 호출한다. 같은 페이로드에는 model을 /opt/ml/model로, task_type을 Base로, language를 English로, response_format을 wav로 지정한다. invoke_endpoint에는 엔드포인트 이름과 application/json 콘텐츠 유형, 필수 라우팅 속성을 전달하고, 반환된 응답 본문을 clone.wav 파일로 저장한다. 글은 이 요청이 참조 화자의 목소리로 한 문장을 반환하는 가장 기본적인 사례라고 설명하며, 참조 입력 reference_original_input.wav와 생성 결과 cloned_output.wav를 예시 파일로 제시한다. 단일 요청은 한 문장이나 짧은 구절에 적합하다고 밝히지만 제공된 본문은 긴 콘텐츠를 다루는 설명 도중 끊겨 있어, 후속 처리 패턴이나 구체적인 운영 지표·용량 조정 절차는 이 자료만으로 확인할 수 없다.

🧾 핵심 주장 / 시사점

  • 관리형 배포가 GPU 서버 운영 부담을 줄여도, talker와 code2wav의 메모리 예약을 합산하는 설정 판단은 필요하다. 배포 편의성과 추론 자원 설정은 별개의 과제다.
  • Base의 사용자 참조 음성 및 교차 언어 복제 기능은 개인화와 현지화를 연결한다. 사전 정의된 화자를 사용하는 CustomVoice와의 차이는 화자 정체성을 어디에서 가져오는지에 있다.
  • 스트리밍 지원과 실시간 엔드포인트 제공만으로 실제 응답 속도나 처리량을 판단할 수는 없다. 제공된 자료의 실행 예시는 단일 문장 호출이며, 긴 콘텐츠 처리와 성능 수치는 확인되지 않는다.

✅ 액션 아이템

  • Qwen3-TTS-12Hz-1.7B-Base와 CustomVoice의 차이를 바탕으로 사용자 참조 음성 및 다국어 정체성 유지 요구에 맞는 모델 선택 검토.
  • ml.g6.4xlarge 배포에서 SM_VLLM_GPU_MEMORY_UTILIZATION=0.45 적용 및 Amazon CloudWatch Logs를 통한 talker·code2wav 메모리 사용 확인.
  • CustomAttributes="route=/v1/audio/speech", task_type="Base", 24 kHz 모노 WAV 참조 음성과 전사문을 사용한 단일 문장 음성 복제 호출 검증.

❓ 열린 질문

  • Qwen3-TTS-12Hz-1.7B-Base의 교차 언어 복제는 한국어를 포함한 10개 언어에서 화자의 음색·높낮이·리듬을 얼마나 일관되게 유지하는가?
  • ml.g6.4xlarge에서 SM_VLLM_GPU_MEMORY_UTILIZATION=0.45를 적용했을 때 실제 지연 시간과 처리량은 어느 수준인가?
  • 단일 문장보다 긴 콘텐츠를 Qwen3-TTS-12Hz-1.7B-Base로 처리할 때 어떤 요청 방식이 필요한가?

관련 문서

공통 태그와 주제 흐름을 기준으로 같이 보면 좋은 문서를 이어서 제안합니다.