🎁 New Sign up free, 10 calls on us. Up to $1, no card needed.

Google TTS Chirp 3 HD vs TTS-1 HD

vs

Which one, when — curated verdict, not a benchmark table

Both charge $30 per million characters and both stream, so the split is control and length: google-tts-chirp3-hd takes 5000 bytes per request, exposes numeric voice parameters and lists SSML in preview, while tts-1-hd takes 4096 characters and offers no voice control at all. Coverage is broad on both, though tts-1-hd's list follows the Whisper language set rather than an enumerated locale list. Pick google-tts-chirp3-hd when you need to shape the delivery, tts-1-hd when the default voice is fine.

Pricing

Google TTS Chirp 3 HD TTS-1 HD Δ
Per 1M characters $30 $30 =

Rates from the live catalog at build time; each model page carries the current card.

Where they sit — price per 1M characters across all 7 text-to-speech models on this billing unit (log scale)

Capabilities

Google TTS Chirp 3 HD TTS-1 HD
Streaming yes yes
SSML preview undocumented
Billing unit character character

Specs

Google TTS Chirp 3 HD TTS-1 HD
Input modalities text text
Output modalities audio audio
Request limit 5000 bytes 4096 characters
Voices 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. 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.
Languages 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. 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
Voice control
  • Voice controls are Preview: pace via speaking_rate 0.25 to 2.0
  • pause tags [pause short], [pause long] and [pause] accepted only in the markup input field, never in text, and the model may disregard tags placed unnaturally
  • custom pronunciations in IPA or X-SAMPA
  • SSML support is Preview and synchronous-only, unsupported for streaming requests, with unlisted tags ignored and say-as interpret-as=expletive or bleep not supported
none
Limits

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.

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

Specs are transcribed from each vendor’s documentation; a row a vendor does not publish is left out rather than inferred. Full sources: Google TTS Chirp 3 HD · TTS-1 HD

Switch between them with one line

Both ids are in every tab below — the highlighted pair of lines is the only edit. Same endpoint, same key, same request shape.

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="tts-1-hd",  # uncomment this line, comment the one above
    file=open("meeting.mp3", "rb"),
    language="en",
)
print(resp.text)

Get an API key →

FAQ

Which is cheaper, Google TTS Chirp 3 HD or TTS-1 HD?

They list the same per 1m characters ($30), so price does not decide this one — see the specs and capabilities below.

Can I A/B test Google TTS Chirp 3 HD against TTS-1 HD without two integrations?

Yes. Both are served through the same OpenAI-compatible endpoint with one API key — switching is a one-line model-string change, so you can route a fraction of traffic to each and compare bills directly.

How is text-to-speech billed?

Per character of input text, with a per-request character ceiling shown in the spec table. Long scripts must be chunked across requests on either model.

Related comparisons