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.
text up to 4,000 characters, optional species_name, voice and format.
Audio returns base64-encoded with its format and the price.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Free to sign up — you only pay when you top up. No card required to get your first key.