Open the app — Extract Text from Audio Files
You need to turn a meeting recording into text, and there’s no good way to do it.
Online services ask you to upload the whole recording.
Which means first deciding whether the contents may leave the building at all. With an interview or a counselling session it’s worse.
This tool runs the Whisper model right inside your browser.
Download the model once and every calculation after that happens on your own machine.
The audio never leaves the page. No server upload, no API key, no sign-up.
How to Use
- Upload an audio file: click the drop zone or drag and drop. Any format the browser can decode is supported — mp3, wav, m4a, ogg, webm, flac, aac, mp4, etc.
- Pick a language: auto-detect / Korean / English / Japanese / Chinese / Spanish / French / German. Explicitly setting a known language is more accurate than auto-detect.
- Pick a model: base · small · medium (see the table below).
- Show timestamps (optional): when on, output is split into
[00:00 → 00:05] textsegments. - Click Extract Text. An overlay shows progress.
- When done, use the Copy or Download (.txt) buttons at the top right.
Model comparison
| Model | Download size | Accuracy | Processing time (60s audio) | When to use |
|---|---|---|---|---|
| whisper-base | ~78 MB | Fair | WebGPU ~4s · WASM ~20s | Everyday transcription, fast turnaround |
| whisper-small | ~244 MB | Good | WebGPU ~11s · WASM ~55s | Most real-world use including Korean. Recommended |
| whisper-medium | ~300 MB (q4) | Very good | WebGPU ~35s · WASM effectively N/A | Accuracy first, willing to wait |
- Each model is downloaded once and cached by the browser for instant loading on subsequent visits.
- Switching models requires downloading/loading the new one. Each model is cached separately, so already-downloaded models are never re-fetched.
Execution backend (WebGPU / WASM)
The bottom of the options panel shows the current backend.
- ⚡ WebGPU acceleration is available: recent Chrome / Edge / Safari with GPU → fast.
- ⏳ Running in WASM mode: browsers without WebGPU or on older hardware. Works, but 5–10× slower.
Note: whisper-medium uses q4-quantized files from the repository to fit within browser memory. On environments without WebGPU it’s effectively unusable.
Progress overlay
A translucent card appears throughout processing.
- Audio decoding: file is resampled to 16 kHz mono. Usually 1–3 seconds.
- Model preparation: encoder / decoder / tokenizer etc. shown as separate lines with individual %. Download percentages appear only on the first run; cached models load almost instantly on subsequent runs.
- Transcribing: an “about N min left” estimate refreshes every 10 seconds, computed from audio duration and model. It’s an RTF (real-time factor) based estimate — expect ±50% error.
The X button in the top-right of the card cancels at any time. Cancelled downloads remain in the browser cache for reuse next time.
Quality and Safety Nets
Result auto-save (safety net)
Completed transcripts are automatically saved to browser localStorage. If you accidentally refresh or close the tab, reopening the page restores the previous result with a “Restored previous result (saved …)” toast. Only the most recent transcript is kept — a new completion overwrites the previous one.
Repetition-loop prevention
Whisper has one chronic ailment.
Hit a silent or noisy stretch and it starts repeating the same word dozens of times.
You’ve probably seen “thank you thank you thank you…” fill the screen. This tool sets no_repeat_ngram_size=3 and greedy decoding (temperature=0) to block any 3-gram from repeating consecutively.
Supported audio formats
Anything the browser’s AudioContext can decode.
- Common: mp3, wav, m4a, ogg, opus, webm, flac, aac
- Containers: audio tracks in mp4 files are extracted
- Stereo / multi-channel is automatically downmixed to mono
- Any input sample rate is automatically resampled to 16 kHz
Good to Know
Privacy
- Fully client-side: audio, intermediate tensors and the final transcript are never sent to any server.
- Model files are fetched from the Hugging Face CDN on the first run only, then stored in the browser’s Cache Storage.
- Result storage uses only localStorage on this site’s origin.
Notes and caveats
- First run takes time because the model has to download (~80 MB for base, ~300 MB for medium). Expect tens of seconds to a few minutes depending on network speed.
- Long audio takes long. A 30-minute lecture with medium takes roughly 15 minutes in practice.
- Mobile browsers may fail with small or larger models due to memory limits — base is recommended on mobile.
- Auto-detect may misidentify very short clips (< 5 s). Set the language explicitly if you know it.
- Because everything runs locally, processing time varies significantly with device performance even for the same file.
Internationalization
The whole page supports Korean / English; toggle KO/EN in the top-left to switch instantly.
Open the app — Extract Text from Audio Files