본문으로 건너뛰기

Qwen3 TTS로 성인 캐릭터 목소리 만들기: 프리셋, 지시문, 비용

Qwen3 TTS 음성을 고르고 읽는 방식을 지시해 오디오 파일로 저장하세요. 한 줄당 $0.0068부터, 성인용 대본은 있는 그대로 읽힙니다.

작성자
Lydia
발행
읽는 시간
약 8분
수정
가상의 과수원에서 바구니 하나에 담긴 배들과 따로 떨어진 배 하나 옆에 있는 성인 두 명

가상의 인물이 남기는 음성 메시지는 목소리가 그 사람에 맞고 읽는 방식이 그 순간에 맞을 때 비로소 먹힙니다. Qwen3 TTS는 성인 캐릭터의 대본을 단일 음성 MP3 하나로 바꿔 주며, 읽는 방식은 평범한 문장으로 적어 둔 메모로 조종합니다. SpicyAPI 태스크에는 프리셋 음성이 아홉 개 있고, 텍스트 1,000자당 $0.068, 요청당 100자가 최소입니다. 2026년 9월 테스트에서 직설체와 오디오북체 문단의 성인용 어휘는 있는 그대로 읽혔습니다. 녹음된 음성 메시지와 내레이션에 쓰세요. 이 경로에는 음성 복제나 실시간 스트리밍이 없습니다.

호스팅 태스크에 포함되는 것

항목Qwen3 TTS 태스크
필수 입력text, 1~2,000자
읽기 지시instructions, 최대 1,000자. 읽히지 않고 과금되지 않음
기본 음성Serena
출력24 kHz 모노 MP3 하나
가격텍스트 1,000자당 $0.068, 최소 100자($0.0068)
업로드한 음성 참조제공되지 않음
한 요청에 여러 화자제공되지 않음. 각 턴을 따로 생성하세요
수치 속도 또는 피치제공되지 않음. 읽는 방식은 instructions에 기술하세요

프리셋을 고르고 Qwen3 TTS 태스크 페이지에서 생성하세요. Qwen 팀 저장소는 CustomVoice, Base(복제), VoiceDesign 변형도 다룹니다. 이들은 별도 제공물입니다. 라이브러리의 ref_audio나 speaker 인수는 여기 입력이 아니며, 이 태스크의 음성 필드는 voice_id입니다.

가진 대본에 맞는 음성 고르기

프리셋공개된 음성 설명모국어
Serena따뜻하고 부드러운 여성 음성중국어
Vivian밝고 약간 날카로운 여성 음성중국어
Uncle_Fu낮고 부드러운 남성 음성중국어
Dylan또렷한 베이징 남성 음성중국어, 베이징 방언
Eric생기 있고 약간 갈라진 남성 음성중국어, 쓰촨 방언
Ryan리듬감 있는 남성 음성영어
Aiden또렷한 미국 남성 음성영어
Ono_Anna가볍고 장난스러운 여성 음성일본어
Sohee따뜻하고 표현력 있는 여성 음성한국어

모든 프리셋은 지원되는 모든 언어를 읽을 수 있지만, Qwen 팀은 최상의 품질을 위해 음성의 모국어를 권장합니다. 영어 남성 캐릭터는 Ryan이나 Aiden부터 시작하세요. 영어 여성 캐릭터는 Serena나 Vivian을 써 보세요. 이 모음에는 영어가 모국어인 여성 음성이 없으니, 확정하기 전에 먼저 들어 보세요.

Serena 음성 메시지 샘플 듣기: 한밤중의 "나중에 전화해"라는 메모를 숨 가쁜 듯 장난스러운 지시로 읽은 예입니다.

먼저 Playground에서 시도해 보기

Qwen3 TTS 태스크 페이지를 열고 Playground 탭을 사용하세요.

  1. Text에는 들려야 할 말만 붙여 넣으세요(페이지의 샘플 대본이 좋은 첫 테스트입니다).
  2. Voice에서 이름을 고르세요(기본값은 Serena).
  3. Delivery instructions에 읽기 메모를 적으세요.
  4. Language는 Auto-detect로 두세요. 감지가 애매하면 영어 대본은 영어로 고르세요.
  5. 실행한 뒤 Output에서 결과를 재생하고 MP3를 받으세요.

