UtteraUttera

Whisper doesn't stay quiet at silence, and it's going to cost you money

September 15, 2026

First of all: what Whisper is

Whisper is OpenAI's speech recognition model, published in 2022 under an open license, and it's what sits underneath almost everything that transcribes today. It's the default model of OpenAI's own transcription service — the whisper-1 that appears in their API — and it's also what the vast majority of self-built projects use, because the weights are published and it works very well in some ninety-nine languages.

We use it too. So what follows isn't a competitor's defect: it's a property of the model underneath your transcript, wherever you ask for it.

It was trained on roughly 680,000 hours of audio collected from the internet, and that's the key to everything that follows.

The symptom

Send Whisper a three-second recording of silence and expect an empty string.

You won't get one. You'll get something like this:

Thanks for watching.

Or "Subtitles by the Amara.org community". Or "Subscribe to the channel!". The exact sentence varies with the language and the model version, but the family is always the same: YouTube video sign-off lines.

Why it happens

Of those 680,000 hours, an enormous share are videos. Videos end with music, with a logo, with silence — and with subtitles saying "thanks for watching".

The model learned, correctly for its data, that after a stretch with no speech what usually comes is that sentence. It isn't failing: it's doing exactly what it was taught. The problem is that it was taught with YouTube and you're giving it the voicemail of a phone system.

It isn't a bug that a new version fixes, or that changing provider fixes: it's a property of the model, and anyone who uses it has it, us included.

What it costs you

The cheap part: you pay for it. You're billed a few seconds of transcription for something that had nothing to transcribe. Annoying, but pennies.

The expensive part: your system believes it. That's where it hurts. If that transcript enters an automation — a summary, a CRM note, an alert, an agent with permissions — you end up with a logged call whose content is "Thanks for watching". Nobody said that. Nobody ever will. And yet it's in your database, and somebody is going to read it six months from now trying to understand what happened on that call.

In a phone system's call archive, empty recordings are not a rare case: they're the calls hung up before being answered, the voicemails nobody left, the lines that dropped. They can be an uncomfortable share of the total.

How to avoid it

The defence is stupidly simple: don't send what has no audio.

The Asterisk AGI scripts we publish discard recordings below 2,000 bytes before sending them. It's a crude threshold and it works very well, because a telephone audio file with real speech in it is never that small.

If you work with files, the back-of-the-envelope version:

# Discard anything under 2 KB before sending it
[ "$(stat -c%s "$f")" -lt 2000 ] && continue

And if you want to be finer, silence detection with sox or with ffmpeg's silencedetect filter before uploading. At that point you're deciding how much silence counts as "empty", which is a decision for your business and not for the model.

The general rule

This trap is a particular case of something worth burning into your memory when automating with transcripts:

What a transcript returns is untrusted text. It comes from audio you don't control, and the model may have invented it — through a hallucination like this one, or because somebody deliberately said something shaped like a command.

Treat it as data, never as instructions. Don't execute it, don't read it as orders, and validate it before acting on it. And what a speaker claims in a recording is not a proven fact, even if it ends up in the summary.

It's the same warning we carry in the footer of our own site. It isn't there for decoration.

Anything to add or correct? Write to support@uttera.ai. If you correct us, we edit the post and credit you.

← All posts