Why hallucinations occur
Speech-to-text models predict text from audio. Silence, noise, or too little speech make the audio signal unclear. When the signal is unclear, the model still writes an output. It does not return an empty result. Instead, it writes the words that are statistically probable. Three conditions increase the risk:- Silence or long pauses — Some models fill silence with filler text instead of stopping. Local models do this more frequently.
- Background noise — Noise masks your voice. The model then has less confidence in each word.
- Short recordings with too little acoustic context — The auto-detect language function needs sufficient speech for a reliable result. A short clip can give you nonsense text or the wrong language.
How to decrease hallucinations
1. Turn on Voice Activity Detection (VAD)
VAD is the most direct correction for hallucinations that silence causes. When you stop the recording, VAD examines the audio. It removes the silence at the start and at the end. Then it sends only the part with speech to the transcription provider.- macOS
- Windows
Go to Settings → Sound. Then turn on Remove silence before transcription.What occurs when this setting is on:
- HyperWhisper runs the Silero VAD model on the recorded audio.
- HyperWhisper finds the silence at the start and at the end, then removes it from the file.
- HyperWhisper sends the trimmed audio to the transcription provider, not the original file.
- For a large WAV recording (≥ 25 MB), HyperWhisper also converts the trimmed file to M4A before the upload. This decreases the transfer time and the API costs.
- VAD runs only on recordings of 30 seconds or more. A shorter recording contains little silence, and the processing time is more than the gain.
- If your original file is already a compressed format (M4A, MP3), VAD does not convert it to M4A. A second encode adds artifacts.
- If the trimmed result is too short (less than 0.3 s of speech) or too small (less than 5 KB), HyperWhisper uses the original audio and shows no message. It does the same if it finds less than 0.5 s of silence.
2. Set your language — do not use auto-detect for short recordings
When the language is auto-detect, the model needs sufficient speech to identify your language. A recording of less than 10–15 seconds can give too little signal. The result is then nonsense text, a different language, or no text. Correction: Make one mode for each language that you use frequently. Select the mode before you record. All providers accept a language selection. All of them are more accurate with an explicit language. See Transcription Modes to learn how to make modes and change between them quickly.3. Add custom vocabulary
When you speak an uncommon term, the model can write a different word with a similar sound. Product names, technical terms, abbreviations, and the names of colleagues have this risk. Vocabulary entries tell the model which terms to expect. Each provider uses these entries differently:- Deepgram — HyperWhisper sends them as keyword boosting parameters, to a maximum of 100 terms. A warning appears if you go above this limit.
- ElevenLabs Scribe v2 — HyperWhisper sends them as keyterms, to a maximum of 100 terms. It removes terms of more than 50 characters. Through HyperWhisper Cloud, the server also removes terms of more than 5 words.
- OpenAI Whisper, Groq Whisper, HyperWhisper Cloud, Gemini — HyperWhisper sends them as prompt vocabulary. The OpenAI
gpt-transcribemodel is the exception: it gets the terms as akeywordslist. HyperWhisper Cloud keeps only the first 100 terms and shows no warning. Gemini gets the terms as free text in a natural-language prompt instruction, the same mechanism as OpenAI, Groq, and HyperWhisper Cloud. - Soniox — HyperWhisper sends them as context vocabulary, in one comma-separated string.
- AssemblyAI — HyperWhisper sends them as key-term context.
- Microsoft MAI-Transcribe (via HyperWhisper Cloud) — HyperWhisper sends them as phrase-list biasing.
- Google Gemini 3.5 Transcribe — HyperWhisper sends them in the
custom_vocabularyfield of the request. This is a real field of the API, and not text in a prompt. The limit is 100 terms, and the app cuts each term to 80 characters. The same limits apply through HyperWhisper Cloud and with your own Google key. - Grok STT (xAI) — HyperWhisper sends them as
keytermhints, to a maximum of 100 terms. It removes terms of more than 50 characters. - Mistral Voxtral — HyperWhisper sends them as a structured
context_biaslist, to a maximum of 100 terms. This applies both through HyperWhisper Cloud and with your own Mistral key. - Local models on both platforms (Parakeet on macOS and Windows, Nemotron on macOS and Windows) — HyperWhisper matches the terms by sound with the Beider-Morse algorithm. It excludes terms of two characters or less, because these cause false matches.
- All providers — HyperWhisper puts the entries that have no replacement into the per-request user-message context for AI post-processing. This corrects errors that the raw transcript contains.
- Brand names and product names with unusual spellings
- Colleague and client names
- Technical terms and abbreviations, for example Kubernetes, ETA, and SCRUM
4. Use a dedicated microphone
Background noise decreases the accuracy of every transcription provider, cloud and local. A built-in laptop microphone records your keyboard, the fans, and other room sounds. These sounds make your voice signal less clear. They also increase the risk of hallucinations. Practical improvements:- Position the microphone 6–12 inches from your mouth.
- Use a USB microphone (such as a Blue Yeti or Audio-Technica ATR2100x) or a headset microphone.
- Make sure that your system input level reaches 50% to 75% on normal speech, with no clipping.
- macOS
- Windows
Turn on Automatically increase microphone volume in Settings → Sound. HyperWhisper then sets the microphone input volume to 90% when a recording starts.If you use a Bluetooth microphone, turn on Keep microphone warm between recordings in Settings → Sound. This setting keeps the audio session open. It decreases the connection delay on each push-to-talk press.
5. Choose the right model for noisy conditions
Some models are better than others with noise and accents:- Cloud models (ElevenLabs Scribe v2, Deepgram Nova-3, Grok STT) — usually more accurate than local models with background noise and accents.
- Local models (Parakeet, Nemotron, Whisper) — faster and private, but more sensitive to noise. Nemotron supports approximately 40 languages offline. For more than one language, it is usually more accurate than the Whisper family.
- Larger models — in each family, a larger model makes fewer errors. It also needs more processing time and more memory.
6. Improve your recording environment
Small changes to the environment help:- Close the windows to decrease wind noise.
- Turn off fans and air conditioning while you dictate.
- Do not type while you record.
- Record in a room with carpet or soft furniture to decrease echo.
- Mute system notifications and media playback before you start.
- macOS
- Windows
Settings → Sound → Media control while recording can mute the system audio when you start a recording. Select Off or Mute Audio. This setting keeps music and video out of your dictation.
7. Built-in cleanup for local Whisper
Both platforms clean the output of local Whisper automatically. The Whisper family adds hallucinated filler at the end of a clip more frequently than the other families.- macOS
- Windows
HyperWhisper removes the common Whisper hallucination artifacts from local transcripts automatically. It matches patterns such as “Thank you for watching!”, “[Music]”, and subtitle-credit text. It removes them after the transcription, before the text comes to you.
Validation and fallback behavior
The VAD processing in HyperWhisper never makes the result worse. If a step fails, or if the result is below a quality threshold, HyperWhisper uses the original audio and shows no message:
HyperWhisper records all VAD failures internally for diagnostics. If error logging is on, HyperWhisper also sends the failures to the crash reporter as breadcrumbs.
Make sure that your setup works
1
Record in a quiet environment
Record 30 seconds or more of natural speech in a quiet room. Include some seconds of silence at the start and at the end.
2
Enable VAD and transcribe
On macOS, make sure that Remove silence before transcription is on in Settings → Sound. Then transcribe the recording.
3
Check the result
If the transcript is clean, VAD operates correctly. If you see hallucinated filler text, compare the times in the transcript with your recording. This shows you if the filler text occurs at the silent parts.
4
Adjust if needed
If the hallucinations continue, do one of these three actions. Set the language explicitly. Add vocabulary entries for the problem terms. Change to a cloud model that is more tolerant of noise.
If “No speech detected” occurs frequently after you turn on VAD, the audio has too much noise and too little speech. A better recording environment or a higher microphone input level corrects this.
