Skip to main content
Connect Voice when you want people to talk to Roomote on a call from any session, on the home page, or in the New Session dialog.

How setup works

A deployment admin connects Voice once from the Integrations page with an OpenAI API key from a project that has GPT-Live access. We recommend a key separate from any key used for task inference, so voice can be billed and revoked on its own. The setup dialog also lets the admin choose any voice supported by GPT-Live and play a short AI-generated preview before saving. Previews use OpenAI’s speech endpoint, so a restricted key needs the Audio model permission (api.model.audio.request) in addition to GPT-Live access; without it, calls still work and the dialog says what the key is missing. New and previously unset connections use Marin, one of OpenAI’s recommended voices. Existing voice selections stay unchanged.

What to expect

Voice is a credential-only integration. Roomote uses the key on the control plane to open GPT-Live calls and to clean up spoken transcripts; agents receive no tools from it, and the key is not sent to task sandboxes. The browser sends its WebRTC connection offer to Roomote and receives only the negotiated answer. Self-hosted operators can instead set R_VOICE_OPENAI_API_KEY. When both are present the environment variable is used. Roomote’s general OPENAI_API_KEY is never used for voice, so enabling OpenAI for task inference does not turn voice on. An environment-managed key cannot be edited or disconnected on the Integrations page and uses Marin because it has no stored voice selection, but a deployment admin can still turn Voice off and back on for the deployment from the Voice card. A key saved on the Integrations page is kept while Voice is off.