← All posts

Why Whisper types "Thank you" when you say nothing

You press the dictation hotkey, think for a few seconds, say nothing, and let go. A moment later your terminal reads “Thank you.” Or “Thanks for watching.” You did not say either. If you send that line to Claude Code, the agent will politely answer a question nobody asked.

This is a known Whisper behaviour, it has a name, and it is well studied. This post explains why it happens and what keeps it out of the prompts you send to a coding agent.

What a Whisper hallucination is

A hallucination is text the model writes that has no speech behind it. With Whisper it shows up in three shapes:

  • A short stock phrase on silence or noise: “Thank you”, “you”, “so”.
  • A video outro: “Thanks for watching”, “Subtitles by the Amara.org community”.
  • A loop, where the same sentence repeats until the clip ends.

Researchers at AGH University of Krakow ran Whisper large-v3 on more than 300,000 clips that contained no speech at all. About 40% of them came back with text anyway. The single most common output was “thank you”, at 24.76% of those hallucinations, followed by “thanks for watching” at 10.32%. They also found the rate climbs for very short clips and for very long ones (Barański et al., 2025).

Why silence turns into text

Whisper is a sequence to sequence model. An encoder turns 30 seconds of audio into features, and a decoder writes tokens one at a time, each one the most likely next token given the audio and the text so far. The decoder has no hard rule that says “no speech, write nothing”. It has a learned habit, and habits break on input that looks odd.

Two things make silence odd for Whisper:

  1. Its training data. Whisper learned from a very large set of audio paired with transcripts collected from the web. The Krakow authors trace the stock phrases to video transcripts in that data: videos often end on silence or music, and their subtitles often end on “Thanks for watching”. The model learned that pairing.
  2. Soft silence checks. Whisper predicts a “no speech” probability for each window, but in OpenAI’s own code a window is skipped only when that probability is high and the decoded text looks low confidence. Quiet room noise can pass both tests.

A study presented at FAccT 2024 found the same pattern in real speech: audio that produced hallucinations had longer stretches of non vocal time, and pause length was one of the strongest predictors (Koenecke et al., 2024).

The knobs Whisper already has

If you run Whisper yourself, the Python package exposes the relevant settings. The defaults below come from transcribe.py in OpenAI’s repository:

# defaults: --no_speech_threshold 0.6, --logprob_threshold -1.0,
#           --compression_ratio_threshold 2.4,
#           --condition_on_previous_text True
whisper note.wav --model turbo --language en \
  --condition_on_previous_text False \
  --word_timestamps True \
  --hallucination_silence_threshold 2

What each one does:

  • --condition_on_previous_text False stops feeding the last window’s text into the next one. OpenAI’s docstring says this makes the model “less prone to getting stuck in a failure loop”.
  • --hallucination_silence_threshold skips silent stretches longer than the given number of seconds when a hallucination is likely. It only works with --word_timestamps True.
  • --compression_ratio_threshold treats very repetitive output as a failed decode and retries, which catches many loops.

The Krakow team found that tuning these alone gives limited gains. What helped most was voice activity detection (VAD) before Whisper, so silence never reaches the decoder, plus a filter that removes known stock phrases and loops afterwards. That combination took word error rate on their noisy test set from about 105% to about 6.5%.

Checked on 11 October 2026 against the openai/whisper repository and the two papers linked above.

Four ways to keep it out of your prompts

You probably do not run the Python CLI to dictate. The same ideas still apply to any Whisper based dictation app on a Mac.

  1. Hold to talk, and start talking straight away. Silence at the start or end of a clip is the easiest place for a stock phrase to appear. A push to talk hotkey records only while you hold it, so think first, then press.
  2. Say something real, even if short. A clip with a few words in it gives the decoder something to anchor on. Very short clips with no speech are one of the two cases where the Krakow study saw the rate climb.
  3. Pick a capable model. The table in our post on how Whisper runs offline on a Mac covers the trade off between size, speed and accuracy.
  4. Review before it lands in the agent. A stray “Thank you” is harmless in a note and annoying in a prompt, because the agent acts on it.

Akova is built around the first and last points. You hold the hotkey while you talk, transcription runs on your Mac with WhisperKit, and Prompt mode turns what you said into a structured prompt at your cursor. With Lifetime you can also turn on review before pasting, so you see the prompt before Claude Code, Cursor or Codex does.

The short version

Whisper writes “Thank you” into silence because it learned from subtitled video, and its silence check is a soft guess, not a hard gate. Less silence in the clip, a decent model and a quick look before you press Enter remove most of it. If you dictate prompts all day, see how that fits your setup in dictating prompts into Claude Code, then compare Free and Lifetime on the pricing section.