Voice agents feel broken the moment they pause, so I made the delay visible: every turn is timed from when you stop talking to when it starts.
Highlights
- Times every turn and splits it into speech-to-text, model and speech, live in the UI.
- Turns that take 1.5 s or more go red, on screen and in the logs.
- Starts speaking on the model’s first streamed words, not after a full sentence.
How it works
Why I built it this way
Groq’s Llama 3.1 8B as the default model
It’s the fastest option; Claude follows a sales script better but is slower.
A 50 ms speech buffer
Cartesia’s default 3 s buffer would make the agent sound slow.





