Documentation menu
Build an agent
Voice engines
How an agent listens, thinks and speaks is chosen per agent, not per account — three pipelines, each with its own tradeoffs and its own required keys.
Classic
Deepgram for speech-to-text, any model on OpenRouter for the language model, ElevenLabs for the voice — three separate providers Voicelo orchestrates as one pipeline. Tools, appointment booking, transfer and hangup all ride as text tags in the model’s reply (e.g. [[END_CALL]]), since a plain chat model has no native function-calling channel of its own.
- Deepgram key
- Speech-to-text.
- OpenRouter key
- The language model — pick any model in the live catalogue.
- ElevenLabs key
- The voice.
Deepgram Voice Agent
One realtime connection to Deepgram’s own Voice Agent API does speech-to-text, the language model and text-to-speech together, with server-side turn-taking — generally the lowest latency of the three. Tools use real function calling rather than text tags, which the model follows more reliably than a written instruction to emit a tag.
Managed vs. bring-your-own model
llmProvider: "managed" runs the model Deepgram hosts alongside the agent — lowest latency, fixed catalogue. llmProvider: "openrouter" uses any OpenRouter model instead, at the cost of one extra network hop.
- Deepgram key
- Speech, the model (if managed), and the voice.
- OpenRouter key
- Only if llmProvider is set to openrouter.
Sarvam
Saaras for speech-to-text, the Sarvam-105B chat model, and Bulbul for text-to-speech — a single, self-contained pipeline built for Indic languages. Like classic, tools and commands ride as text tags rather than native function calling.
- Sarvam key
- The whole pipeline — nothing else to add.
Which one
Deepgram Voice Agent for the lowest latency and the most reliable tool-calling, if the managed catalogue or an OpenRouter model both work for you. Classic if you want a specific OpenRouter model with ElevenLabs’ voice selection. Sarvam if the call is happening in Hindi or another Indic language.