Voices and models
Each agent profile has its own provider, remembered voice, and cloud speech model. Settings holds shared provider keys; those keys stay on the service.
Choose per contact
Open the agent’s profile, select a provider, then choose its Model and Voice. A provider with one supported model shows its name without a picker.
Saving a voice or model for an inactive provider does not switch the contact’s active provider. Local speech models are configured in the helper instead.
Supported conversation models
This list follows Suzo’s implemented conversation transports, not each vendor’s entire standalone TTS catalog:
| Provider | Models |
|---|---|
| ElevenLabs | Eleven v4 Turbo, Eleven v4, Eleven v3 Conversational, Multilingual v2, Flash v2 (English) |
| Fish Audio | Drama 3, S2.1 Pro |
| OpenAI | GPT-Live 1, or an explicitly configured compatible OPENAI_LIVE_MODEL |
| Local speech | The model reported by your configured helper |
The authenticated GET /v1/providers/:provider/models returns the service’s current model catalog and default. Catalog names here describe source support, not a claim that all models have been compared in live iPhone calls.
Who handles the conversation
ElevenLabs, Fish, and local speech relay spoken turns to the original agent. GPT-Live handles immediate dialogue and delegates task work with recent conversation context to the same agent through MCP.
The original agent continues to own the task, tools, and private context. Choosing a speech model does not change the connected task agent’s model.
Existing calls keep their voice
Suzo snapshots provider, model, and voice before ringing or callback dispatch. Profile changes affect future calls. A retry of the same request ID retains its original snapshot.
Older calls without model metadata show Not recorded. Suzo does not infer their model from today’s settings. Removing a provider key can make that provider unavailable; it does not silently switch contacts to another provider.