Skip to main content

Model comparisons

Gemini 3.8 Flash TTS vs Grok TTS

Gemini 3.8 Flash TTS or Grok TTS, tier by tier: matched prices, request fields, limits and the content policy measured on each.

Gemini 3.8 Flash TTS

Gemini 3.8 Flash TTS turns a script into a 24 kHz mono WAV in one of 30 voices, or two voices for a dialogue. Bracketed cues such as [whispering], [sighs] or [laughing] are acted out rather than read aloud.

View model details →View sample outputs →

Grok TTS

Grok TTS is xAI's text-to-speech, reading a script of up to 15,000 characters in one of 71 preset voices across 20 languages. Speech tags such as laughs and whispers are acted out, and speed runs from 0.7 to 1.5 times.

View model details →View sample outputs →

Compare

The short answer

Start with the input you have, the result you want and your budget. These are the differences that affect that choice.

  • The two bill on different tiers, so there is no like-for-like row: Gemini 3.8 Flash TTS starts at $0.00032 / output seconds and Grok TTS at $0.018 / thousand characters.
  • Both are listed as Uncensored. Compare the examples and content-test details on each model page for the scenes you want to create.

Compare the published examples, then try the same input on both models with matching settings.

Current price

Price at the same setting

A start price answers a different question than the one you have. These are the tiers both models publish, matched setting for setting, in US dollars per billed unit with no conversion step in between.

These two bill on different tiers, so there is no row to line up. Each one's own published tiers are listed here instead.

Gemini 3.8 Flash TTS: $0.00032 / output seconds

Grok TTS: $0.018 / thousand characters

About this comparison

Controls and limits

Every row here is read from the JSON Schema the endpoint validates against, so it matches what the API will really accept rather than a feature list written by hand.

Swipe horizontally to compare all fields.

Gemini 3.8 Flash TTS vs Grok TTS
Controls and limitsGemini 3.8 Flash TTSGrok TTS
Supported taskstext-to-speechtext-to-speech
Audio outputYesYes
ExecutionSubmit, then poll or take the callbackSubmit, then poll or take the callback
Request timeout30 minutes30 minutes
AvailabilityLiveLive

Do low-filter models allow every request?

Content policy, side by side

Two separate facts sit behind these labels. The first is what we do, which is nothing: no platform content filter, and no maturity flag to set on a request. The second is what each model does on its own, and that is the only part that varies between these two.

Gemini 3.8 Flash TTS

Uncensored

This model declares no content filter. SpicyAPI forwards the request without adding a platform content scan; legal and consent duties remain with the customer.

Usage note SpicyAPI adds no content filter: scripts are read as written, with nothing softened. You are responsible for the scripts you send and for how you use the resulting audio, including not passing it off as a real person's words.

Grok TTS

Uncensored

This model declares no content filter. SpicyAPI forwards the request without adding a platform content scan; legal and consent duties remain with the customer.

Usage note SpicyAPI adds no content filter: NSFW scripts are read as written. You are responsible for the scripts you send and for how you use the resulting audio, including not passing it off as a real person's words.

Use these content labels to shortlist models, then open each model page for available examples and content-test details.

The label never changes your obligations. Age, consent, real-person likeness and the law where you operate stay with you, and SpicyAPI does not inspect each request.

Can I swap the model ID without changing the request body?

Request body, field by field

The task lifecycle is shared; the body is not. Each endpoint publishes its own JSON Schema and the API validates against that, so this is the list to reconcile before a switch.

  • 2 fields appear in both request bodies under the same names. text, voice_id
  • Only Gemini 3.8 Flash TTS accepts: pace, scene, style, accent, dialogue, speakers, temperature, instructions.
  • Only Grok TTS accepts: speed, bitrate, language, sample_rate, output_format, text_normalization, optimize_streaming_latency.
  • Grok TTS requires text.
  • Both reject unknown fields outright, so a parameter left over from the other model comes back as a validation error instead of being quietly ignored.

Compare

Moving from one to the other

The model identifiers are google/gemini-3.8-flash-tts/text-to-speech and xai/grok-tts/text-to-speech, and both go in the same field of the same request.

Both run the same way: submit the task, then poll it or take the callback. Queueing and retry logic carry over unchanged.

Both use the same submit-and-track flow, but their required inputs may differ. Check each model page before switching.

One key, one balance, one set of spend caps. Both bill to the same account in US dollars, and the per-key daily, monthly and lifetime limits apply to whichever one you call.

Questions developers ask

Which is cheaper, Gemini 3.8 Flash TTS or Grok TTS?

Which is cheaper, Gemini 3.8 Flash TTS or Grok TTS?

The two bill on different tiers, so there is no like-for-like row: Gemini 3.8 Flash TTS starts at $0.00032 / output seconds and Grok TTS at $0.018 / thousand characters. Prices may change; check the estimate shown for your actual settings before submitting.

How long can a single request run?

Gemini 3.8 Flash TTS allows 30 minutes per task and Grok TTS allows 30. Those are ceilings rather than typical times — most requests finish far sooner — but they are what your own client timeout has to survive.