Listen
Some browsers turn speech into words themselves. Where they cannot, the audio is recorded and posted to the transcription route, which is the control in the middle of this page. The line under that control tells you which one you are on.
Live demo
Click the orb to start. It listens, the agent answers, then it listens again — as many turns as you want, no extra taps. Click once more to hang up. The microphone is off while the agent speaks, so it never answers itself. It is not a live call.
Checking whether this deployment can speak, and how many voices it offers. The answer appears here before you press anything.
The route is public and unauthenticated, so it sheds floods: twenty requests a minute per address, then a plain 429 with a Retry-After. Ask for more and you will see that answer here rather than a spinner.
Checking whether this deployment can turn recorded audio into text. The answer appears here before you press anything.
Nothing recorded yet.
Whether your browser turns speech into words itself, or records and uploads instead, is checked when this page loads. The answer appears here.
The orb at the top is the three-step loop, end to end, with no text box. The orb at the top is the three-step loop, end to end, with no text box. The two controls below the orb are the outer legs in isolation — same public routes, so a missing key shows up as a status line instead of a silent orb.
Some browsers turn speech into words themselves. Where they cannot, the audio is recorded and posted to the transcription route, which is the control in the middle of this page. The line under that control tells you which one you are on.
The words go to the same chat door the typed chat uses, and the agent answers in a stream. That leg is not demonstrated here, because it needs a workspace and an agent to answer as.
The reply is spoken through the speech route — the control at the top of this page. While it plays, the microphone is shut, or the agent hears itself and answers its own voice.
| Half | Runs on | If the key is missing |
|---|---|---|
| Speaking | An OpenAI key gives six named voices. Without one, the Workers AI model still speaks, in a single generic voice, and cuts the text at 500 characters. | Both absent: the route answers 503 and the control above says so. |
| Listening | An OpenAI key. There is no second provider — claiming one that is not wired would make the check on this page lie. | Absent: 503, and browsers that recognise speech locally carry on regardless. |
Uploads are capped at 4 MB, and both routes count against the same twenty a minute per address.
A real phone number that answers in an AI voice is a different setup, with its own provider account and its own settings page. It shares no code with the two controls here. This page is the in-page loop only: your browser, our routes, nothing else in between.