Guide
Why your transcription repeats the same phrase over and over
It is not your recording, and it is not a broken download. It is what Whisper does when nobody is speaking — and there are specific ways to stop it.
You transcribe a long recording, open the transcript, and somewhere in the middle it turns into this:
[ Silence ]
[ Silence ]
[ Silence ]
[ Silence ]
Or worse, it picks a real sentence from earlier in the file and repeats it, forty times, with plausible timestamps, as if someone genuinely said "thanks for watching" once a second for a minute.
This is the single most common complaint about automatic transcription, and almost every tool built on OpenAI's Whisper has some version of it. It is worth understanding what causes it, because the fix is not "buy a bigger model".
What is actually happening #
Whisper is a language model. It does not "hear words and write them down" — it predicts the most likely next chunk of text given the audio and everything it has written so far.
That framing explains the bug. When the audio contains speech, the most likely next text is the words being spoken. When the audio contains no speech — a pause, room tone, hold music, applause, a lecturer walking to the whiteboard — the model still has to produce something. There is no token for "nothing happened here".
So it falls back on what language models do in the absence of signal: it repeats itself. It has just written a sentence, the most statistically likely continuation of that sentence is a similar sentence, and with nothing in the audio to contradict that guess, it goes round in a loop. Whisper processes audio in 30-second windows, so once a window locks into a loop, you get the same line for the whole window, then the next window starts fresh and often does it again.
This is why the problem shows up in a very specific pattern:
- Long recordings, because they contain more silence.
- The middle and end of files, after the interesting part is over but the recorder is still running.
- Music and applause, which are dense audio with no words in them.
- Recordings with a quiet speaker and loud room, where the model cannot separate the two.
A five-minute interview conducted close to the microphone almost never does this. A two-hour meeting where the recorder ran for twenty minutes after everyone left almost always does.
Why "[ Silence ]" and "[BLANK_AUDIO]" are a separate symptom of the same thing #
Whisper's training data included transcripts with bracketed annotations — [ Silence ], [BLANK_AUDIO], (music), ♪♪♪. So when it encounters non-speech, one of its likely outputs is one of those markers, over and over.
This is the more benign version: at least the transcript is honest about there being nothing there. It still fills your document with hundreds of junk lines, and it still means the tool is spending real time decoding silence.
Four ways to fix it #
In rough order of how well they work.
1. Voice activity detection (the real fix) #
Voice activity detection — VAD — is a small, separate model that runs before transcription and marks which parts of the audio contain human speech. The transcriber is then only given those parts.
This solves the problem at the source, because the loop only happens when Whisper is handed audio with no speech in it. If the silence never reaches the model, there is nothing to hallucinate over. It also makes long files faster, because you are no longer paying to decode twenty minutes of empty room.
The widely used one is Silero VAD, and recent versions of whisper.cpp support it directly. If your app offers a VAD or "skip silence" option, turn it on. If it does not, this is a reasonable thing to ask the developer for.
2. Trim the silence yourself #
If your tool has no VAD option, you can do a crude version by hand: top and tail the recording before transcribing it, so the twenty minutes of packing-up noise never gets processed.
Any audio editor will do this. It is tedious, and it does nothing for silence in the middle of a file, but for the very common case of "the recorder ran long at the end" it takes thirty seconds and removes the worst of it.
3. Filter the markers out afterwards #
If your transcript is full of [ Silence ] and ♪♪♪, those are easy to remove with find-and-replace, because they are whole lines with a recognisable shape.
Be careful with one thing: only delete lines that are entirely a marker. A line like "and then — (laughs) — we shipped it" is real speech and you want to keep it. This is exactly the rule a good app should apply for you.
4. Split the file #
Because the loop is bounded by Whisper's window, chopping a long recording into shorter pieces limits the damage — a bad window ruins a minute rather than blending into a wall of repetition. Some apps do this internally.
This is a workaround rather than a fix. It reduces the blast radius; it does not stop the model hallucinating over silence.
What does not fix it #
A bigger model. Going from Base to Large costs you a lot of time and disk and does not remove the loop, because the cause is not a lack of capacity — it is being asked to transcribe something that contains no speech. Large models loop too. (More on the size trade-off.)
A cloud service. The good cloud tools run VAD and post-processing in their pipeline, which is why they hit this less often. The mechanism underneath is the same, and plenty of them still produce "thank you" fifty times on a quiet file. Paying per minute does not buy you a different decoder.
Re-running it. Whisper's sampling is not fully deterministic, so a second attempt may loop in a different place. That is not a fix, it is a coin flip.
What we do about it #
Being specific, since a vague answer would be useless here.
Offline Transcription runs Silero VAD before transcribing, so silent and non-speech stretches never reach the decoder. On top of that, whole-segment markers like [ Silence ] and bare music glyphs are filtered out of the result, while lines that merely contain a bracketed aside are kept, because those are real speech.
For long files it also transcribes in windows and cuts each window at the quietest point in the audio, so a boundary falls between sentences rather than through one.
The honest caveat: this makes the repeated-phrase problem very rare, not impossible. Any Whisper-based tool, ours included, is a language model making predictions, and a model that predicts can be wrong. If you are transcribing something where accuracy matters, read the transcript against the audio for the parts you intend to rely on — our interview guide covers a fast way to do that.
The short version #
The loop is Whisper predicting text for audio that has no speech in it. Voice activity detection removes the cause by never showing it that audio. Trimming silence and filtering markers help if your tool has no VAD. A bigger model does not help at all.
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.