Agent builder
Write what the agent should do, pick a voice, upload your policy documents, then call it from the same page with your own microphone. Every setting is versioned, so you can put back yesterday's prompt in one click.
Open the builder →Indic voice AI on your own terms. Nineteen languages in one voice, mid-call language switching, and turn-taking fast enough that callers stop noticing it is a machine. Bring your own phone number.
no card required · measured on our own hardware, under load
A single headline number is easy to pick favourably. Here is every stage of one turn, in the order the caller experiences it, including the slow one.
The model is the slow part and always will be. The reason a call feels instant is not that 587ms became fast — it is that a cached acknowledgement plays in 1.2ms while the model is still thinking, so the caller never hears the gap.
| 0.9ms | number formatting | Indian lakh/crore forms |
| 40ms | speech to text | 8kHz telephony audio |
| 1.2ms | acknowledgement | pre-rendered filler from cache |
| 587ms | the model thinking | median. The one stage that leaves our machines |
| 96ms | to first spoken audio | streaming synthesis, real-time factor 0.83 |
The same engine either way. The dashboard writes the same configuration the API accepts, so nothing is exclusive to one path.
Write what the agent should do, pick a voice, upload your policy documents, then call it from the same page with your own microphone. Every setting is versioned, so you can put back yesterday's prompt in one click.
Open the builder →wss://api.latency.cam/ws/stream # send 20ms frames of 8kHz mulaw configure agent_id, language, voice → transcript.partial # live captions → turn_end # 82ms when certain → audio # 99ms to first frame → interrupted # caller talked over it
A caller can start in Hindi, ask for Tamil, and it is still the same speaker. Twenty-two languages understood, nineteen spoken, and detection is free because the transcript is written in the language's own script.
The points are where Indian-language calls actually happen — the metros, the second cities, and the diaspora markets that ring them. Every one of these is a place a caller may pick up in a language your agent has to follow.
Four behaviours, each one a measurement rather than an adjective.
The instant you stop speaking, a pre-rendered acknowledgement plays from cache in 1.2ms while the real reply is still being written. Measured turn time is 724ms. Perceived wait is 3ms. Silence is what makes an agent feel broken, not latency.
A silence timer alone either clips people who pause mid-sentence or feels sluggish. A turn-completion model runs 40ms into every pause and ends the turn early when it is certain. On 24% of turns that saves 428ms. When it is unsure, nothing is lost.
Interruption is detected 200ms into your speech, gated at roughly three words so the "haan", "ji" and "achha" that Indian callers say constantly do not cut the agent off. On a real phone line we also tell the carrier to drop what it has buffered.
Switch from Hindi to Tamil mid-sentence and it is still the same speaker. Voices are named per language, so following a caller across languages used to hand them to a different person at every switch. Verified by speaker-similarity scoring, not by ear.
Synthesis holds a real-time factor of 0.83, so a reply is produced faster than it plays and cannot fall behind the caller however long it speaks. Aggregate throughput measured at 7.59× real time under parallel load. Concurrency is provisioned per account — tell us the number of lines you need.
and names which one it heard, with no language code supplied
preset voices, or clone your own from a recording
follows the caller, or obeys a spoken request
the agent does not change identity when the language does
prosody, not just a silence timer
200ms, and not by "haan" or "ji"
an English policy answers a Tamil caller
your carrier, your numbers, your minutes
This is where a page like this usually puts compliance badges. We do not have them yet, and listing what is actually broken is more use to you than a logo.
Tested and rejected. Cross-language similarity scored 0.149 against a 0.213 floor for two unrelated speakers — worse than chance. Holding one stock voice scores 0.818, so that is what ships.
Our compute is not in India yet, so audio makes a longer trip than it will once it is. Worth knowing before you integrate, and it is the next thing we are moving.
Speech detection is energy-based. Past about −30 dBFS of background noise it cannot separate speech from the room, and it logs that it cannot rather than failing quietly.
Build an agent and call it from your browser in about two minutes. Your phone number, your telephony account, your minutes.