Qwen3 TTS Instruct Flash vs BytePlus Seed TTS 2.0
언제 어떤 모델을 쓸까
qwen3-tts-instruct-flash는 100만 자당 2.6배 저렴하고($11.5 대 $30) 둘 다 자연어 음성 지시를 받지만 요청 상한이 크게 다릅니다: 600자 대 4096자. seed-tts-2.0은 서술식 제어에 더해 수치형 음성 파라미터도 제공하고 음성을 시나리오별로 묶어 공개합니다. 짧은 대사의 비용이면 qwen3-tts-instruct-flash, 긴 문단과 더 세밀한 음성 제어면 seed-tts-2.0을 고르세요.
가격
| Qwen3 TTS Instruct Flash | BytePlus Seed TTS 2.0 | Δ | |
|---|---|---|---|
| 1M 문자당 | $11.5 | $30 | 0.38× |
빌드 시점에 실시간 카탈로그에서 가져온 요금입니다. 현재 요금은 각 모델 페이지에서 확인할 수 있습니다.
가격 위치: 이 과금 단위를 쓰는 음성 합성 모델 7개 전체의 1M 문자당 가격(로그 스케일)
기능
| Qwen3 TTS Instruct Flash | BytePlus Seed TTS 2.0 | |
|---|---|---|
| 스트리밍 | 지원 | 지원 |
| SSML | undocumented | unsupported |
| 과금 단위 | character | character |
사양
| Qwen3 TTS Instruct Flash | BytePlus Seed TTS 2.0 | |
|---|---|---|
| 입력 모달리티 | 텍스트 | 텍스트 |
| 출력 모달리티 | 오디오 | 오디오 |
| 출시일 | - | 2025-10-16 |
| 요청 제한 | 600 characters | - |
| 보이스 | System voices published with one-line personas, among them Cherry (a sunny, positive, friendly and natural young woman), Serena, Ethan, Chelsie, Momo, Vivian, Moon, Maia, Kai, Nofish (a designer who cannot pronounce retroflex sounds), Bella, Eldric Sage, Mia, Mochi, Bellona, Vincent, Bunny, Neil, Elias, Arthur, Nini, Seren, Pip and Stella the Qwen-TTS voice list pairs each voice with the exact model ids that accept it. | TTS 2.0 voices carry *_uranus_bigtts speaker IDs and are listed by scenario (General, Entertainment, Education, Dubbing, AudioBook, RolePlay, CustomerService) on the Voice List page per-voice emotion via audio_params.emotion with emotion_scale 1 to 5 (default 4), speech_rate and loudness_rate in [-50, 100], and post_process.pitch in [-12, 12]. |
| 언어 | Chinese (Mandarin), English, German, Italian, Portuguese, Spanish, Japanese, Korean, French and Russian. language_type defaults to Auto for mixed-language or undetermined input, which Alibaba documents as not guaranteeing accuracy naming a single language is documented to significantly improve synthesis quality. Unlike the Qwen3-TTS-Flash series, the Instruct series lists no Chinese dialect voices (Beijing, Shanghainese, Sichuan, Nanjing, Shaanxi, Hokkien, Tianjin, Cantonese). | English, Chinese, Japanese, German, French, Mexican Spanish, Indonesian Bahasa, Brazilian Portuguese, Italian and Korean |
| 음성 제어 |
| context_texts and section_id are TTS 2.0 only: a plain-language instruction steers rate, emotion, volume and style (only the first list value takes effect, and its text is not billed), and section_id links up to 30 rounds or 10 minutes of earlier synthesis as historical context. |
| 제한 | HTTP non-real-time speech synthesis API the -realtime suffix marks the WebSocket sibling. Input text capped at 600 characters, multilingual mixed input allowed. Non-streaming returns an audio file URL valid for 24 hours streaming returns Base64-encoded PCM in chunks with the URL only in the final packet, played back in the official samples as 24 kHz mono 16-bit audio. Billed by input text characters, reported as usage.characters (input_tokens and output_tokens are always 0 on the Qwen3-TTS series) output audio is free. | Integration via uni-directional streaming HTTP, uni- or bi-directional streaming WebSocket and online SDK sampling rate 24K/16K/8K on the uni-directional streaming and non-streaming interfaces, 48K/24K/16K/8K on the bi-directional interface output PCM, OGG_OPUS or MP3 (WAV is accepted but returns multiple headers when streaming) SSML is not supported |
사양은 각 공급자의 문서에서 그대로 옮겨 적었습니다. 공급자가 공개하지 않은 항목은 추정해 채우지 않고 뺐습니다. 전체 출처: Qwen3 TTS Instruct Flash · BytePlus Seed TTS 2.0
코드 한 줄로 모델 전환
아래 탭마다 두 모델 id가 모두 들어 있습니다. 바꿀 곳은 강조된 두 줄뿐이고, 엔드포인트, 키, 요청 형식은 그대로입니다.
from openai import OpenAI
client = OpenAI(
base_url="https://synthorai.io/v1",
api_key="sk-syn-...",
)
resp = client.audio.transcriptions.create(
model="qwen3-tts-instruct-flash",
# model="seed-tts-2.0", # 이 줄의 주석을 해제하고, 윗줄을 주석 처리하세요
file=open("meeting.mp3", "rb"),
language="en",
)
print(resp.text)import OpenAI from "openai";
import fs from "node:fs";
const client = new OpenAI({
baseURL: "https://synthorai.io/v1",
apiKey: "sk-syn-...",
});
const resp = await client.audio.transcriptions.create({
model: "qwen3-tts-instruct-flash",
// model: "seed-tts-2.0", // 이 줄의 주석을 해제하고, 윗줄을 주석 처리하세요
file: fs.createReadStream("meeting.mp3"),
});
console.log(resp.text);curl https://synthorai.io/v1/audio/transcriptions \
-H "Authorization: Bearer sk-syn-..." \
-F model="qwen3-tts-instruct-flash" \
# -F model="seed-tts-2.0" \ # 이 줄의 주석을 해제하고, 윗줄을 주석 처리하세요
-F file=@meeting.mp3package main
import (
"context"
"fmt"
"os"
"github.com/openai/openai-go/v3"
"github.com/openai/openai-go/v3/option"
)
func main() {
client := openai.NewClient(
option.WithBaseURL("https://synthorai.io/v1"),
option.WithAPIKey("sk-syn-..."),
)
f, _ := os.Open("meeting.mp3")
resp, _ := client.Audio.Transcriptions.New(context.TODO(), openai.AudioTranscriptionNewParams{
Model: "qwen3-tts-instruct-flash",
// Model: "seed-tts-2.0", // 이 줄의 주석을 해제하고, 윗줄을 주석 처리하세요
File: f,
})
fmt.Println(resp.Text)
}import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.models.audio.transcriptions.*;
import java.nio.file.Paths;
OpenAIClient client = OpenAIOkHttpClient.builder()
.baseUrl("https://synthorai.io/v1")
.apiKey("sk-syn-...")
.build();
Transcription resp = client.audio().transcriptions().create(
TranscriptionCreateParams.builder()
.model("qwen3-tts-instruct-flash")
// .model("seed-tts-2.0") // 이 줄의 주석을 해제하고, 윗줄을 주석 처리하세요
.file(Paths.get("meeting.mp3"))
.build()).asTranscription();
System.out.println(resp.text());자주 묻는 질문
Qwen3 TTS Instruct Flash vs BytePlus Seed TTS 2.0, 어느 쪽이 더 저렴한가요?
1M 문자당 기준으로는 Qwen3 TTS Instruct Flash 쪽이 더 저렴합니다($11.5 대 $30, 2.6배 차이). 다른 항목에서는 반대일 수 있습니다. 전체 요금은 위 표에 있으며, 실제 비용은 사용 패턴에 따라 달라집니다.
연동을 두 번 하지 않고도 Qwen3 TTS Instruct Flash vs BytePlus Seed TTS 2.0 A/B 테스트를 할 수 있나요?
네. 두 모델 모두 API 키 하나로 같은 OpenAI 호환 엔드포인트에서 호출합니다. 모델 문자열 한 줄만 바꾸면 전환되므로, 트래픽 일부를 각 모델로 보내 청구 금액을 직접 비교할 수 있습니다.
음성 합성(TTS)은 어떻게 과금되나요?
입력 텍스트의 글자 수만큼 과금되며, 요청당 글자 수 상한은 사양 표에 있습니다. 긴 스크립트는 어느 모델이든 여러 요청으로 나눠 보내야 합니다.