A clinic can let a voice agent answer the phone. What it cannot do is act on a name, a date of birth or a phone number that only a model says it heard. A transposed digit means the reminder never arrives, a missed allergy is a clinical risk, and a drug name heard as a similar one is worse than none at all. Voice agents hand over a transcript and a summary, both the model's own account of the call. Twiceheard is a phone-first intake agent for outpatient clinics, built on the AssemblyAI Voice Agent API. Try it: twiceheard.vercel.app/call takes the call in your browser and prints four lines to read out, one of them in Hinglish. twiceheard.vercel.app/desk, clinic code KD7E2N6Z54, is what the clinic receives: every finished call, each field graded verified, check or missing. Every critical value is read back in a sentence the server composes rather than the model, so only a yes to that exact sentence counts. After the call the chart is rebuilt from the session record rather than from what the model reported, and the recording is transcribed a second time with Universal-3.5 Pro, in batch, speakers on separate channels, a confidence score on every word. A field is verified only when both hearings agree, and the check is bound to the question that was asked, so a caller's "no" to one question cannot verify another. Measured, and reproducible with npm run verify: 482 tests at 100% statements, branches, functions and lines; 27 browser tests including a whole call driven by a synthetic microphone; 26 scripted evaluation cases, of which 7 are values the caller confirmed live that the recording contradicts or cannot support, and all 7 are downgraded. On a live call today a caller said "yes" to a name the agent had wrong, and the chart still came back amber and not ready. The honest limit: both hearings are the same vendor's model family, so a mishearing they share would pass both; the RxNorm lookup is what stands behind drug names, and it is not a look-alike list.
Category tags: