Turn-taking, timed to the millisecond.
Three timing signals, re-derivable by hand from two audio channels, with no model in the path.
Three signals, re-derivable by hand.
Each channel already belongs to one party, so timing needs no words. From two lanes of energy, Hotato reads exactly three numbers, and you can check every one with a ruler on the waveform.
- did_yield
- bool: did the agent stop once the caller started?
- seconds_to_yield
- how long from the caller’s onset to the agent’s stop.
- talk_over_sec
- how long both channels carried energy at once.
$ hotato run --stereo call.wav --onset 12.4 --expect yieldEnergy is not intent.
The scorer measures when each side spoke and for how long. It flags a candidate moment; you decide whether it was an interruption, a backchannel, or a clean handoff.
There is no speaker identification, no diarization scoring, no transcription grading, no emotion read, no intent read. The two channels arrive already separated, one party each, so timing needs none of it.
A finding earns its way up five rungs.
A flagged moment starts as a question. It becomes a trustworthy finding only by climbing: each rung a narrower, better-grounded claim than the one below it.