텍스트-음성 변환

POST /v1/audio/speech

OpenAI 호환 엔드포인트 하나로 텍스트를 자연스러운 음성으로 바꿉니다. JSON을 보내면 오디오 바이트가 그대로 돌아옵니다. 제공업체를 바꿀 때 수정하는 것은 model뿐입니다. 디스크에는 아무것도 기록하지 않으며, 오디오는 곧바로 스트리밍으로 반환됩니다.

요청 예시

curl https://synthorai.io/v1/audio/speech \
  -H "Authorization: Bearer $SYNTHORAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "tts-1",
    "input": "Hello from Synthorai.",
    "voice": "alloy"
  }' \
  --output speech.mp3

Python (OpenAI SDK)

from openai import OpenAI

client = OpenAI(
    api_key="$SYNTHORAI_API_KEY",
    base_url="https://synthorai.io/v1",
)

with client.audio.speech.with_streaming_response.create(
    model="tts-1",
    voice="alloy",
    input="Hello from Synthorai.",
) as response:
    response.stream_to_file("speech.mp3")

요청 본문

매개변수 유형 설명
model* string 모델 ID. tts-1, tts-1-hd, seed-tts-2.0 중 하나.
input* string 합성할 텍스트. 최대 4096자.
voice string 읽어 줄 보이스. 기본값은 alloy. 아래 보이스 항목을 참고하세요.
response_format string 오디오 컨테이너: mp3(기본값), opus, wav 또는 pcm.
speed number 말하기 속도, 0.25-4.0. 기본값은 1.0.

지원 모델

어떤 것을 선택해야 하나요?

필요한 것 권장 모델
가장 저렴하며 대부분의 제품 음성에 충분함 google-tts-standard
중국어 중심 콘텐츠, 또는 보이스 선택지가 많이 필요한 경우 qwen3-tts-instruct-flash seed-tts-2.0
일상적인 제품 음성, 음질과 비용의 균형을 맞추고 싶을 때 tts-1 google-tts-neural2
최고의 표현력: 내레이션, 컴패니언 디바이스, 브랜드 보이스 tts-1-hd google-tts-chirp3-hd
모델 가격 적합한 용도
google-tts-standard $4 / 1M chars 비용이 가장 중요한 대량 알림과 안내 음성
qwen3-tts-instruct-flash $11.50 / 1M chars 중국어 및 다국어 콘텐츠. 업스트림이 청구 문자 수를 함께 반환
tts-1 $15 / 1M chars 일반 제품 음성, 안내 음성, 알림
google-tts-neural2 $16 / 1M chars 여러 언어에서 자연스러운 일상 음성
tts-1-hd $30 / 1M chars 내레이션, 마케팅, 사용자가 한동안 듣게 되는 콘텐츠
seed-tts-2.0 $30 / 1M chars 중국어 및 다국어 콘텐츠. 180+ 보이스
google-tts-chirp3-hd $30 / 1M chars Google의 최신이자 가장 표현력 있는 보이스

$30인 모델이 셋입니다. 차이는 가격이 아니라 보이스의 성격과 언어 커버리지에 있습니다. 정하기 전에 직접 쓰는 문구로 들어 보고 비교하세요.

ℹ

제공업체를 바꾸는 데 드는 것은 한 줄입니다. 여기 있는 모든 모델은 요청과 응답 형태가 동일합니다. 내부 제공업체는 인증 방식, 스트리밍 형식, 보이스 이름 규칙까지 크게 다르지만, gateway가 그 차이를 흡수하므로 여러분이 바꾸는 값은 오직 model.

# Same request, different provider - only the model name changes.
-d '{"model": "tts-1",        "input": "...", "voice": "alloy"}'
-d '{"model": "seed-tts-2.0", "input": "...", "voice": "alloy"}'

보이스

OpenAI 모델은 표준 보이스를 지원합니다: alloy, echo, fable, onyx, nova, shimmer.

모델 seed-tts-2.0 역시 동일한 여섯 개 이름을 쓸 수 있고(비슷한 보이스로 매핑됩니다), 완전한 제어가 필요하면 BytePlus 네이티브 보이스 ID를 직접 전달할 수도 있습니다. 예를 들어 zh_female_cancan_uranus_bigtts. 180+ 네이티브 보이스의 전체 목록은 BytePlus 보이스 카탈로그에 있습니다.

모델 qwen3-tts-instruct-flash 역시 동일한 여섯 개 이름을 쓸 수 있고, Qwen 네이티브 보이스를 직접 전달할 수도 있습니다. 예를 들어 Cherry, Ethan, Nofish, Jada.

⚠

Google 보이스는 가격 등급에 묶여 있습니다. Google 모델은 각각 하나의 등급을 담당하며, 등급은 보이스 이름 안에 들어 있습니다. 네이티브 보이스 id를 전달할 때는, 예를 들어 en-US-Neural2-C 라면 그에 맞는 모델을 써야 합니다. 이 예에서는 google-tts-neural2입니다. 등급이 다른 보이스는 잘못된 요금으로 조용히 청구되는 대신 502로 거부됩니다.

오디오 형식

컨테이너 선택은 response_format 파라미터로 합니다. 기본값은 mp3: mp3, opus, wav, pcm.

모든 제공업체가 모든 컨테이너를 지원하지는 않습니다. 지원되지 않는 값은 오류가 아니라 MP3로 대체됩니다.

과금

입력 문자 수 기준으로 제공업체의 공식 정가로 청구되며, 별도의 마진은 붙지 않습니다. 1자 = 한자 1자 = 알파벳 1자 = 문장 부호 1개 = 공백 1개. 실패한 요청은 청구되지 않습니다.

돌려받는 오디오는 따로 계량하지 않습니다. 보내는 텍스트만 청구 대상입니다.

제한

  • 요청당 최대 4096자입니다. 이보다 긴 입력은 과금되기 전에 거부되므로, 클라이언트에서 나누어 보낸 뒤 오디오를 이어 붙이세요.
  • 말하기 속도는 speed 파라미터로 조절합니다(0.25-4.0, 기본값 1.0). 제공업체 범위를 벗어난 값은 거부되지 않고 범위 안으로 맞춰집니다.

오류

응답 설명
400 입력이 비어 있거나 4096자를 초과했습니다.
401 API key가 없거나 유효하지 않습니다.
402 이 요청에 필요한 할당량이 부족합니다.
502 해당 모델을 계정에서 사용할 수 없거나, 업스트림 제공업체가 실패했습니다. 요금은 청구되지 않습니다.
503 현재 이 모델을 제공하는 채널이 없습니다.