데이트를 마친 뒤의 가상의 성인: Text "I had a good time tonight. More than I expected, actually. Call me tomorrow? I'd like to see you again.", Voice Serena, Delivery instructions "따뜻하고 살짝 쑥스러운, 성인 청자 한 명에게 조용히 말하기. 마지막 질문은 대화체로 유지." 텍스트를 Serena:나 "Read this in a soft voice"로 시작하지 마세요. 둘 다 그대로 읽힙니다. 코드를 쓰기 전에 여기서 음성 두세 개와 메모를 먼저 비교해 보세요. 가격은 실행 전에 표시됩니다.

language는 auto, zh, en, de, fr, es, it, pt, ru, ja, ko를 받습니다. 텍스트를 어떻게 읽을지 정할 뿐 번역하지 않습니다.

그다음 코드로 호출하기

Python SDK(pip install spicyapi)를 설치하고 환경 변수에 SPICY_API_KEY를 설정한 뒤 실행하세요.

python
import urllib.request
import uuid

from spicyapi import SpicyClient, output_assets

client = SpicyClient()  # reads SPICY_API_KEY from the environment

task = client.create_task(
    model="alibaba/qwen-3-tts/text-to-speech",
    input_data={
        "text": "I had a good time tonight. More than I expected, actually. Call me tomorrow? I'd like to see you again.",
        "voice_id": "Serena",
        "language": "en",
        "instructions": "Warm and slightly shy, speaking quietly to one adult listener. Keep the final question conversational.",
    },
    idempotency_key=str(uuid.uuid4()),  # new key per new request; reuse only to retry the same one
)

final = client.wait_for_terminal(task["taskId"])
if final["state"] != "succeeded":
    raise RuntimeError(f"Task {task['taskId']} ended as {final['state']}")

urllib.request.urlretrieve(output_assets(final)[0]["url"], "voice-message.mp3")

대기, 재시도, 견적, 오류는 Python SDK 레퍼런스와 비동기 태스크 가이드에 있습니다.

Agent에게 맡기기

어시스턴트가 대본을 읽게 하려면 CLI나 MCP 서버를 넘기세요. 둘 다 가격을 보여 주고 유료 호출 전에 확인을 요청합니다. Skill은 그 위에 지시문을 더합니다.

  • CLI. spicyapi는 터미널에서 태스크 하나를 실행합니다(npx @spicyapi/cli는 설치 없이도 동작). 같은 input 객체를 input.json에 넣으세요.

``bash spicyapi tasks create --model alibaba/qwen-3-tts/text-to-speech \ --input-file input.json --idempotency-key voice-message-take-1 --wait ``

  • MCP 서버. 어시스턴트에 MCP 서버를 추가하고 이렇게 물어보세요: "Qwen3 TTS로, Serena로, 따뜻하고 살짝 쑥스럽게 이 대사를 읽어줘." spicyapi_task_create를 호출하고(가격 확인에서 멈춥니다), 다음으로 spicyapi_task_wait를 호출합니다.
  • Skill. npx skills add spicyapi-ai/spicy-skill는 Agent Skill을 설치합니다. 코딩 어시스턴트가 현재 스키마를 읽고 멱등성 키를 재사용하도록 가르칩니다. 그 자체로 태스크를 실행할 수 없으므로 CLI나 MCP와 함께 사용하세요.

같은 대사를 세 가지 방향으로 지시하기

텍스트와 음성은 고정하고 메모만 바꾸세요. "I thought you'd forgotten"이라면:

의도한 감정시도해 볼 지시문
안도"안도한 작은 한숨, 미소, 마지막 단어는 조금 작게"
상처받음"조용하고 조심스럽게, 더 느리게, 미소 없이"
장난기"가볍고 장난스럽게, 끝을 살짝 올려, 씩 웃음을 감춘 듯"

한 번에 하나씩만 바꾸세요. "속삭임 빼기"나 "첫 문장 이후 더 느리게"는 그 테이크를 고치지만, "더 감정적으로, 더 인간적으로"는 고치지 못합니다. 결과가 너무 연극적이면 메모를 "자연스러운 대화체 읽기."로 줄이세요.

NSFW 대본도 읽을 수 있나

