BytePlus Seed TTS 2.0 vs TTS-1 HD
Lequel, quand — verdict de synthèse, pas un tableau de benchmarks
D'après les faits donnés, ces deux-là sont interchangeables : seed-tts-2.0 et tts-1-hd prennent tous deux du texte en entrée et retournent de l'audio, disposent tous deux de la capacité vocale, plafonnent tous deux à un contexte de 4096 tokens, et facturent tous deux l'entrée à $30 par million de tokens. Comme les grilles tarifaires et les unités correspondent exactement, il n'y a aucun argument de coût ou de contexte dans un sens ou dans l'autre — choisissez selon la préférence de fournisseur, le rendu vocal qui convient à votre produit, ou le fournisseur avec lequel vous êtes déjà intégré. Faites passer un court extrait de votre propre script sur chacun et gardez celui qui sonne bien.
Tarification
| BytePlus Seed TTS 2.0 | TTS-1 HD | Δ | |
|---|---|---|---|
| Par 1M caractères | $30 | $30 | = |
Tarifs issus du catalogue en direct au moment de la compilation ; chaque page de modèle présente la fiche actuelle.
Où ils se situent — prix pour 1M de caractères sur l'ensemble des 7 modèles text-to-speech pour cette unité de facturation (échelle logarithmique)
Capacités
| BytePlus Seed TTS 2.0 | TTS-1 HD | |
|---|---|---|
| Streaming | oui | oui |
| SSML | unsupported | undocumented |
| Unité de facturation | character | character |
Spécifications
| BytePlus Seed TTS 2.0 | TTS-1 HD | |
|---|---|---|
| Modalités d'entrée | texte | texte |
| Modalités de sortie | audio | audio |
| Limite de requêtes | — | 4096 characters |
| Voix | 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]. | alloy, ash, coral, echo, fable, onyx, nova, sage and shimmer, a smaller set than the full 13-voice TTS list, and voices are currently optimized for English. |
| Langues | English, Chinese, Japanese, German, French, Mexican Spanish, Indonesian Bahasa, Brazilian Portuguese, Italian and Korean | Generally follows the Whisper model’s language support: Afrikaans, Arabic, Armenian, Azerbaijani, Belarusian, Bosnian, Bulgarian, Catalan, Chinese, Croatian, Czech, Danish, Dutch, English, Estonian, Finnish, French, Galician, German, Greek, Hebrew, Hindi, Hungarian, Icelandic, Indonesian, Italian, Japanese, Kannada, Kazakh, Korean, Latvian, Lithuanian, Macedonian, Malay, Marathi, Maori, Nepali, Norwegian, Persian, Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovenian, Spanish, Swahili, Swedish, Tagalog, Tamil, Thai, Turkish, Ukrainian, Urdu, Vietnamese and Welsh, despite voices being optimized for English |
| Contrôle vocal | 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. | none |
| Limites | 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 | Speech generation endpoint (v1/audio/speech) only, with Chat Completions, Responses, Realtime, Batch and Fine-tuning all listed as not supported input text is capped at 4096 characters output mp3 (default), opus, aac, flac, wav or pcm (raw 24 kHz 16-bit signed little-endian samples) realtime playback via chunked transfer encoding |
Les spécifications sont transcrites à partir de la documentation de chaque fournisseur ; une ligne qu'un fournisseur ne publie pas est omise plutôt que déduite. Sources complètes : BytePlus Seed TTS 2.0 · TTS-1 HD
Basculez de l'un à l'autre avec une seule ligne
Les deux ids sont dans chaque onglet ci-dessous — la paire de lignes en surbrillance est la seule modification. Même endpoint, même clé, même structure de requête.
from openai import OpenAI
client = OpenAI(
base_url="https://synthorai.io/v1",
api_key="sk-syn-...",
)
resp = client.audio.transcriptions.create(
model="seed-tts-2.0",
# model="tts-1-hd", # décommentez cette ligne, commentez celle du dessus
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: "seed-tts-2.0",
// model: "tts-1-hd", // décommentez cette ligne, commentez celle du dessus
file: fs.createReadStream("meeting.mp3"),
});
console.log(resp.text);curl https://synthorai.io/v1/audio/transcriptions \
-H "Authorization: Bearer sk-syn-..." \
-F model="seed-tts-2.0" \
# -F model="tts-1-hd" \ # décommentez cette ligne, commentez celle du dessus
-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: "seed-tts-2.0",
// Model: "tts-1-hd", // décommentez cette ligne, commentez celle du dessus
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("seed-tts-2.0")
// .model("tts-1-hd") // décommentez cette ligne, commentez celle du dessus
.file(Paths.get("meeting.mp3"))
.build()).asTranscription();
System.out.println(resp.text());FAQ
Lequel est le moins cher, BytePlus Seed TTS 2.0 ou TTS-1 HD ?
Ils affichent la même valeur pour par 1m caractères ($30), donc le prix ne permet pas de trancher ici — consultez les spécifications et les capacités ci-dessous.
Puis-je faire un test A/B de BytePlus Seed TTS 2.0 par rapport à TTS-1 HD sans deux intégrations ?
Oui. Les deux sont servis via le même endpoint compatible OpenAI avec une seule clé API — le basculement est un changement de chaîne de modèle en une ligne, vous pouvez donc diriger une fraction du trafic vers chacun et comparer les factures directement.
Comment la synthèse vocale est-elle facturée ?
Par caractère de texte en entrée, avec un plafond de caractères par requête indiqué dans le tableau des spécifications. Les scripts longs doivent être segmentés sur plusieurs requêtes pour chacun des modèles.