Gandr TTS as a Vapi voice.
Two fields in the dashboard, and Vapi calls Gandr as a custom voice. The endpoint implements the Vapi contract natively.
The whole integration
In the Vapi dashboard, Assistant -> Voice -> Custom Voice.
Server URL: https://tts.gandr.ai/v1/vapi?voice=gandr-mia
Secret: your gnd_... key
The endpoint answers raw PCM at the sample rate Vapi asks for, so there is no format conversion in the call path.
What it needs
What it takes
| Two fields | Server URL and secret in the Vapi dashboard |
| A key | gnd_... as the custom-voice secret |
| A voice | Any Gandr stock id in the voice query param |
The Vapi contract, native
Vapi assistants call out to a custom voice over a Server URL, and the Gandr endpoint implements that contract directly, so there is no glue service in between.
The endpoint answers raw PCM at the sample rate Vapi asks for, so there is no format conversion in the call path, and the voice is chosen with a query param, gandr-mia for example.
What the flat stream changes
A Vapi assistant in production speaks every turn of every call. On a per-character meter that is a running bill; on a flat stream the assistant talks as much as the calls need and nothing is counted.
- Two fields in the dashboard, no glue service
- Raw PCM at the rate Vapi asks for, no conversion
- One stream carries a whole assistant fleet
Notes
Where do I put the endpoint in Vapi?
In the dashboard, Assistant, Voice, Custom Voice. Server URL and secret are the two fields.
Which voices can a Vapi call use?
Any Gandr stock voice by gandr- id in the voice query param, or a cloned voice.
A key and one stream, and Vapi calls speak in Gandr voices.
Get a keyFull API reference , gandr.ai/docs