Google TTS Chirp 3 HD vs Qwen3 TTS Instruct Flash
Quale scegliere e quando — verdetto curato, non una tabella di benchmark
qwen3-tts-instruct-flash costa 2.6x meno per milione di caratteri ($11.5 contro $30) e accetta indicazioni sulla voce in linguaggio comune, ma prende solo 600 caratteri per richiesta contro 5000 byte di google-tts-chirp3-hd, quindi i testi lunghi vanno spezzati. Il modello di Google copre l'elenco di locale più ampio ed espone parametri numerici della voce, con SSML in anteprima. Scegli qwen3-tts-instruct-flash per battute brevi con un'intenzione descritta, google-tts-chirp3-hd per testi lunghi e ampiezza di locale.
Prezzi
| Google TTS Chirp 3 HD | Qwen3 TTS Instruct Flash | Δ | |
|---|---|---|---|
| Per 1M caratteri | $30 | $11.5 | 2.6× |
Le tariffe provengono dal catalogo live al momento della build; la pagina di ciascun modello riporta la scheda attuale.
Dove si posizionano — prezzo per 1M di caratteri rispetto a tutti gli 7 modelli text-to-speech con questa unità di fatturazione (scala logaritmica)
Capacità
| Google TTS Chirp 3 HD | Qwen3 TTS Instruct Flash | |
|---|---|---|
| Streaming | sì | sì |
| SSML | preview | undocumented |
| Unità di fatturazione | character | character |
Specifiche
| Google TTS Chirp 3 HD | Qwen3 TTS Instruct Flash | |
|---|---|---|
| Modalità di input | testo | testo |
| Modalità di output | audio | audio |
| Limite di richieste | 5000 bytes | 600 characters |
| Voci | Voices are named after stars and published with a gender: Achernar, Achird, Algenib, Algieba, Alnilam, Aoede, Autonoe, Callirrhoe, Charon, Despina, Enceladus, Erinome, Fenrir, Gacrux, Iapetus, Kore, Laomedeia, Leda, Orus, Pulcherrima, Puck, Rasalgethi, Sadachbia, Sadaltager, Schedar, Sulafat, Umbriel, Vindemiatrix, Zephyr and Zubenelgenubi. A locale prefix forms the id, e.g. en-US-Chirp3-HD-Charon. Google describes the set as 30 distinct styles across many languages. | 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. |
| Lingue | ar-XA, bn-IN, bg-BG, yue-HK, hr-HR, cs-CZ, da-DK, nl-BE, nl-NL, en-AU, en-IN, en-GB, en-US, et-EE, fi-FI, fr-CA, fr-FR, de-DE, el-GR, gu-IN, he-IL, hi-IN, hu-HU, id-ID, it-IT, ja-JP, kn-IN, ko-KR, lv-LV, lt-LT, ml-IN, cmn-CN, mr-IN, nb-NO, pl-PL, pt-BR, pa-IN, ro-RO, ru-RU, sr-RS, sk-SK, sl-SI, es-ES, es-US, sw-KE, sv-SE, ta-IN, te-IN, th-TH, tr-TR, uk-UA, ur-IN and vi-VN. | 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). |
| Controllo vocale |
|
|
| Limiti | Content limit of 5,000 total bytes per synthesize request. Default response format LINEAR16 streaming supports ALAW, MULAW, OGG_OPUS and PCM, batch adds MP3, so MP3 is not available on the streaming path. The only voice type Google's comparison table marks as streaming-capable. Generally available in the global, us and eu endpoints plus asia-southeast1, europe-west2 and asia-northeast1, but out of scope for regionalization and data residency. Billed per character including spaces and newlines, with all SSML tags except <mark> counted. | 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. |
Le specifiche sono trascritte dalla documentazione di ciascun fornitore; una riga che un fornitore non pubblica viene omessa anziché essere dedotta. Fonti complete: Google TTS Chirp 3 HD · Qwen3 TTS Instruct Flash
Passa dall'uno all'altro con una sola riga
Entrambi gli id sono presenti in ogni scheda qui sotto — la coppia di righe evidenziata è 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="google-tts-chirp3-hd",
# model="qwen3-tts-instruct-flash", # 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: "google-tts-chirp3-hd",
// model: "qwen3-tts-instruct-flash", // 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="google-tts-chirp3-hd" \
# -F model="qwen3-tts-instruct-flash" \ # 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: "google-tts-chirp3-hd",
// Model: "qwen3-tts-instruct-flash", // 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("google-tts-chirp3-hd")
// .model("qwen3-tts-instruct-flash") // decommenta questa riga, commenta quella sopra
.file(Paths.get("meeting.mp3"))
.build()).asTranscription();
System.out.println(resp.text());FAQ
Qual è più economico, Google TTS Chirp 3 HD o Qwen3 TTS Instruct Flash?
Qwen3 TTS Instruct Flash è più economico per per 1m caratteri ($11.5 contro $30, 2.6× di differenza). Altre righe potrebbero indicare il contrario — la tabella sopra riporta la scheda completa, e il costo reale dipende dal tuo mix.
Posso fare un A/B test di Google TTS Chirp 3 HD contro Qwen3 TTS Instruct Flash senza due integrazioni?
Sì. Entrambi sono serviti tramite lo stesso endpoint compatibile con OpenAI con una singola chiave API — il passaggio richiede la modifica della stringa del modello in una sola riga, quindi puoi instradare una frazione del traffico verso ciascuno e confrontare direttamente le fatture.
Come viene fatturato il text-to-speech?
Per carattere del testo di input, con un limite massimo di caratteri per richiesta indicato nella tabella delle specifiche. Gli script lunghi devono essere suddivisi su più richieste per entrambi i modelli.