Seed Speech 2.0은 요청 하나에 프리셋 목소리 하나를 읽기 때문에, 성인 두 캐릭터의 대화는 한 줄당 작업 하나로 만들고 짧은 오디오 편집으로 이어 붙입니다. 작업당 요금은 음성으로 읽는 텍스트 1,000자당 0.072달러이고 최소 요금은 없으며, 연기 지시는 무료입니다.
캐릭터 보이스 메시지, 오디오북 내레이션, 한쪽 대사만 다시 만들고 싶은 대화에 알맞습니다. 두 목소리와 배경 소리를 한 파일에 담고 싶다면 대신 Seed Audio 1.0을 사용하세요.
요청 하나로 얻는 것
| 항목 | Seed Speech 2.0 |
|---|---|
| 필수 필드 | text, 1~5,000자 |
| 음성 | 41개 프리셋 중 voice_id 하나. 기본값은 stokie_en |
| 연기 지시 | instructions, 최대 1,000자. 읽지 않으며 과금도 되지 않습니다 |
| 출력 | 24 kHz 모노 MP3 또는 Ogg Opus(opus). 단어별 타이밍이나 자막은 없음 |
| 길이와 속도 | 음성은 초당 약 11자. 300자를 생성하는 데 약 8초 |
| 보관 | 14일간 보관되므로 다운로드하세요 |
| 비용 | 1,000자당 0.072달러. 5,000자는 0.36달러. 만료된 작업은 과금되지 않습니다 |
| 지원하지 않음 | 참조 음성 업로드, 여러 화자 배열 |
프리셋을 고르고 Seed Speech 2.0 작업 페이지에서 한 줄을 시험해 보세요. BytePlus의 더 넓은 Seed Speech 제품군에 있는 음성 복제, 스트리밍, 음성 인식은 이 작업에 포함되지 않습니다. 먼저 목소리를 들어 보려면 공개된 늦은 밤 보이스 메모를 재생하세요. stokie_en에 부드럽고 친밀한 연기 지시를 적용한 예시입니다.
먼저 Playground에서 두 대사를 시험해 보기
해당 페이지에서 Playground 탭을 사용합니다. 데이트 후의 가상 성인 두 사람의 대사마다 다음과 같이 합니다.
- Text에는 들려야 할 말만 붙여 넣습니다. 화자 이름("Anna:")이나 지문("그녀가 미소 짓는다")은 쓰지 마세요. 그대로 읽히며, 두 캐릭터를 한 요청에 넣으면 한 목소리가 두 대사와 이름을 모두 읽게 됩니다.
- Voice에서 이름을 고릅니다(기본값은 Stokie · English).
- Delivery instructions에 연기 방식을 적습니다. 읽히지 않으며 과금되지 않습니다.
- Language는 Auto로 두고 실행한 뒤, 결과를 재생하고 MP3를 다운로드합니다.
Stokie과 Tim은 영어 프리셋이므로 대사와 지시는 영어로 둡니다.
| 대사 | 음성 | Text | Delivery instructions |
|---|---|---|---|
| 1 | Stokie(stokie_en) | "You don't have to go yet. Stay for another coffee? I like talking to you when we're not watching the clock." | Warm and slightly playful. Speak quietly to one adult listener, with a natural question rather than a sales pitch. |
| 2 | Tim(tim_en) | "Then I'll stay. I was hoping you would give me a reason." | Low, relaxed and amused. Answer an invitation naturally; do not sound like an announcer. |
다운로드한 두 파일을 아무 오디오 편집기에서나 짧은 간격을 두고 이어 붙이세요. 이어 붙이기를 자동화하려면 아래 스크립트를 사용합니다.
그다음, 대화 전체를 스크립트로 만들기
Python SDK(pip install spicyapi)와 ffmpeg를 설치하고 SPICY_API_KEY를 설정한 뒤 아래 코드를 실행합니다. 대사마다 작업 하나를 보내고, 각 MP3를 다운로드한 다음, 대사마다 0.35초의 무음을 넣고 음량을 맞춰 하나로 합칩니다.
import subprocess, urllib.request
from spicyapi import SpicyClient, output_assets
client = SpicyClient() # reads SPICY_API_KEY from the environment
GAP = 0.35 # seconds of silence after each turn
TURNS = [
{"text": "You don't have to go yet. Stay for another coffee? I like talking to you when we're not watching the clock.",
"voice_id": "stokie_en",
"instructions": "Warm and slightly playful. Quiet, to one adult listener."},
{"text": "Then I'll stay. I was hoping you would give me a reason.",
"voice_id": "tim_en",
"instructions": "Low, relaxed and amused. Answer naturally, not like an announcer."},
]
files = []
for i, turn in enumerate(TURNS, 1):
task = client.create_task(
model="bytedance/seed-speech-2.0/text-to-speech",
input_data=dict(turn, language="en", output_format="mp3"),
idempotency_key=f"dialogue-take-1-turn-{i}", # new keys for a new take
)
final = client.wait_for_terminal(task["taskId"])
if final["state"] != "succeeded":
raise RuntimeError(f"Turn {i} ended as {final['state']}")
files.append(f"turn-{i:02d}.mp3")
urllib.request.urlretrieve(output_assets(final)[0]["url"], files[-1])
cmd = ["ffmpeg", "-y"] + [x for f in files for x in ("-i", f)]
chains = [f"[{i}:a]loudnorm=I=-18,apad=pad_dur={GAP}[a{i}]" for i in range(len(files))]
graph = ";".join(chains) + ";" + "".join(f"[a{i}]" for i in range(len(files))) + f"concat=n={len(files)}:v=0:a=1"
subprocess.run(cmd + ["-filter_complex", graph, "-ar", "24000", "-b:a", "128k", "dialogue.mp3"], check=True)답변이 자연스럽게 들어올 때까지 GAP을 조정하세요. 한 줄의 시작이 어색하다면 단어 하나를 고치려 하지 말고 문장 전체를 다시 생성한 뒤 파일을 다시 만드세요. 대기, 재시도, 오류는 Python SDK 레퍼런스와 비동기 작업 가이드에 있으며, 대규모 환경에서의 복구는 폴링과 웹훅을 비교한 블로그 글에서 다룹니다.
또는 에이전트에게 실행시키기
어시스턴트가 대본을 음성으로 만들게 하려면 CLI나 MCP 서버를 주세요. 둘 다 가격을 보여 주고 유료 호출 전에 확인을 요청합니다. Skill은 둘 중 어느 쪽에든 지침을 더해 줍니다.
- CLI.
spicyapi는 호출 한 번에 대사 하나를 실행합니다(npx @spicyapi/cli는 설치 없이 동작합니다). 해당 대사의input객체를turn-1.json에 넣으세요.
``bash spicyapi tasks create --model bytedance/seed-speech-2.0/text-to-speech \ --input-file turn-1.json --idempotency-key dialogue-take-1-turn-1 --wait ``
- MCP 서버. 어시스턴트에 MCP 서버를 추가하고 "Read these two lines with Seed Speech 2.0, stokieen then timen, and join them with a short gap."이라고 요청하세요. 대사마다
spicyapi_task_create(가격 확인을 위해 멈춥니다)와spicyapi_task_wait를 호출합니다. - Skill.
npx skills add spicyapi-ai/spicy-skill은 Agent Skill을 설치합니다. 코딩 어시스턴트가 최신 스키마를 읽고 idempotency key를 재사용하도록 알려 줍니다. 혼자서는 작업을 실행할 수 없으므로 CLI나 MCP와 함께 사용하세요.
음성과 언어를 함께 고르기
각 voice ID의 접미사는 그 음성이 대상으로 하는 언어를 나타냅니다. 영어 프리셋에는 stokie_en, dacey_en, tim_en이 있습니다. 그 밖에 일본어(minimi_ja), 독일어(sven_de), 프랑스어(usseau_fr), 한국어(shane_ko), 스페인어(felipe_es) 등이 있고, jess_ja_es_id_pt_en_zh는 여섯 언어를 구사합니다. 목록에는 남성 음성인지 여성 음성인지 나와 있지 않으므로 오디션을 해 보세요. 100자짜리 같은 대사를 후보 다섯 개로 시험해도 합계 약 0.036달러입니다. 채택한 voice_id와 instructions는 그 캐릭터의 이후 모든 대사에 계속 사용하세요.
language는 zh, en, ja, es-mx, id, pt-br, ko, it, de, fr를 받습니다. 생략하면 자동 감지하며, 짧거나 여러 언어가 섞인 대사가 엉뚱한 언어로 읽힐 때 지정하세요. 스페인어는 es-mx, 포르투갈어는 pt-br입니다. 번역은 하지 않으므로 대사를 대상 언어로 직접 쓰세요.
성인 대본과 비언어적 소리
2026년 9월 테스트 기준으로 SpicyAPI는 이 모델에 콘텐츠 필터를 추가하지 않으며, 직접적인 성인 문장과 오디오북 스타일의 성인 문장이 단어 하나 틀리지 않고 그대로 나왔고 지시문이 읽힌 적은 한 번도 없었습니다. 연기 지시가 많은 문장은 어휘를 유지하면서도 말이 아닌 소리를 스스로 덧붙였습니다. 이 작업에는 소리 태그 필드가 없으므로 소리는 "Mm...", "Ah..."처럼 단어로 쓰고 숨소리나 톤은 instructions에 설명하세요. 장면이 연기된 숨소리와 신음에 좌우된다면 Gemini 3.8 Flash, Grok, MiniMax는 본문 속 큐를 소리로 연기합니다. Seed Speech는 그렇게 하지 않습니다.
실제 문제를 해결하는 설정
| 설정 | 범위 | 사용할 때 |
|---|---|---|
speed | 0.5~2, 기본값 1 | 대사가 급하게 들릴 때: 0.9를 시도하세요. 한 구절만 급하다면 문장을 줄이거나 마침표를 추가합니다 |
pitch | -12~+12 반음 | 캐스팅 후의 작은 보정. 다른 캐릭터로 만들려면 프리셋을 바꾸세요 |
volume | 0.5~2, 기본값 1 | 교체한 대사가 앞뒤보다 크거나 작을 때 |
sample_rate | 8,000~48,000 Hz | 편집 프로젝트가 24 kHz가 아닌 샘플레이트를 요구할 때 |
output_format | mp3 또는 opus | 플레이어가 Ogg Opus를 지원한다면 더 작은 파일을 위한 Opus. WAV는 제공되지 않으므로 로컬에서 변환하세요 |
연극적으로 들리는 대사는 대개 지시가 너무 깁니다. "Quiet, natural conversational delivery."로 바꿔 보세요. 근본적인 성격이 맞지 않는 음성은 피치를 만지기 전에 다른 프리셋이 필요합니다. 흔치 않은 이름은 가끔 잘못 발음되는데 발음 사전은 없으므로, text에는 들리는 대로 적으세요.
이 작업은 타임스탬프를 반환하지 않으므로 자막은 완성된 파일에 맞춰 직접 정렬해야 합니다.
수정까지 포함해 대본 예산 잡기
가격은 공백, 문장부호, 줄바꿈을 포함한 text의 글자 수에 따릅니다. instructions는 무료이며 실행 전에 표시되는 견적이 최종 금액입니다. 200자 대사는 0.0144달러로 음성 약 18초이고, 두 화자를 합쳐 2,000자인 장면은 0.144달러이며, 그것을 세 테이크 전체로 만들어도 0.432달러입니다. 화자가 둘이어도 추가 요금은 없습니다. 200자짜리 답변 하나를 교체하는 비용은 0.0144달러로, 장면 전체를 다시 생성하는 것보다 훨씬 적으니 재녹음에는 같은 프리셋과 설정을 그대로 사용하세요.
저렴한 프리셋 음성과 한 줄씩 다시 만들 수 있는 대사가 필요하면 Seed Speech를, 두 목소리와 분위기를 한 파일에 담고 싶다면 Seed Audio 1.0을 선택하세요.






