Qwen3 TTS Instruct Flash vs TTS-1 HD
Welches und wann — kuratiertes Fazit, keine Benchmark-Tabelle
qwen3-tts-instruct-flash kostet $11.5 pro Million Zeichen gegenüber $30, rund 2.6x weniger, und ist das einzige der beiden, mit dem sich die Stimme in natürlicher Sprache dirigieren lässt — tts-1-hd bietet keine Stimmkontrolle. Der Tausch ist die Anfragegröße, 600 Zeichen gegenüber 4096, lange Texte müssen also geteilt werden. Beide streamen. Nehmen Sie tts-1-hd für lange Passagen in einem Aufruf, qwen3-tts-instruct-flash für dirigierte kurze Zeilen zu geringeren Kosten.
Preise
| Qwen3 TTS Instruct Flash | TTS-1 HD | Δ | |
|---|---|---|---|
| Pro 1M Zeichen | $11.5 | $30 | 0.38× |
Preise aus dem Live-Katalog zum Zeitpunkt des Builds; jede Modellseite enthält die aktuelle Übersicht.
Wo sie stehen — Preis pro 1M Zeichen über alle 7 Text-to-Speech-Modelle mit dieser Abrechnungseinheit (logarithmische Skala)
Fähigkeiten
| Qwen3 TTS Instruct Flash | TTS-1 HD | |
|---|---|---|
| Streaming | ja | ja |
| SSML | undocumented | undocumented |
| Abrechnungseinheit | character | character |
Spezifikationen
| Qwen3 TTS Instruct Flash | TTS-1 HD | |
|---|---|---|
| Input-Modalitäten | Text | Text |
| Ausgabemodalitäten | Audio | Audio |
| Request-Limit | 600 characters | 4096 characters |
| Stimmen | 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. | 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. |
| Sprachen | 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). | 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 |
| Sprachsteuerung |
| none |
| Limits | 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. | 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 |
Die Spezifikationen sind aus der Dokumentation der jeweiligen Anbieter übernommen; eine Zeile, die ein Anbieter nicht veröffentlicht, wird weggelassen und nicht abgeleitet. Vollständige Quellen: Qwen3 TTS Instruct Flash · TTS-1 HD
Mit einer Zeile zwischen ihnen wechseln
Beide IDs befinden sich in jedem Tab unten — das hervorgehobene Zeilenpaar ist die einzige Änderung. Gleicher Endpunkt, gleicher Schlüssel, gleiche Request-Struktur.
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="tts-1-hd", # diese Zeile einkommentieren, die darüberliegende auskommentieren
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: "tts-1-hd", // diese Zeile einkommentieren, die darüberliegende auskommentieren
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="tts-1-hd" \ # diese Zeile einkommentieren, die darüberliegende auskommentieren
-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: "tts-1-hd", // diese Zeile einkommentieren, die darüberliegende auskommentieren
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("tts-1-hd") // diese Zeile einkommentieren, die darüberliegende auskommentieren
.file(Paths.get("meeting.mp3"))
.build()).asTranscription();
System.out.println(resp.text());FAQ
Welches ist günstiger, Qwen3 TTS Instruct Flash oder TTS-1 HD?
Qwen3 TTS Instruct Flash ist günstiger bei pro 1m zeichen ($11.5 vs. $30, 2.6× Unterschied). Andere Zeilen können in die andere Richtung deuten — die obige Tabelle enthält alle Daten, und die tatsächlichen Kosten hängen von Ihrem Mix ab.
Kann ich Qwen3 TTS Instruct Flash gegen TTS-1 HD ohne zwei Integrationen A/B-testen?
Ja. Beide werden über denselben OpenAI-kompatiblen Endpunkt mit einem API-Schlüssel bereitgestellt — der Wechsel ist eine einzeilige Änderung des Modell-Strings, sodass Sie einen Bruchteil des Traffics an jedes Modell leiten und die Rechnungen direkt vergleichen können.
Wie wird Text-to-Speech abgerechnet?
Pro Zeichen des Eingabetextes, mit einer Zeichenobergrenze pro Anfrage, die in der Spezifikationstabelle angegeben ist. Lange Skripte müssen bei beiden Modellen über mehrere Anfragen hinweg aufgeteilt werden.