TurnCall supports multiple providers for each stage of the voice pipeline. Configure them per-agent.
Provider Matrix
Role Providers STT deepgram (default, streaming), openai, elevenlabs, cartesia (Ink, streaming)LLM openai (default), anthropic (Claude), ollama (local), custom_openai (any OpenAI-compatible), openrouter (multi-model + fallback routing, voice only)TTS deepgram (default), openai, elevenlabs, cartesia (Sonic-3, streaming, 60+ emotions)S2S openai (Realtime API), google (Gemini Live)
STT Configuration
Deepgram (default)
OpenAI Whisper
ElevenLabs Scribe
Cartesia Ink
"stt" : { "provider" : "deepgram" , "model" : "nova-2" , "language" : "en" }
LLM Configuration
OpenAI (default)
Anthropic Claude
Ollama (local)
Custom OpenAI-compatible
OpenRouter (model fallback)
"llm" : { "provider" : "openai" , "model" : "gpt-4o-mini" }
OpenRouter routes through openrouter.ai with automatic failover — if the primary model rate-limits or errors mid-call, it falls over to the next model in fallback_models. Voice only (WebRTC / Twilio / WhatsApp voice); not supported on the SMS/Chat text path. The model that answered each turn is recorded on transcript.final events.
LLM Options
Field Required Description providerYes openai, anthropic, ollama, custom_openai, or openroutermodelYes Model name base_urlFor custom_openai OpenAI-compatible API base URL api_keyNo API key for custom_openai (masked in responses) fallback_modelsFor openrouter Ordered list of fallback models (voice only) temperatureNo 0.0–2.0 (default: 0.7) max_tokensNo 1–128000 (default: 1024)
TTS Configuration
Deepgram (default)
OpenAI
ElevenLabs
Cartesia Sonic
"tts" : { "provider" : "deepgram" , "voice" : "aura-2-helena-en" }
Required API Keys
Provider Environment Variable Deepgram DEEPGRAM_API_KEYOpenAI OPENAI_API_KEYAnthropic ANTHROPIC_API_KEYElevenLabs ELEVENLABS_API_KEYCartesia CARTESIA_API_KEYGoogle (Gemini) GOOGLE_API_KEYOpenRouter OPENROUTER_API_KEYHeyGen (video avatar) HEYGEN_LIVE_AVATAR_API_KEYTavus (video avatar) TAVUS_API_KEY
Ollama requires no API key — just install it locally and run ollama pull <model>.