테스트는 직설적인 성인 문단, 오디오북 구성 문단, 큐가 많은 문단을 다뤘고 Serena 또는 Ryan에 읽기 지시를 함께 줬습니다. 직설본과 오디오북본의 전사문은 성인용 어휘까지 포함해 대본과 단어 단위로 일치했고, 지시문 텍스트는 한 번도 읽히지 않았습니다.

큐가 많은 문단도 성인용 어휘는 유지했지만, 단어가 아닌 발성 때문에 대본에서 더 멀어졌습니다. 호흡과 웃음은 조절할 대상이 아니라 들어 볼 대상입니다. 어떤 장면이 그런 요소에 의존한다면 그 순간의 오디오를 먼저 생성하고, 다른 모델의 대괄호나 소괄호 문법이 여기서도 통한다고 가정하지 마세요.

두 캐릭터 장면 만들기

한 요청에는 한 음성만 들어갑니다. 가상의 성인 두 명이라면 각 턴을 따로 생성하세요.

턴음성텍스트지시
1Serena"Did you really think I'd leave without saying goodnight?"따뜻하고 편안한 질문
2Ryan"No. I was hoping you would come find me."조용하고 즐거워하는 대답

복수 화자를 다루는 ComfyUI 튜토리얼은 추가 노드에서 화자 이름, 간격, 겹침을 파싱합니다. 그런 태그는 여기 입력 필드가 아닙니다. 읽을 텍스트에서 이름을 빼고 각 턴을 각자의 voice_id로 보낸 다음, 편집기에서 간격을 맞추세요. 짧은 간격으로 시작해 두 번째 클립이 자연스럽게 들릴 때까지 옮기세요. 두 이름을 하나의 text 필드에 넣으면 프리셋 하나가 라벨과 두 대사를 모두 읽습니다. 대화 전체를 스크립트로 짜고 클립을 자동으로 붙이려면 Seed Speech 2.0 대화 워크플로를 보세요. 그 결합 스크립트는 어떤 음성에도 동작합니다.

한 음성으로 된 긴 이야기는 2,000자 전에 문장이나 문단 경계에서 나누고, 모든 구간에서 같은 음성과 메모를 재사용하세요. 어떤 구절을 바꾸려면 앞뒤 문장 전체를 다시 생성하고 옆의 쉼 지점에서 잘라내세요. 그러면 볼륨과 속도가 여전히 맞습니다.

짧은 답에는 최소 과금이 중요합니다

비용은 max(text characters, 100) × $0.068 / 1,000이며 공백과 문장부호도 셉니다. 지시문은 무료입니다.

입력 길이과금 대상 문자 수비용
40자100$0.0068
80자100$0.0068
180자180$0.01224
1,000자1,000$0.068
2,000자2,000$0.136

따로따로 보낸 40자짜리 답 열 개는 $0.068입니다. 텍스트 합계는 400자에 불과합니다만, 같은 음성으로 400자를 한 요청에 넣으면 $0.0272입니다. 편집상 가능하다면 한 음성의 연속된 내레이션은 합치세요. 다만 최소 과금을 피하려고 다른 캐릭터를 합치지는 마세요.

실망스러운 결과 고치기

문제변경
한 대사가 급하게 흘러간다instructions에 "급하지 않게, 첫 문장 뒤에 자연스러운 쉼을 두고" 추가
이름 발음이 틀린다text에 소리 나는 대로 적고, 공개 전사문에서는 올바른 철자를 유지
메모를 바꿔도 음색이 거의 안 바뀐다다른 프리셋을 시도하세요. 읽기 지시는 음성의 기본 성격을 바꾸지 않습니다
요청이 speed, pitch, ref_audio를 거부한다제거하고 위의 네 필드를 사용하세요

업로드한 음성 복제나 실시간 대화가 필요하면 그 기능을 제공하는 태스크를 고르세요. 성인용 대본에서 다른 음성 모델을 비교하려면 텍스트 음성 변환 API 비교를 보세요.

다른 언어 English · 日本語 · Deutsch · Français · Español · Português (Brasil) · Русский · Italiano · Polski

직접 해 보기

실행한 만큼만 결제하세요. 요금제도, 구독도 없습니다.

사용 모델: MiniMax H3 · ByteDance Seedance 2.0 Fast