Skip to main content
Voice lets you speak into the chat composer and hear assistant replies read aloud. Voice processing is a separate operation from generating the chat answer, but Same as chat can reuse a supported OpenRouter, PPQ, or Venice connection for both dictation and speech. You can keep voice processing in this browser after a one-time model download, connect an OpenAI-compatible voice server you control, reuse a supported AI-provider account, or use xAI or ElevenLabs with a separate voice key.

Choose where voice is processed

Open Settings → Voice, then choose one service for dictation and spoken replies.
Voice processing and AI chat are two separate steps. Dictation first places a transcript in the composer so you can review it. When you send that message, your configured AI provider receives it together with the enabled chat context described in AI chat.

Set up on-device voice

On-device voice is the most private explicit option and the fallback when Same as chat cannot use the active AI provider. Models run in a browser worker and are downloaded only when you explicitly request them.
1

Open Voice settings

Open Settings → Voice and choose On this device under Where voice is processed.
2

Choose transcription quality

Whisper Small is the recommended balance of speed and accuracy and downloads about 260 MB. Whisper Large v3 Turbo may be more accurate, but downloads about 770 MB and needs more memory.
3

Choose processing hardware

Keep Automatic unless you are troubleshooting. getbased can use your main processor or WebGPU-capable graphics processor and remembers measured performance after use.
4

Download the models you need

Under Built-in local models, click Download for transcription, speech, or both. The Kokoro speech model is about 95 MB for main-processor use; its graphics-processor assets are larger.
5

Choose a voice

Select an American or British English voice and adjust the speaking speed. On-device spoken replies currently support English. On-device Whisper supports multilingual dictation.
Model files are stored as rebuildable browser caches. They are not included in sync or backups, and your browser may remove them when storage is scarce. If that happens, getbased asks you to download the model again before the next voice action.

Dictate a message

1

Start recording

Open chat and click or tap the microphone beside the composer. The first use asks for browser microphone permission.
2

Speak, then stop

Tap the microphone again when you are finished. A recording can run for up to five minutes; getbased stops and transcribes it automatically at that limit.
3

Review before sending

The transcript is inserted at the cursor in the composer. Edit it as needed, then send it like any typed message.
The microphone recording is held only for the active transcription operation. getbased does not add the raw recording to chat history or profile storage.

Listen to replies

Choose Listen under an assistant reply to generate and play speech. Choose Stop to end playback. To hear every new reply while chat is open, enable Read new replies automatically in Settings → Voice. Browsers normally require one direct playback action before allowing automatic audio, so tap Listen once after enabling it. Closing chat, changing threads, leaving the page, starting a recording, or choosing another reply stops stale playback. A reply is read only in the thread where the request started.

Use different services for dictation and listening

Enable Use different services for dictation and listening in Settings → Voice when one service does not fit both jobs. For example, you can keep dictation on-device while using a cloud voice for spoken replies. Each operation follows its own privacy boundary:
  • the dictation service receives the microphone recording;
  • the spoken-replies service receives only the assistant reply being read;
  • neither voice operation automatically receives your full profile or complete chat history.

Connect a compatible voice server

Choose Local voice server to connect directly from the browser to a server you control. Compatible servers need these OpenAI-style endpoints:
  • POST /v1/audio/transcriptions for dictation;
  • POST /v1/audio/speech for spoken replies;
  • GET /v1/models for the connection test.
In Settings → Voice → Connections → OpenAI-compatible local server, enter the base URL, optional API key, model names, and voice identifier expected by your server. Examples include Whisper.cpp, LocalAI, and Speaches when configured with the required endpoints.
“Local voice server” means a direct compatible connection, not necessarily inference on this browser device. A LAN or remote URL receives the recording or reply text. Use HTTPS or a trusted encrypted tunnel for any connection that leaves your device, and make sure the server allows browser requests from the getbased origin.

Reuse an AI provider or connect xAI or ElevenLabs

Choose Same as chat to reuse OpenRouter, PPQ, or Venice when the active provider is connected in Settings → AI. You can also select one of those providers explicitly for voice. OpenRouter exposes compatible transcription and speech model choices; PPQ and Venice use their supported audio endpoints and voice catalogs. Routstr, Custom API, Local AI, and CLI agents do not currently supply the automatic voice path. Same as chat falls back to the browser models for those providers, even if a different cloud AI account is saved. CLI image support does not imply audio support. To send audio to another provider or compatible endpoint, choose that voice service explicitly; to use your own endpoint, select Local voice server separately. Expand the provider under Settings → Voice → Connections, paste a voice API key, then click Save key and Test connection. Refresh the voice list before choosing a hosted voice. Cloud voice requests go directly from your browser to OpenRouter, PPQ, Venice, xAI, or ElevenLabs. The provider must permit the browser request and applies its own pricing, retention, and account policies; getbased does not retry a failed direct request through its servers. A provider’s private or TEE chat mode does not automatically protect its separate voice endpoint. Before the first request to a cloud voice recipient, getbased asks for explicit, provider-specific approval. If you decline, no request is sent. The approval covers later cloud AI and voice actions you initiate with that recipient; withdraw it at any time in Settings → Privacy. Voice credentials are never deliberately stored as plaintext. With passphrase protection off, getbased wraps supported keys with a non-exportable key held by that browser. With passphrase protection on, it protects them with the passphrase-derived key. If device protection is unavailable, getbased keeps a new key in memory for the session instead of persisting it unprotected. Sync carries the sync-scoped voice preferences plus the supported OpenRouter, PPQ, Venice, xAI, and ElevenLabs keys inside its end-to-end encrypted payload. On the receiving browser, synced keys are wrapped again by that browser’s current device or passphrase protection. The compatible-server URL and optional key are device-scoped and are not synced. Full database and folder backups are different: they omit device-key-wrapped credentials when passphrase protection is off, and include supported credentials only as passphrase-encrypted values when it is on. See Voice privacy and storage for the full boundary.

Troubleshooting

Allow microphone access for the getbased site in your browser’s site settings, then try the microphone again. Voice capture requires a secure browser context, such as the hosted HTTPS app or localhost during development.
Open Settings → Voice → Built-in local models and download the model for the action you want. Browser storage cleanup can remove cached model files even when the previous installation marker still exists; getbased verifies the cache before use.
Set Processing to Automatic or Main processor (CPU). WebGPU availability depends on the browser, operating system, graphics driver, and device.
Tap Listen on one assistant reply to grant playback activation in that browser. Automatic reading works only while chat is open.
Open its connection card in Settings → Voice, test the key, then click Refresh voices. ElevenLabs requires a selected voice before it can read replies.
Confirm the base URL, optional bearer key, and the three supported endpoints. Also check HTTPS mixed-content rules and the server’s CORS configuration.