InstaScript

WAV to Text: Transcribe a WAV File in Your Browser

Turn a local WAV recording into searchable text with timed exports

Need a walkthrough? Follow the illustrated guide.

WAV to text

Local WAV transcription with text and timed subtitle exports

Runs in your browser

Your file stays on this device

Drop your WAV file here
or browse

WAV, MP3, M4A or OGG — up to 100 MB

One local file at a time; the browser reads the recording's audio track.

English speech only. Browser decoding is required. First use may download language-detection and English-recognition models.

Check WAV size, recording coverage and spoken words

WAV is a container, often larger than a compressed recording. Choose one local file up to 100 MB above; actual decoding and English speech determine whether it can be transcribed.

1. Which WAV should I choose?

Check file size before starting and listen to the opening and closing seconds. Multiple channels, an unusual codec or a damaged header can affect decoding. The practice file is stereo PCM16 at 44,100 Hz; that observation does not validate every WAV configuration. The browser first decodes the recording, checks its language with a multilingual checkpoint, then recognizes English with a separate English checkpoint. First use may download both models. Cached resource files can avoid another download, but they do not guarantee an initialized model: the English instance is released before the next language check. There is no fixed completion time.

Which WAV should I choose? Actual file selection in this tool. The public teaching sample is not a personal recording.
Actual file selection in this tool. The public teaching sample is not a personal recording.

Check: The file is below the limit and contains the whole passage you need.

Back to the tool

2. How do I check that both ends of the recording were covered?

Compare the first and final audible phrases with the transcript. If voices overlap across channels, review the source rather than assuming speaker separation. This tool does not automatically identify speakers. Click a transcript timestamp to seek in the local recording player. Replay the surrounding phrase before editing its cue. Text edits do not move cue boundaries. Use Find in this transcript to locate an exact word in the latest edits; Previous and Next navigate matches, Enter moves forward, Shift+Enter moves back, and Escape clears the search.

How do I check that both ends of the recording were covered? Actual local sample workflow. Any [reviewed] suffix is a deliberate teaching edit, not recognized speech.
Actual local sample workflow. Any [reviewed] suffix is a deliberate teaching edit, not recognized speech.

Check: The first and final spoken phrases are accounted for, and overlapping speech is reviewed.

Back to the tool

3. How do I keep the original and reviewed copy?

Keep the WAV as evidence of what was audible. A TXT copy is convenient for searching; SRT/VTT adds timing only when the returned cues validate. Copy, TXT and Markdown use your edited words and are untimed by default. Enable Include timestamps in TXT, Markdown and Copy to include available start times. Markdown escapes markup and exports transcript paragraphs, without creating a summary. SRT, VTT and Open in Subtitle Editor require nonempty text and complete valid start/end times; missing ends are not estimated. If timing is incomplete, save TXT or Markdown and keep the recording.

How do I keep the original and reviewed copy? Actual local sample workflow. Any [reviewed] suffix is a deliberate teaching edit, not recognized speech.
Actual local sample workflow. Any [reviewed] suffix is a deliberate teaching edit, not recognized speech.

First cue from the actual teaching export (including the deliberate [reviewed] edit):

1
00:00:00,000 --> 00:00:07,740
And so my fellow Americans ask not what your country can do for you [reviewed]

Check: The saved output and source remain separately available.

Back to the tool

More questions and limits

Does my recording leave this device?

Local decoding, recognition, replay, edits and downloads run in your browser. Model resources need network access, but the local recording and transcript are not uploaded. There is no account history or saved cloud project; download your work before closing the tab. Same-origin editor transfer keeps the cues and recording local between tabs. Instagram URL retrieval and YouTube caption lookup have separate server-assisted privacy boundaries.

What if decoding or the language check fails?

An undecodable file is different from a language result. Detected non-English speech stops recognition; an uncertain result or a technical language-check failure stops with a separate message and creates no transcript. For a damaged or unsupported file, export a new playable audio copy from its source: renaming the extension does not convert it. Recording Format Guide explains these boundaries.

Can I cancel and try again?

Only one transcription task runs at a time. Cancel processing discards its result; an in-progress model or audio operation may need to finish before controls unlock. Then use Try the same input again. Choosing another input clears the previous retry target. A cancellation is not a transcript of silence.

Where is the complete audio workflow?

Audio to Text explains search, text corrections and output choices. For timing changes, use Subtitle Editor.

Historical measurements and method limits

Measured browser timings

These are historical measurements from 2026-09-14 using only whisper-tiny.en. They do not measure the current language-detection plus English-transcription workflow, and exclude Instagram lookup and media download.

Audio lengthHistorical wall-clock timeHistorical model load
11 s16.89 sincluded
11 s6.49 salready in memory
30 s8.98 salready in memory
60 s16.06 salready in memory
120 s28.58 salready in memory

In the historical test, the first run included model loading; subsequent runs retained the English model in memory. Current jobs release that instance before language detection, so a resource cache hit still requires initialization. Wall-clock time is not CPU time, and subtracting two runs does not isolate download or initialization time.

One machine, one WASM browser, one run per historical data point. Audio clips were constructed from a repeated public JFK recording. These rows do not predict today's end-to-end time, other devices or other recording content.

Sources: historical raw CSV · current two-model measurements (2026-10-14) · method, environment and limitations.