Text to Speech Privacy Policy

Browser voice mode is the default and runs entirely on your device. AI voices are opt-in: the first time you switch the toggle to AI, you see a consent panel that names the host and what is sent. You can decline and stay on Browser voices.

What We Collect

When AI voices are enabled, only the specific text you have selected on a page and asked to read aloud. We do not collect browsing history, page URLs, page content other than what you read aloud, account info, or any identifier. We do not use analytics, cookies, or third-party trackers. Browser voices store and send nothing.

What We Store Locally

Your chosen mode (Browser or AI), voice / speed / pitch settings, and the AI consent flag. Saved locally on your device using chrome.storage.local.

This data never leaves your device. It is not sent to any server, and we have no way to access it.

Why We Need Each Permission

Text to Speech only asks for the permissions it needs to work. Here is what each one does:

tts

Required to call chrome.tts.speak, which plays audio through the browser's built-in speech engine. Used in Browser mode (the default).

contextMenus

Add a 'Read [selection] aloud' item to the right-click menu, shown only when text is selected.

storage

Save your settings, chosen mode, and AI consent flag between sessions.

activeTab

Let the popup playback controls and keyboard shortcut work on the active tab. The extension does not read tab content; it only reads text you have selected.

scripting

Reads window.getSelection() in the active tab when you use the keyboard shortcut. Not used otherwise.

offscreen

Plays AI audio in a hidden offscreen document. MV3 service workers cannot play audio directly. Only used when AI voices are enabled.

host_permissions: ai-proxy-production-6b92.up.railway.app

Required for the optional AI voices feature. The extension contacts this host only when you have explicitly turned on AI voices in the popup.

Third-Party Services

When you have turned on AI voices and ask the extension to read a selection, the text is sent over HTTPS to our service at ai-proxy-production-6b92.up.railway.app/v1/tts. The service forwards the text to OpenAI's audio/speech API (model tts-1) to generate audio, and returns the audio to the extension. We do not store the text. We do not log it, train models on it, or analyse it. A short-term in-memory LRU on the proxy may cache the audio for identical repeat requests (24h TTL). OpenAI sees the text only for the duration of the API call required to produce a response. A daily character cap protects against abuse: about 5,000 characters per day per IP. Browser mode does not connect to any server and works entirely on your device.

Policy Updates

If we change this policy, we will update this page. The date at the bottom shows when it was last updated.

Questions?

If you have any questions about this privacy policy, contact us at tomas.miller@extendforge.com.

Last updated: May 2026