Qwen3 TTS Instruct Flash vs TTS-1 HD
Quale scegliere e quando
qwen3-tts-instruct-flash costa $11.5 per milione di caratteri contro $30, circa 2.6x in meno, ed è l'unico dei due che permette di dirigere la voce in linguaggio naturale - tts-1-hd non espone alcun controllo della voce. Il compromesso è la dimensione della richiesta, 600 caratteri contro 4096, quindi i testi lunghi vanno divisi. Entrambi fanno streaming. Scegli tts-1-hd per passaggi lunghi in una sola chiamata, qwen3-tts-instruct-flash per battute brevi dirette a costo inferiore.
Prezzi
| Qwen3 TTS Instruct Flash | TTS-1 HD | Δ | |
|---|---|---|---|
| Per 1M caratteri | $11.5 | $30 | 0.38× |
Tariffe lette dal catalogo live al momento della build; il listino aggiornato è sulla pagina di ciascun modello.
Dove si collocano: prezzo per 1M di caratteri tra tutti i modelli di sintesi vocale con questa unità di fatturazione (7, scala logaritmica)
Funzionalità
| Qwen3 TTS Instruct Flash | TTS-1 HD | |
|---|---|---|
| Streaming | sì | sì |
| SSML | undocumented | undocumented |
| Unità di fatturazione | character | character |
Specifiche
| Qwen3 TTS Instruct Flash | TTS-1 HD | |
|---|---|---|
| Modalità di input | testo | testo |
| Modalità di output | audio | audio |
| Rilascio | - | 2023-11-06 |
| Limite per richiesta | 600 characters | 4096 characters |
| Voci | 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. |
| Lingue | 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 |
| Controllo della voce |
| none |
| Limiti | 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 |
Le specifiche sono riprese dalla documentazione di ciascun provider; se un provider non pubblica un dato, la riga viene omessa e non dedotta. Fonti complete: Qwen3 TTS Instruct Flash · TTS-1 HD
Passa dall'uno all'altro cambiando una sola riga
In ogni scheda qui sotto ci sono entrambi gli id: le due righe evidenziate sono l'unica modifica. Stesso endpoint, stessa chiave, stessa struttura della richiesta.
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", # decommenta questa riga, commenta quella sopra
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", // decommenta questa riga, commenta quella sopra
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" \ # decommenta questa riga, commenta quella sopra
-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", // decommenta questa riga, commenta quella sopra
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") // decommenta questa riga, commenta quella sopra
.file(Paths.get("meeting.mp3"))
.build()).asTranscription();
System.out.println(resp.text());FAQ
Qual è il più economico, Qwen3 TTS Instruct Flash o TTS-1 HD?
Qwen3 TTS Instruct Flash costa meno alla voce Per 1M caratteri ($11.5 contro $30, 2.6× di differenza). Altre voci potrebbero dire il contrario: la tabella qui sopra riporta il listino completo, e il costo reale dipende dal tuo mix di utilizzo.
Posso fare un A/B test di Qwen3 TTS Instruct Flash contro TTS-1 HD senza due integrazioni?
Sì. Si chiamano entrambi dallo stesso endpoint compatibile con OpenAI, con una sola chiave API. Per passare dall'uno all'altro basta cambiare la stringa del modello in una riga, quindi puoi mandare una parte del traffico a ciascuno e confrontare direttamente i costi.
Come viene fatturata la sintesi vocale?
Per carattere del testo di input, con un tetto massimo di caratteri per richiesta indicato nella tabella delle specifiche. Con entrambi i modelli i testi lunghi vanno suddivisi su più richieste.