Loading model…正在加载模型详情…
Loading model…正在加载模型详情…
Turn written narration into speech with Google’s Gemini 3.8 Flash TTS, choosing a voice from the catalog.
Your result appears here
Gemini 3.8 Flash TTS is Google’s speech synthesis family, with Flash and Flash-Lite variants. Both accept text and a catalog voice on UniRoute.
Enter the text to speak and choose a voice from the catalog. The available input is text and the catalog option; reference-media inputs are not exposed for these variants.
Choose a voice for the passage and review the request budget cap. The final charge follows actual token usage; the cap is not a fixed output price.
What you can do with Gemini 3.8 Flash TTS through UniRoute today.
Enter the text to speak and choose a voice from the catalog.
The workspace shows only callable variants; other family operations are not available on UniRoute yet.
The variants you can call, with their options and prices.
| Variant | Model ID | Modes | Inputs | Output | Price |
|---|---|---|---|---|---|
| Gemini 3.8 Flash TTS | google/gemini-3-8-flash-tts | Text to speech | Text prompt and an option for voice | Audio | Budget cap $0.02 / request |
| Gemini 3.8 Flash-Lite TTS | google/gemini-3-8-flash-lite-tts | Text to speech | Text prompt and an option for voice | Audio | Budget cap $0.01 / request |
Budget caps limit the maximum charge; the final charge follows actual usage.
| Gemini 3.8 Flash TTS | |
|---|---|
| Fola | Budget cap $0.02 / request |
| Kore | Budget cap $0.02 / request |
| Puck | Budget cap $0.02 / request |
| Zephyr | Budget cap $0.02 / request |
| Aoede | Budget cap $0.02 / request |
| Charon | Budget cap $0.02 / request |
| Gemini 3.8 Flash-Lite TTS | |
|---|---|
| Fola | Budget cap $0.01 / request |
| Kore | Budget cap $0.01 / request |
| Puck | Budget cap $0.01 / request |
| Zephyr | Budget cap $0.01 / request |
| Aoede | Budget cap $0.01 / request |
| Charon | Budget cap $0.01 / request |
Rounded to the cent; the live quote in the workspace shows the exact amount. Prices updated 2026-11-08.
Pay as you go from a single USD wallet balance. You see the quote before each request.
Call Gemini 3.8 Flash TTS from your own code with the media API.
# Requires bash, curl and jq. Set API_KEY to your own unified UniRoute Key.set -euo pipefail: "${API_KEY:?Set API_KEY first}"BASE='https://api.uniroute.app/v1/media'MODEL='google/gemini-3-8-flash-tts'OPTION='Fola'PROMPT='A calm sunrise over a mountain lake'curl -fsS --max-time 60 "$BASE/catalog" -H "Authorization: Bearer $API_KEY" | jq -e '.data.models'BODY=$(jq -n --arg model "$MODEL" --arg option "$OPTION" --arg prompt "$PROMPT" '{model:$model,option:$option,prompt:$prompt}')QUOTE_BODY=$(printf '%s' "$BODY" | jq '{model,option}')QUOTE=$(curl -fsS --max-time 60 "$BASE/quote" -H "Authorization: Bearer $API_KEY" -H 'Content-Type: application/json' -d "$QUOTE_BODY")CAP=$(printf '%s' "$QUOTE" | jq -er '.data.quoted_usd')BODY=$(printf '%s' "$BODY" | jq --arg cap "$CAP" '. + {max_cost_usd:$cap}')IDEMPOTENCY="example-$(date +%s)-$$"create() { curl -fsS --max-time 60 "$BASE/tasks" -H "Authorization: Bearer $API_KEY" -H "Idempotency-Key: $IDEMPOTENCY" -H 'Content-Type: application/json' -d "$BODY"; }TASK_ID=$(create | jq -er '.data.task_id')# The same request and idempotency key must return the original task without charging again.REPLAY_ID=$(create | jq -er '.data.task_id')[ "$TASK_ID" = "$REPLAY_ID" ]for attempt in $(seq 1 120); do TASK=$(curl -fsS --max-time 60 "$BASE/tasks/$TASK_ID" -H "Authorization: Bearer $API_KEY") printf '%s' "$TASK" | jq -e '.data | {task_id,status,billing}' if printf '%s' "$TASK" | jq -e '.data.status == "success" and .data.billing.state == "charged"' >/dev/null; then index=0 while IFS= read -r url; do index=$((index+1)) curl -fL --max-time 120 "$url" -o "$TASK_ID-$index.bin" done < <(printf '%s' "$TASK" | jq -er '.data.urls[].url') break fi if printf '%s' "$TASK" | jq -e '.data.status == "failed" and .data.billing.state == "released"' >/dev/null; then exit 1; fi if [ "$attempt" = 120 ]; then echo "Polling limit reached. Keep task ID $TASK_ID and query it later; do not create a new task." >&2 exit 1 fi sleep 5donecurl -fsS --max-time 60 "$BASE/tasks?limit=20" -H "Authorization: Bearer $API_KEY" | jq -e '.data'# Check this task and the caller Key in Console usage; billing.charged_usd is the actual USD charge.| Name | In | Description |
|---|---|---|
model | Body | Model ID to run. |
option | Body | One of the options offered for the model: Fola, Kore, Puck, Zephyr, Aoede, Charon. |
prompt | Body | Text prompt describing what to generate. |
max_cost_usd | Body | Maximum cost in USD for this task, taken from the quote. |
Idempotency-Key | Header | A unique key per task, so a repeated request returns the original task instead of charging again. |
Typical ways to put Gemini 3.8 Flash TTS to work.
Explore an audio idea from a written brief and compare the available catalog options.
Use the generated result as a draft in a wider production workflow and review it before publication.
Use the media API to quote a request, create a task and poll until the output is ready.
Common questions about Gemini 3.8 Flash TTS.
Gemini 3.8 Flash TTS is Google’s speech synthesis family, with Flash and Flash-Lite variants. Both accept text and a catalog voice on UniRoute.
The variant selector lists the callable model IDs on UniRoute. Unavailable operations are omitted, and the specifications table shows the available options.
Budget cap $0.01 / request. The displayed amount is a request budget cap; the final charge depends on actual token usage. Prices updated 2026-11-08.
Use the media API to review the budget cap, create a task with an Idempotency-Key and a maximum cost, then poll for the result. The final charge depends on actual token usage.
Enter the text to speak and choose a voice from the catalog. Reference-media inputs are not exposed for the callable variants shown here.
No. Generation is paid from your wallet balance. You can open the workspace and review the price without paying, create an account to see a live quote for your exact settings, and you are charged only for requests that are accepted.