Speech & transcription

Say it. Hear it back.

POST /v1/speech turns text into audio across five voice engines, from a cents-per-novel workhorse to ElevenLabs. POST /v1/transcribe turns audio into text with Groq-hosted Whisper. Together with chat, that's a complete voice agent loop.

5
Text-to-speech engines
$0.0035
per 1K characters, cheapest engine
$0.00067
per minute transcribed
A vintage microphone emitting teal sound waves that turn to flame at the edges
What you get

Both directions, same key, same accounting.

♪

Text-to-speech

text up to 4,000 characters, optional species_name, voice and format. Audio returns base64-encoded with its format and the price.

≡

Five engines, one shape

Kokoro (54 voices, 9 languages, cheapest), ElevenLabs Turbo v2.5, Gemini Flash TTS, Google Cloud Neural and OpenAI TTS-1. Swap species_name; the request doesn't change.

✎

Transcription

audio as an https:// URL, data URL or raw base64; optional ISO-639-1 language hint. Default model is Whisper Large v3 Turbo on Groq — sub-second on short clips.

$

Metered per character and per second

Speech is priced per 1,000 characters by engine; transcription per second of audio. Both are cost-plus on the real provider charge and come back as meta.price.usd.

⟳

A voice agent in three calls

transcribe → chat → speech. Honest numbers: roughly 1–3 s per turn, no barge-in, and your client decides when the user has stopped speaking. Good for assistants and narration; not a realtime duplex channel.

⛨

Long audio is yours to chunk

Clips must stay under the provider's ~25 MB limit. Fire doesn't split or stitch — the same way /v1/chat doesn't manage your context window.

Request

Transcribe a clip, then read the answer aloud.

Two calls on two endpoints. /v1/transcribe returns text; feed it to /v1/chat; send the reply to /v1/speech and decode the base64 audio.

Each step has its own call_id and its own price, so a voice turn is three line items you can audit — not one opaque minute.

# 1. speech → text
curl -X POST https://fire.prosaga.net/v1/transcribe \
  -H "Authorization: Bearer $FIRE_API_KEY" -H "Content-Type: application/json" \
  -d '{"audio": "data:audio/mpeg;base64,'"$(base64 -w0 clip.mp3)"'"}'
# → {"text": "What's the capital of Peru?", "model": "Whisper Large v3 Turbo (Groq)",
# "meta": {"price": {"usd": 0.0001}, "call_id": "…"}}

# 2. text → speech
curl -X POST https://fire.prosaga.net/v1/speech \
  -H "Authorization: Bearer $FIRE_API_KEY" -H "Content-Type: application/json" \
  -d '{"text": "Lima is the capital of Peru.", "species_name": "tts-kokoro"}'
# → {"audio": "SUQzBAAAA…", "format": "mp3", "model": "Kokoro",
# "meta": {"price": {"usd": 0.0001}, "call_id": "…"}}
Models you can call

Voice engines and the transcriber, onboarded live.

Pick one by species_name, or omit it and Fire routes to the default. The list is generated from the same query /v1/models serves.

FAQ

Questions evaluators ask.

How is speech priced?

Per 1,000 characters, by engine: Kokoro $0.0035, Google Neural $0.016, ElevenLabs Turbo v2.5 $0.0625, Gemini Flash TTS $0.1875 at the provider rate, marked up per your account tier. Every response returns the amount actually charged in meta.price.usd.

Which voices can I use?

Pass a provider-specific voice id, or omit it for the engine's default (for example af_sarah on Kokoro, Rachel on ElevenLabs, Kore on Gemini). Kokoro alone ships 54 voices across 9 languages.

Does transcription return timestamps or speaker labels?

No — a single text plus language/duration when the provider reports them (the Groq default returns null for both). It's a transcript, not a diarised one.

Is there a realtime or speech-to-speech mode?

Not yet. Fire's voice loop is transcribe → chat → speech over plain HTTPS, roughly 1–3 seconds per turn with no barge-in. That's the honest shape today; a realtime channel would be a separate endpoint.

A raised hand holding a burning torch — the Fire brand emblem
Ready when you are

Get a key. Make a call. See the price.

Free to sign up — you only pay when you top up. No card required to get your first key.