Qwen3‑TTS‑VD‑Flash 및 Qwen3‑TTS‑VC‑Flash 출시: 제어 가능한 음성 디자인과 빠른 다국어 음성 클로닝
TL;DR
Qwen은 두 가지 새로운 텍스트‑투‑스피치 모델을 발표했습니다—Qwen3‑TTS‑VD‑Flash는 자연어 기반 음성 디자인을, Qwen3‑TTS‑VC‑Flash는 3초 다국어 음성 클로닝을 위해 설계되었으며—두 모델 모두 Qwen API를 통해 이용 가능하고, 경쟁사보다 높은 제어성, 표현력 및 낮은 단어 오류율을 제공합니다.
새로운 모델 개요
Qwen3‑TTS‑VD‑Flash (음성 디자인)
- Purpose: 사용자가 음향 속성, 페르소나, 감정, 말투를 자연어로 설명함으로써 맞춤형 음성 프로필을 만들 수 있습니다. 별도의 참고 오디오를 제공하거나 고정된 카탈로그에서 선택할 필요가 없습니다.
- Control Granularity: 음색, 운율, 속도, 피치, 감정 톤에 대한 세밀한 지시를 지원하며, 무엇을 말할지부터 어떻게 말할지까지 전체 파이프라인을 포괄합니다.
- Benchmark Performance: InstructTTS‑Eval 스위트에서 Qwen3‑TTS‑VD‑Flash는 전체적으로 GPT‑4o‑mini‑tts와 Mimo‑audio‑7b‑instruct를 능가하고, 역할극 시나리오에서는 Gemini‑2.5‑pro‑preview‑tts를 앞섭니다.
- Expressiveness & Robustness: 의미 단서에 따라 톤과 리듬을 자동으로 조정하는 인간과 유사한 음성을 생성하며, 핀인(pinyin), 특수 기호, 희귀 문자 등 복잡하거나 비표준 텍스트도 안정적으로 파싱합니다.
Qwen3‑TTS‑VC‑Flash (음성 클로닝)
- Purpose: 약 3 초 만에 화자의 음성을 클론하고, 클론된 음색을 사용해 중국어, 영어, 독일어, 이탈리아어, 포르투갈어, 스페인어, 일본어, 한국어, 프랑스어, 러시아어 등 10개 언어로 음성을 합성할 수 있습니다.
- Multilingual Accuracy: MiniMax TTS 다국어 테스트 세트에서 평균 단어 오류율(WER)이 가장 낮으며, MiniMax, ElevenLabs, GPT‑4o‑Audio‑Preview를 모두 제치고 모든 지원 언어에서 최고 성능을 기록했습니다.
- Robust Text Handling: 복잡한 스크립트, 구두점, 실시간 오디오 입력을 품질 저하 없이 처리하며, 화자 정체성을 유지하면서 정확한 내용을 전달합니다.
- Cross‑Species Experimentation: 염소 소리와 같은 비인간 발성을 클론하는 능력을 보여주어 극한의 음색 유연성을 입증하는 개념 증명을 제공합니다.
핵심 기술 역량
Controllable Generation
- 사용자는 "중년 남성, 울려 퍼지는 바리톤, 과도하게 활기찬 인포머셜 목소리"와 같은 자연어 프롬프트를 입력하면 해당 설명에 맞는 음성을 얻을 수 있습니다.
- 역할극 예시에는 악당 마법사, 기업 프로젝트 매니저 등 서로 다른 페르소나가 포함되며, 각각 맞춤형 피치, 속도, 볼륨, 감정 흐름을 적용합니다.
High Expressiveness
- 두 모델 모두 의미 내용에 따라 운율을 동적으로 조정해, 수동 타이밍 신호 없이도 생동감 있고 상황에 맞는 전달을 구현합니다.
- 샘플 출력은 슬프고 숨결이 섞인 톤에서 자신감 넘치고 단호한 말투까지, 하나의 발화 안에서 섬세한 감정 변화를 보여줍니다.
Robustness to Complex Input
- 모델은 핀인 주석, 희귀 문자, 혼합 언어 문장을 정확히 읽어내며, 이해도와 자연스러움을 유지합니다.
- 실시간 오디오(예: 고대 중국 텍스트, 다국어 대화)도 오류 없이 처리되어 강력한 파싱 파이프라인을 입증합니다.
실용적인 사용법
API를 통한 음성 디자인 (Python 예시)
import requests, base64, os
api_key = os.getenv("DASHSCOPE_API_KEY")
headers = {"Authorization": f"Bearer {api_key}", "Content-Type": "application/json"}
payload = {
"model": "qwen-voice-design",
"input": {
"action": "create",
"target_model": "qwen3-tts-vd-realtime-2025-12-16",
"voice_prompt": "A composed middle‑aged male announcer with a deep, rich, magnetic voice, steady speed, clear articulation.",
"preview_text": "Dear listeners, welcome to the evening news.",
"preferred_name": "announcer",
"language": "en"
},
"parameters": {"sample_rate": 24000, "response_format": "wav"}
}
url = "https://dashscope-intl.aliyuncs.com/api/v1/services/audio/tts/customization"
resp = requests.post(url, headers=headers, json=payload, timeout=60)
if resp.status_code == 200:
out = resp.json()["output"]
voice_name = out["voice"]
audio = base64.b64decode(out["preview_audio"]["data"])
with open(f"{voice_name}_preview.wav", "wb") as f:
f.write(audio)
print(f"Created voice {voice_name}")
else:
print("Error", resp.status_code, resp.text)
위 스니펫은 맞춤형 음성 프로필을 생성하고 미리보기 WAV 파일을 저장합니다.
API를 통한 음성 클로닝 (Python 예시)
import dashscope, base64, pathlib, os
from dashscope.audio.qwen_tts_realtime import QwenTtsRealtime, QwenTtsRealtimeCallback, AudioFormat
def create_voice(file_path):
api_key = os.getenv("DASHSCOPE_API_KEY")
data_uri = "data:audio/mpeg;base64," + base64.b64encode(pathlib.Path(file_path).read_bytes()).decode()
payload = {
"model": "qwen-voice-enrollment",
"input": {
"action": "create",
"target_model": "qwen3-tts-vc-realtime-2025-11-27",
"preferred_name": "guanyu",
"audio": {"data": data_uri}
}
}
headers = {"Authorization": f"Bearer {api_key}", "Content-Type": "application/json"}
resp = requests.post("https://dashscope-intl.aliyuncs.com/api/v1/services/audio/tts/customization", json=payload, headers=headers)
return resp.json()["output"]["voice"]
class PrintCallback(QwenTtsRealtimeCallback):
def on_event(self, response):
if response.get('type') == 'response.audio.delta':
audio = base64.b64decode(response['delta'])
# stream or save audio here
voice = create_voice("voice.mp3")
callback = PrintCallback()
tts = QwenTtsRealtime(model="qwen3-tts-vc-realtime-2025-11-27", callback=callback,
url="wss://dashscope-intl.aliyuncs.com/api-ws/v1/realtime")
tts.connect()
tts.update_session(voice=voice, response_format=AudioFormat.PCM_24000HZ_MONO_16BIT, mode='server_commit')
for chunk in ["Right? I really like this kind of supermarket,", "especially during the New Year."]:
tts.append_text(chunk)
time.sleep(0.1)
tts.finish()
callback.wait_for_finished()
위 예시는 3초 길이의 음성 샘플을 등록한 뒤, 실시간으로 다국어 텍스트를 스트리밍 합성하는 방법을 보여줍니다.
TTS 분야에 미치는 영향
- 고정 음성 세트에서 동적 음성 디자인으로의 전환: 자연어 사양을 허용함으로써 Qwen3‑TTS‑VD‑Flash는 사전 녹음된 음성 라이브러리의 병목을 없애고, 브랜드 전용 혹은 캐릭터 기반 음성을 빠르게 프로토타이핑할 수 있게 합니다.
- 생산 속도의 다국어 클로닝: 3초 클로닝 시간과 10개 언어에 걸친 낮은 WER은 Qwen3‑TTS‑VC‑Flash를 현지화 가상 비서, 더빙, 크로스‑랭귀지 콘텐츠 제작 등 글로벌 애플리케이션에 적합하게 만듭니다.
- 경쟁 우위: GPT‑4o‑mini‑tts, Gemini‑2.5‑pro‑preview‑tts, MiniMax, ElevenLabs 대비 벤치마크 우수성은 Qwen의 아키텍처(대형 멀티모달 트랜스포머에 세밀하게 조정된 음향 제어 헤드)가 새로운 성능 기준을 설정하고 있음을 시사합니다.
- 연구 기회: Hugging Face와 ModelScope에 공개된 데모와 인용 정보는 제어 가능한 TTS, 다국어 음성 전이, 잡음 입력에 대한 강인성 등을 학술적으로 평가할 수 있는 기반을 제공합니다.
시작하기
- API 키 획득: Alibaba Cloud Model Studio(싱가포르 또는 베이징 지역 전용 키)에서 키를 발급받습니다.
- 필요 패키지 설치:
pip install requests dashscope pyaudio(운영체제별 portaudio 패키지 포함). - 모델 선택:
qwen3-tts-vd-realtime-2025-12-16은 음성 디자인,qwen3-tts-vc-realtime-2025-11-27은 클로닝에 사용합니다. - 위 코드 스니펫을 따라 음성 프로필을 만들거나 화자를 클론한 뒤, REST 또는 WebSocket 엔드포인트를 통해 텍스트를 합성합니다.
인용
@misc{qwen3_tts_202512,
author = {Qwen Team, Alibaba},
title = {Qwen3-TTS Steps Up: Voice Cloning and Voice Design!},
year = {2025},
url = {https://qwen.ai/blog?id=qwen3-tts-vc-voicedesign},
urldate = {2025-12-23}
}
모든 기술 세부 사항은 2025년 12월 23일자 Qwen 블로그 게시물에서 직접 인용했으며, 추가적인 주장이나 수치는 포함되지 않았습니다.