Two WebSocket channels: /v1/speech-to-text/realtime (audio in, partial and final transcripts out) and /v1/text-to-speech/ws (text in, audio frames out). Authenticate with the api-subscription-key query parameter. The machine-readable contract is /docs/asyncapi.yaml; the guide's realtime section has a working example.