# LinguaVox — Full Product Reference > AI-powered voice transcription and translation Chrome extension. Speak into any web input field, any language. Under 3 seconds end-to-end. ## What is LinguaVox LinguaVox is a Chrome browser extension (Manifest V3) that converts speech to text using OpenAI Whisper and injects the result directly into any web input field — chat boxes, search bars, email editors, CRM forms, support consoles, documentation tools, and more. The core interaction is designed to be frictionless: the user holds Ctrl+Space, speaks, releases the shortcut, and the transcribed (and optionally enhanced) text appears in the active field within under 3 seconds. No copy-pasting, no switching windows, no separate dictation app. All OpenAI API calls are proxied through a Cloudflare Worker running at the global edge. API keys never reach the browser. The extension authenticates users via Google OAuth 2.0 and issues a short-lived JWT for each session. ## How Recording Works The recording flow has two entry points depending on the target website: **Standard websites (Google, Gmail, most apps):** 1. User presses Ctrl+Space — content script detects the keydown event 2. Extension checks microphone permission, shows a recording indicator (top-right corner, red dot + timer) 3. Background service worker activates the browser's MediaRecorder API 4. User speaks 5. User releases Space — content script hides the indicator, shows a processing spinner 6. Background worker stops recording, collects the audio blob as base64 7. Audio is sent to the Cloudflare Worker endpoint /api/transcribe 8. Cloudflare Worker calls OpenAI Whisper, returns transcribed text 9. If AI enhancement is enabled, text is sent to /api/enhance (GPT-4o-mini) 10. Final text is injected into the active input field via the content script 11. A brief "Text inserted" confirmation toast appears **Complex SPAs (Slack, Asana — intercept keyboard events):** The extension also listens via chrome.commands.onCommand. When the keyboard shortcut fires through the commands API (bypassing page-level interception), the background service worker orchestrates the same recording flow and sends a message to the content script to show/hide UI indicators. The end-to-end latency target is under 3 seconds from releasing the shortcut to text appearing. In practice, this depends on audio length and network conditions, but short utterances (5–15 seconds) consistently hit the target. ## Supported Languages LinguaVox supports 21+ languages for both transcription (speech-to-text) and translation (speak in one language, text appears in another): Transcription languages: English, Ukrainian, Russian, Spanish, French, German, Japanese, Korean, Chinese (Simplified), Arabic, Italian, Portuguese, Polish, Dutch, Turkish, Hindi, Swedish, Romanian, Greek, Tagalog, Punjabi Translation target languages: Same set — users can speak in any supported language and have the output appear in a different language. For example, speak in Ukrainian, get English text in the input field. The interface (extension popup, notifications, tooltips) is available in 14 locales: English, Ukrainian, Russian, Spanish, French, German, Japanese, Chinese, Romanian, Greek, Urdu, Tagalog, Italian, Punjabi. ## AI Enhancement Modes After transcription, LinguaVox can optionally pass the raw Whisper output through GPT-4o-mini for text improvement. There are 6 enhancement modes: - **Smart Polish** — default mode; fixes grammar, improves clarity, removes filler words, preserves the original meaning and tone - **Business Style** — rewrites text in professional business tone suitable for corporate emails, reports, and formal communications - **Grammar Fix** — minimal intervention; corrects spelling and grammar errors only, does not change style or vocabulary - **Creative Style** — rewrites with vivid, engaging language; adds descriptive detail and stylistic flair - **Casual Style** — friendly, conversational tone; removes formality, makes text feel natural and approachable - **Academic Style** — formal academic language; precise vocabulary, structured sentences, citation-ready phrasing Enhancement is opt-in and runs server-side. If the enhancement API call fails for any reason, the original Whisper transcription is preserved and inserted — enhancement failure never causes a total failure. Users can also enable "Original Mode" which bypasses enhancement entirely and inserts the raw transcription, regardless of which enhancement mode is selected. ## Text Insertion Compatibility LinguaVox injects text into the active web input using a compatibility stack that supports modern web frameworks: 1. **Tracked active element** — the extension monitors focus and click events to always know which field is active 2. **React-compatible setter** — uses the native input value setter plus a synthetic InputEvent with inputType:'insertText', triggering React's onChange handlers correctly 3. **ContentEditable support** — for rich text editors (Slack message box, Notion, Gmail compose), uses document.execCommand('insertText') with a DOM mutation fallback 4. **Clipboard fallback** — if all else fails, copies text to clipboard and notifies the user This stack has been tested and confirmed working on: Google Search, Gmail compose, Slack message input, Asana task fields, Notion pages, standard HTML input and textarea elements, Draft.js editors, Quill editors, and most CRM/support tool inputs. ## Privacy and Security - Audio is never stored. It is processed in real-time and discarded after transcription. - No personal data is sold or shared with third parties. - OpenAI API keys are stored exclusively in Cloudflare Worker secrets — the browser never sees them. - User identity (Google OAuth profile) is stored in Cloudflare KV as: Google ID, email, name, account creation date, and active status. - Daily usage counts are stored with a 25-hour TTL and automatically expire. - All communication between the extension and the Worker uses HTTPS with JWT Bearer authentication. - The extension requests only the permissions it needs: activeTab, storage, scripting, identity, notifications, tabs. ## Pricing and Rate Limits **Free tier:** - 20 requests per day (combined transcription + translation + enhancement calls) - Shared OpenAI API key pool managed by LinguaVox - No credit card required, sign in with Google **Bring Your Own Key (BYOK):** - Unlimited requests, billed directly to the user's OpenAI account - User provides their OpenAI API key in the extension settings - Key is sent to the Cloudflare Worker per request and used for that session only — not stored server-side **Organization plan:** - Team-level API key sharing - Usage analytics across team members - Centralized billing through one OpenAI account - Admin dashboard for usage monitoring Rate limit errors return HTTP 429 with a JSON body: `{"error": "Daily limit exceeded", "limit": 20, "used": 20}`. The extension surfaces this as a user-facing notification. ## Technical Architecture **Chrome Extension (Manifest V3):** - background.js — service worker; handles recording orchestration, API calls, auth state - content.js — injected into every page; keyboard handling, recording UI, text insertion - popup.js / popup.html — settings UI, history viewer, auth flow **Cloudflare Worker (serverless, global edge):** - /api/auth/google — Google OAuth token exchange, JWT issuance - /api/user/me — returns user profile and current daily usage count - /api/transcribe — forwards audio to OpenAI Whisper, returns text - /api/enhance — forwards text to GPT-4o-mini with selected enhancement prompt - /api/translate — translates text to target language via GPT-4o-mini The Worker rotates through a pool of OpenAI API keys automatically on 429 (rate limit) or 401 (invalid key) errors, ensuring high availability even when individual keys hit limits. **Infrastructure:** - Cloudflare Worker for API proxy and auth - Cloudflare KV for user accounts and usage tracking - Cloudflare Pages for landing page hosting - OpenAI Whisper (large-v2 equivalent) for transcription - OpenAI GPT-4o-mini for enhancement and translation ## Frequently Asked Questions **Does LinguaVox work on all websites?** It works on the vast majority of websites including Google, Gmail, Slack, Asana, Notion, Salesforce, Jira, and standard HTML forms. Google Docs and Google Slides have a complex editor implementation that may require a page refresh to activate correctly. **Do I need an OpenAI account?** No. The free tier uses a shared API key pool. You only need your own OpenAI key if you want unlimited usage beyond 20 requests/day. **Is my voice recorded or stored?** No. Audio is streamed to the Cloudflare Worker, immediately forwarded to OpenAI Whisper, and discarded. There is no audio storage at any point. **What keyboard shortcut does it use?** Default is Ctrl+Space. The shortcut can be reconfigured in Chrome's extension keyboard shortcut settings (chrome://extensions/shortcuts). **How accurate is the transcription?** OpenAI Whisper achieves 95%+ word error rate accuracy on most languages in typical speaking conditions. Accuracy improves with clear speech, a decent microphone, and minimal background noise. **Does it work offline?** No. Transcription requires sending audio to OpenAI Whisper via the Cloudflare Worker. An active internet connection is required. **What happens if the AI enhancement fails?** The original Whisper transcription is preserved and inserted into the field. Enhancement failure never causes the transcription to be lost. **Can I use it in incognito mode?** Yes, if you enable the extension for incognito mode in Chrome's extension settings. Auth state is stored in chrome.storage.local which does not persist across incognito sessions. ## Contact and Links - Website: https://linguavox.uk - User Dashboard: https://linguavox.uk/login - Privacy Policy: https://linguavox.uk/privacy/ - Support: https://linguavox.uk/support/ - GitHub: https://github.com/kos-4862/linguavox-public - Chrome Web Store: https://chromewebstore.google.com/detail/linguavox/dpdejiobdhljljfnkmipjblbpcfhbdea ## Version Information Current version: 3.0.0 Last updated: 2026-05-07 Platform: Chrome Extension (Manifest V3) Minimum Chrome version: 88+