Turn state stays off the speech path
0.65 ms0.83 ms p95Expression inference on CPU, measured with a 25 ms causal analysis window and recurrent updates every 10 ms.
Measured behavior
A latency number without its start and end points is an adjective with digits. Every figure here says what was measured.
Live serving measurements
These figures describe different parts of the running system. They should not be added together or treated as one end-to-end fixture.
Expression inference on CPU, measured with a 25 ms causal analysis window and recurrent updates every 10 ms.
Source canvas to decoded WebRTC. This is the visual transport boundary, not speech-response latency.
Microphone speech to first returned audio, stable from one to eight concurrent sessions. At two conversations per T4, p95 was 2.183 seconds. A native-live baseline was faster on the same fixture: 1.054 seconds versus 1.955 seconds.
Microphone speech to first returned audio when speculative endpointing applies. If speech resumes, the speculative work is discarded.
Two concurrent background think calls in the recorded homepage demo. Both returned while the conversation continued; neither blocked a turn.
Separate forty-turn fixture
One scripted conversation, forty turns, retained context verified at the end. The latency boundary is final speech sample leaving the client to first response-audio byte arriving.
Presence p50. It was slower to first audio than both hosted realtime APIs in this run.
Presence answered while its long-running tool continued. The same probe took 5.8 seconds on one hosted API and remained blocked on another.
Measured on one hosted realtime API. The other measured 1.25×. Presence remained 1.0× because it bills occupied time.
These are single runs on one fixture, not a universal ranking. Models, prices, caching, regions, and serving paths change. The public harness and raw per-turn data are the durable claim.
Feel the boundary