Arabic realtime voice agent
AssemblyAI v3 streaming socket universal-3-5-pro 16 kHz PCM s16le, 100 ms frames
idle
mode -
capture -
voice -
Not connected.
MOCK
No server, no API key, no microphone. Turn 0 is the real captured session in
fixtures/v3_session_arabic.jsonl, revision included, and all three of its stage
timings are measured — the first two from NOTES.md §3, the reply time
from the live run in §14. Every agent reply and slot payload below was captured from this
repo's own /api/agent. Turn 1 is a scripted continuation, and its invented
timings are the only numbers here that are not measured, so they are marked sim.
DIRECT
This browser holds the AssemblyAI socket itself. /api/token mints a 60 second
streaming token, the page opens wss://streaming.assemblyai.com/v3/ws with no
Authorization header (a browser cannot set one, which is the whole reason the token
exists), and each committed turn is POSTed to /api/agent. There is no websocket server
anywhere, so every number on this page is measured in your browser, not simulated.
Turn budget
three stages, measured separately, never blended into one number
time to first partial
-ms
from start of turn sim
time to end of turn
-ms
from start of turn sim
time to reply
-ms
after end of turn sim
| turn | first partial | end of turn | reply |
Conversation
logical Arabic, shaped by the browser. Nothing is pre-shaped or reversed in JS.
Numbers arrive as Arabic words
a digit regex finds nothing in this transcript
Partial revision
partials are revised, not extended. A word already shown can be withdrawn.
Event log
every frame the socket delivered