Chris Collins

Tools · everyday

Dictation scratchpad (speech to text)

Dictate into notes kept in your browser. Speech is recognised locally with OpenAI's Whisper running in the page — the audio never leaves your device — or with the browser's own speech recognition, with live words as you speak.

Added · updated 12 October 2026

How to use it

Pick an engine, press Start dictation, and talk. Recognised text goes into the current note, where you can edit it like any text. Notes stay in this browser (localStorage); copy them or download them as .txt or .md.

Engines

Local (Whisper) — the default. Whisper runs in a background worker in this page through transformers.js. Your audio is processed on your device and is never sent anywhere. What is downloaded, once, and then cached by your browser:

  • the library (about 0.9 MB) and the ONNX Runtime engine (about 22 MB) from the jsDelivr CDN;

  • the model from Hugging Face. On the CPU (8-bit weights): tiny ≈ 41 MB, base ≈ 77 MB, small ≈ 249 MB. On the GPU (WebGPU; fp32 encoder, 4-bit decoder): tiny ≈ 120 MB, base ≈ 206 MB, small ≈ 299 MB.

The English-only models are a little more accurate for English; the multilingual ones can detect the language or use the one you choose. tiny keeps up on most laptops; base is noticeably better; small is best but slow without a GPU.

Browser speech recognition uses the Web Speech API built into the browser and shows words as you speak. It is not local in most browsers: Chrome and Edge send the audio to Google’s or Microsoft’s speech service; Safari can recognise some languages on the device. It always uses the default microphone, and Firefox does not offer it.

Modes

  • Continuous listens and cuts what you say into utterances at pauses (voice activity detection on the audio level). Each utterance is transcribed as soon as you pause, so text arrives a sentence or so behind your speech. Adjust Sensitivity if quiet speech is missed or background noise is picked up.

  • Push to talk: hold the button (or Alt+Space) while you speak; the recording is transcribed when you let go.

Put text chooses where text goes: appended to the end of the note, inserted at the cursor (replacing any selection), or replacing the note with the first words of the next dictation. Timestamps prefixes each utterance with the time since you started, on its own line.

The microphone needs permission the first time, and pages must be served over HTTPS (or localhost).

Presenting

Live captions: the last lines of the note, large, with the words still being recognised beneath them, and a listening indicator. Space starts and stops listening. Press ⛶ Present (beside Share link) or F to open it; Esc or F closes it and T switches between dark and light. It goes full screen where the browser allows, otherwise it fills the window, and keeps the screen awake. Controls and the pointer fade after a few idle seconds.

Share link → Link options can make a link that opens straight into this view and starts by itself. The microphone needs a click first, so such a link shows a large “Click to start listening” button. Browsers only allow real full screen or the microphone after a click, so a link opened cold shows the view filling the window with a “Click for full screen” button and a “Click to start” button when the link asks to start.

Runs entirely in your browser — network requests go only to the services named on this page.