Setup guide
OpenAI-compatible
Several services expose their speech models through the same API as OpenAI's /v1/audio/speech endpoint, and the extension can talk to any of them. Prefer to run models on your own machine? See Use any other model. For a hosted service there is nothing to install: you create an account, generate an API key, and give the extension the service's base URL. You pay the service per use. It takes about 5 minutes.
What you'll need
- An account with a service that offers OpenAI-compatible text-to-speech
- About 5 minutes
-
1
Pick a service
Services known to serve text-to-speech on this API shape:
- Groq
- DeepInfra
- Together AI: one endpoint that serves several model families, including Cartesia Sonic, MiniMax Speech, Rime, Orpheus, and Kokoro
-
2
Create an account and an API key
- Sign up on the service's site and set up billing if it requires it
- Generate an API key in its dashboard and copy it; name it something like Cloud Speech extension if the service lets you
- Find the service's OpenAI-compatible base URL in its API docs; it usually ends in /v1
Security warning
Keep the key secret; anyone with it can spend against your account. You can revoke it from the same dashboard at any time. -
3
Connect the extension
- Click the extension icon in your browser toolbar
- Open Settings → OpenAI-compatible
- Paste the service's base URL as the Server URL
- Paste your API key (hosted services require one)
- Optionally list voice names separated by commas and a model from the service's docs (the default is tts-1)
- Click Save & test
The extension first asks the service for its voice list. If the service doesn't report voices, it falls back to OpenAI's nine standard voice names, and anything you type in the voices field takes priority. Once the test passes, highlight text on any page, right-click, and choose Read aloud, or press Ctrl/Cmd+Shift+S.
Where specific services stand
Works directly. LocalAI, Speaches, and openedai-speech (covered in Use any other model), plus hosted gateways like Groq, DeepInfra, and Together AI. Together AI reaches Cartesia and MiniMax voices directly: its Server URL is https://api.together.ai/v1, and its docs list the voice names and model ids (e.g. hexgrad/Kokoro-82M) to paste into the extension's Voices and Models fields.
Needs a proxy you run yourself. ElevenLabs and Vertex AI/Gemini use their own API formats; a LiteLLM proxy translates them to this endpoint shape, and MiniMax works that way too if you prefer a proxy over Together AI. Running LiteLLM is covered in Use any other model.
Costs
Each service sets its own rates; check its pricing page before you start: Groq pricing, DeepInfra pricing, or the pricing page of whichever service you picked. For how hosted services compare to the cloud providers, see our provider comparison.
Remove access when you're done
- Revoke the API key in the service's dashboard. It stops working immediately.
- In the extension, open Settings → OpenAI-compatible and clear the saved fields (or turn the provider off).
Troubleshooting
401 or unauthorized errors
The key you pasted is wrong or was revoked. Generate a fresh key in the service's dashboard, paste it into the extension's API key field, and click Save & test again. A stray space around the key is a common cause too.
404 or not-found errors
The base URL is wrong: it's missing the /v1 suffix, or points at the wrong path. Copy the OpenAI-compatible base URL exactly as the service's API docs give it and save again.
No voices, or the wrong voices, in the picker
The extension asks the service for its voice list first and falls back to OpenAI's standard names if that fails. If the service's voices don't show up, look up their names in its docs and type them into the Voices field, separated by commas, then save again.
For no audio, missing voices, or keyboard shortcut problems, see the troubleshooting guide.
Looking for a model we don't list, or a free self-hosted setup? Use any other model instead. Or pick a cloud provider: Amazon Polly, Azure Speech, Google Cloud TTS, or OpenAI.