Skip to content

From a ringing phone to a signed receipt.

What happens between the caller's first word and the booking, and what stays on record afterwards.

The call path, stage by stage.

Audio comes in at 8 kHz, Prisma turns it into text, the turn manager decides what happens next, the model answers from the business's documents and checks its schedule, and Timbre speaks the reply back down the same line.

  1. Built

    Caller on a Vobiz line

    8 kHz audio over a WebSocket

    • Inbound call, or Vakya calls out
    • A missed call triggers a call back (tested with fakes, not yet on a live number)
    • A browser web call joins here too
  2. Being wired

    Gnani Prisma v3

    wss://api.vachana.ai/stt/v3/stream

    • format=codemix, so English stays Latin
    • keyterms from the business's documents
    • REST per utterance on the phone today; the socket is being wired in
  3. Built

    Turn manager

    • Barge-in: the caller can talk over the agent
    • Waits longer after the agent asks for a number or date
    • Read-back, then commit only on a spoken yes
    • Slot memory for this call, caller memory across calls
  4. Built

    Language model with tools

    a hosted language model

    • Answers from the business's documents (hosted embeddings, keyword search as backup)
    • Tools: check a time, list free times, book, cancel, knowledge search, end call
    • Syncs to Google Calendar when connected
  5. Integrated, not live-tested

    Gnani Timbre

    POST /api/v1/tts/inference

    • Raw 8 kHz audio straight to the line
    • Cloned voices use vachana-vc-v1 embeddings
    • Indian numbers and dates spoken naturally

Side rail

Consent, label, receipt

Around every clip Vakya speaks: a consent tick before any voice is cloned, an AI label with a C2PA content manifest, and a signed Ed25519 receipt that anyone can check at /verify with no login.

Side rail

Live monitor and takeover

Beside the turn manager: a staff member sees the live transcript, and can take the call over. The agent can ask for a person but never picks the number it transfers to.

Prisma and Timbre have run against the live API since 5 Nov 2026, and the noise report card is measured on Prisma v3. Voice cloning, the realtime stream and a real phone call have not run live yet.The model that writes replies is not Gnani's: it is a hosted language model, set in backend/.env. There is no second speech model: when Gnani is busy or down, the caller hears a short pre-rendered Timbre line and is offered a callback.

Rules that make a phone call work.

It starts early
A reply begins to form after 250 ms of silence, but its audio waits for the full pause (500 ms by default), so the caller is not cut off.
It waits for digits
After asking for a phone number or a date, it waits 1.1 s before deciding the caller is done, and longer when the answer ends in "and" or holds only part of a number.
It reads back, then commits
A booking tool first answers "not done" with the resolved day, date and time. The agent reads them aloud and runs the tool only after a yes.
It remembers
What the caller said (name, number, day, time) stays in a small form for the whole call. A returning caller is greeted from their profile.