audioJS

Transcribe audio to text and subtitles

Drop an audio or video file. Get a transcript plus SRT and VTT subtitle files, entirely on your device.

Drop an audio or video file here
or click to choose, or paste with Ctrl+V

Nothing is uploaded. Everything runs in this tab with @audio/neural-asr and @audio/subtitle.

Whisper speech recognition in your browser

This page runs @audio/neural-asr, a wrapper around transformers.js and ONNX Runtime that drives Whisper (Radford et al., OpenAI 2022) entirely on your device. Drop a file, watch the model download once, read the transcript, save it as text or subtitles. Nothing is sent anywhere.

Three model sizes

Tiny, base and small are the same Whisper architecture at 39M, 74M and 244M parameters, converted to ONNX by the onnx-community project and 4-bit block-quantized (dtype: 'q4') for a browser-sized download: about 91, 136 and 285 MB. Bigger models make fewer mistakes on accents, background noise and unusual words, at the cost of a longer download and slower inference.

Sentence or word timestamps

Segment timestamps come straight from Whisper's own chunk boundaries and are the reliable default. Word-level timestamps need cross-attention data that only the older Xenova Whisper exports carry, so picking "Per word" switches the model to the matching Xenova conversion automatically.

Transcript, SRT, VTT

@audio/subtitle writes the recognised segments (or words, via fromWords, when word timestamps are on) to SubRip (.srt) and WebVTT (.vtt) alongside a plain .txt transcript, ready to attach to a video or feed to an editor.

Questions

Is the audio uploaded anywhere?

No. Recognition runs in your browser with Whisper through @audio/neural-asr (transformers.js on ONNX Runtime, WASM or WebGPU). Audio never leaves your device. The Whisper model itself downloads once from huggingface.co and is cached by the browser; every transcription after that runs offline.

Does it detect the language automatically?

No. The browser Whisper pipeline does not auto-detect language; leaving the selector on Auto quietly assumes English. Pick the spoken language from the list for anything else — the wrong language still produces fluent but wrong text.

Which model should I pick?

Tiny (91 MB) is fastest, good for a quick draft of clear speech. Base (136 MB) is the default: a real accuracy step up for a modest extra download. Small (285 MB) gets closest to a human transcript but downloads more and runs slower, especially on a phone.

How accurate are word-level timestamps?

They come from Whisper's cross-attention alignment, documented as accurate to roughly ±100 ms, sometimes worse: short function words can land at the same instant. Sentence timestamps use Whisper's own segment boundaries and are more reliable; pick word-level only when you need karaoke-style captions.

What happens with silence or music?

Whisper has no explicit silent output. Fed music, noise or long silence it can produce fluent invented text instead of nothing. Trim non-speech sections before transcribing anything you plan to publish as-is.