Realtime

Worker lingua-voice. Mint a secret, open the WebSocket, speak 16 kHz pcm16.

Connect

  1. Mint: POST /v1/realtime/client_secrets. CORS *.
  2. Open WS /v1/realtime with that secret. HTTP without Upgrade: websocket is 426.
  3. Handshake is done when the server has sent session.created, then conversation.created.

Servers: Authorization: Bearer <secret>. Browsers: subprotocol openai-insecure-api-key.<secret> or xai-client-secret.<secret>.

Hosts

Same worker, two sockets. Pick the one your network can open.

lingua-voice.archangl.workers.dev
IPv4 socket. https://lingua-voice.archangl.workers.dev · wss://lingua-voice.archangl.workers.dev/v1/realtime · POST https://lingua-voice.archangl.workers.dev/v1/realtime/client_secrets.
voice.archangl.ai
AAAA-only. https://voice.archangl.ai/ · wss://voice.archangl.ai/v1/realtime · POST https://voice.archangl.ai/v1/realtime/client_secrets.

Speak

Native audio is 16 kHz pcm16 (16000), not OpenAI Realtime’s 24 kHz. turn_detection is null. On Harvest end_of_speech, send input_audio_buffer.commit.