Models and voices
Every agent picks three things independently, from a catalog of providers:
- a language model, which decides what to say
- a transcriber (speech-to-text), which hears the caller
- a voice (text-to-speech), which speaks the reply
You are not locked to one vendor for all three, and you can change any of them without touching the prompt.
Speech engine
The three stages above describe the cascaded engine, which is the default. A voice agent can instead run on a realtime (speech-to-speech) engine, where one model hears, thinks and speaks, with no separate transcriber or voice.
| Cascaded | Realtime | |
|---|---|---|
| Providers | mix and match, any three | one model: OpenAI (Realtime models, or GPT-Live), Gemini Live, or Grok Voice |
| Latency | a hop per stage | lower, and the delivery is more natural |
| A fixed line, said word for word | always | only on the OpenAI Realtime models, and never the greeting |
| Workflow graph | any number of nodes | a single prompt agent |
| Priced on | tokens, characters, and minutes per stage | what the model consumed, in the unit its provider sells |
Set it with speech_engine (cascaded or realtime), and configure the model under
realtime (provider, model, voice, language, and where the model supports
them a transcription model, turn detection and noise reduction).
GPT-Live is OpenAI's full-duplex engine: it keeps listening while it speaks and
decides for itself when to stop for the caller, so allow_interruptions has no effect
on it and it takes none of the transcription or turn-detection settings.
On a realtime engine the greeting is always given to the model as guidance and
spoken in its own words. Other scripted lines - the end-call message, an idle
nudge, a fixed unclear_message, an operator's typed line - depend on the model.
The OpenAI Realtime models speak them word for word. GPT-Live says them in its own
words. Gemini Live and Grok Voice are asked to close with your end-call message in
their own words, and cannot speak the other lines at all: they are skipped. If the
exact wording matters - a compliance sentence, a legally required disclosure - use
the cascaded engine.
Realtime bills as one component rather than three, priced on what the model actually used: audio tokens on most models, time on a provider that sells its speech-to-speech by the minute. A realtime minute is not comparable to a cascaded minute; check the cost breakdown on a real session before committing to it for volume.
Defaults
An agent works without choosing anything: each stage falls back to a platform default. Change them on the agent's settings when you have a reason to - a cheaper model, a better voice for a language, a transcriber that handles your accents.
Language model
model.provider and model.model pick the model. temperature controls how varied
the replies are.
OpenAI's GPT-5 and o-series models ignore a custom temperature by design. Tuning it for those models does nothing - change the prompt instead.
Transcriber language
transcriber.language defaults to multi, which auto-detects. Leave it there unless
you are certain every caller speaks one language.
A fixed, wrong language is the single most common cause of misheard names and numbers, and of keyword routing that never matches - the agent is being told to hear a language the caller is not speaking.
Voice
Pick the provider and the voice. Available voices come from the provider, so the list changes with the provider you choose.
Bring your own keys
You can use your own account with any provider. Add the key once under credentials and agents will use it instead of the platform's.
When a provider runs on your key, that provider's cost is yours and Glytos does not charge for it. The platform fee still applies to the call. See Pricing and credits.
Your keys are encrypted at rest and are never returned by the API after they are saved.