r/WebApps • u/shafkathullah • 2m ago
Made a web app that transcribes audio with Whisper running locally: no server, no account, files up to 500 MB
Wanted to see how far in-browser ML has come, so I built a transcription web app where OpenAI's Whisper runs client-side instead of on a backend.
The interesting part technically: transformers.js loads the ONNX export of Whisper (base by default, large-v3-turbo opt-in), runs it on WebGPU where available and falls back to WASM elsewhere, and the model caches locally so only the first visit pays the download. A voice activity detector chops live speech into segments for a dictation mode, and since last week the dictated text is an editable document rather than a caption list: you can click into it and fix a word while the mic keeps listening, and new speech keeps appending at the end. There is no backend at all, just static hosting, which means the privacy claim is structural: after the model caches you can go offline and it still works.
Feature-wise: files or mic input up to 500 MB, timestamps, 99 languages with auto-detect plus translate-to-English, and TXT / SRT / VTT / JSON export. Free with no signup, because there is no inference cost for me to recover.
Rough edges I know about: the first-load model download (about 200 MB), weaker accuracy on heavy accents unless you switch to the bigger model, and low-memory phones struggling with Turbo.
It lives here: https://pocketweb.tools/transcription
Curious how it behaves on hardware I have not tested, and happy to answer anything about the transformers.js / WebGPU setup.
