Guide

How to transcribe a two-hour recording

Long files fail in ways short ones never do — per-minute pricing, upload limits, memory, and transcripts that dissolve into repeated text halfway through.

A ten-minute voice memo transcribes fine in almost anything. A two-hour board meeting is a different problem, and most tools handle it badly in one of four specific ways.

If you have a long recording and you are trying to work out why it is not going well, this is the map.

The four things that break #

1. Price, if you are paying per minute #

Cloud transcription is usually sold by audio minute. At a typical rate, one two-hour recording is a few dollars — fine once, painful as a habit. If you record a weekly two-hour meeting, you are looking at a subscription you will actually notice, for something your laptop can do while you make coffee.

This is the easiest of the four to solve: local transcription has no per-minute meter, because there is no meter to have.

2. Upload time and file limits #

A two-hour WAV can be several hundred megabytes. Uploading that on hotel Wi-Fi takes longer than the meeting did, and many services cap file size or duration and simply refuse it.

The workaround people reach for is compressing or splitting the file before upload, which costs quality and creates the boundary problems in point four.

3. Memory, on your own machine #

If you transcribe locally, the tool has to hold the audio in memory as raw samples. Two hours at 16 kHz is around 470 MB of float samples, and Whisper builds a spectrogram of comparable size on top of that.

On a Mac with 16 GB of RAM, nobody notices. On an iPhone, an app that naively loads the whole file gets killed by the system partway through — which is why some mobile transcription apps quietly cap file length, or crash on long recordings without explaining why.

The fix is to transcribe in windows: decode a slice, transcribe it, release it, move on. Peak memory then depends on the window size rather than the length of the file, and a two-hour recording costs about the same as a fifteen-minute one.

4. The transcript falls apart in the middle #

This is the one that surprises people, because the first ten minutes look perfect.

Long recordings contain silence — before the meeting starts, during the break, after everyone leaves. Whisper generates text for whatever it is given, and when it is given silence it repeats itself, sometimes for pages. We wrote about the cause in detail, because it is the single most common complaint about automatic transcription.

For a two-hour file this is not a cosmetic problem. It can turn the last quarter of your transcript into noise.

Getting a clean run #

Record the file so it can be transcribed #

Everything downstream is decided here, and it is worth thirty seconds of thought before a long session:

  • Get the microphone closer to the speakers than the air conditioning. A phone in the middle of a boardroom table is the classic mistake — it is equidistant from everyone, which means it is far from everyone.
  • Record uncompressed if you can. WAV or M4A at a normal bitrate. Heavy compression removes exactly the high-frequency detail that distinguishes similar consonants.
  • Stop the recorder when the meeting ends. Twenty minutes of packing-up noise is the raw material for the repetition problem.

Set the language explicitly #

Auto-detection samples the beginning of the file. If your recording opens with thirty seconds of room noise, or with someone speaking a different language from the rest of the meeting, detection can pick wrong and stay wrong for two hours.

If you know the language, set it. In Offline Transcription you can hold the Transcribe button on a file and pick its language directly, which matters most when you are transcribing a batch of recordings in different languages.

Start it and go and do something else #

A two-hour file on a modern Apple Silicon Mac takes minutes, not hours — the on-device engine runs several times faster than real time. On an older Intel Mac it is slower, and worth starting before lunch rather than watching.

What you want from the app while it runs is honesty: a percentage and a time remaining, so you know whether it is working or wedged. A spinner with no progress on a two-hour file is indistinguishable from a hang.

Check the boundaries, not the whole thing #

You are not going to proofread two hours of text. You do not have to.

The errors in a long transcript cluster in predictable places: names and acronyms, the first minute (before the model has context), moments when people talk over each other, and any point where the recording changes character — someone joins on speakerphone, the room moves, a video plays.

A segment view with timestamps makes this fast: skim for those moments, and play the audio behind any line that looks wrong rather than scrubbing a two-hour waveform to find it.

If you have a stack of long recordings #

The per-file mechanics matter less than the queue. Drop them all in, let them run in sequence, and come back later — locally there is no reason to do them one at a time, because there is no upload and no per-file cost.

The one thing worth doing per file is setting the language, if they differ.

The short version #

Long recordings fail on price, upload limits, memory, and silence-induced repetition. Local transcription removes the first two outright. For the other two, you want a tool that transcribes in windows rather than loading the whole file, and that runs voice activity detection so the quiet stretches never reach the model. Then check the transcript at the boundaries rather than reading all two hours of it.

Offline Transcription does the two-hour case specifically: windowed transcription so memory stays flat, voice detection so silence does not turn into repeated text, and live progress with a time remaining so you know where you are. It is free to download and try, on Mac and iPhone.

Offline Transcription

Transcribe audio and video entirely on your own Mac. Nothing is uploaded, there is no account, and there is no per-minute meter.

macOS 13.0 or higher · iOS 16.4 or higher