Back to getSRT
getSRT Blog/ Diagnosing Acoustic vs. Language Model Errors in Practice

Diagnosing Acoustic vs. Language Model Errors in Practice

How to tell whether a bad transcript is an acoustic problem or a language-model problem, and what to change in each case.

2 min read
  • acoustic-model
  • language-model
  • guide

A simple diagnostic flow

Case 1 — Acoustic problems

Symptoms: garbled syllables, missing words, wrong sounds entirely.

Typical causes and fixes:

# 1. Wrong sample rate/channels — always re-check this first
ffprobe -v error -show_entries stream=sample_rate,channels input.wav
 
# 2. Background noise overwhelming speech — try denoising first
ffmpeg -i input.wav -af "afftdn=nf=-25" denoised.wav
 
# 3. Model too small for a noisy/technical recording — step up a size
./whisper-cli -m models/ggml-small.en.bin -f denoised.wav

Case 2 — Language-model problems

Symptoms: fluent-sounding sentences that are factually wrong, repeated phrases, or invented content ("hallucination").

# Reduce hallucination by disabling temperature fallback drift
./whisper-cli -m models/ggml-base.en.bin -f audio.wav \
  --temperature 0.0 \
  --entropy-thold 2.4 \
  --logprob-thold -1.0
 
# Provide domain vocabulary as an "initial prompt" to bias the language side
./whisper-cli -m models/ggml-base.en.bin -f audio.wav \
  --prompt "Kubernetes, gRPC, whisper.cpp, ffmpeg"

The --prompt flag is the most underused tool here: whisper.cpp treats it as prior context, which measurably improves recognition of jargon, product names, and acronyms without retraining anything.

Combining both fixes

For genuinely difficult audio (noisy technical meeting, non-native accent), apply both layers:

ffmpeg -i meeting.wav -af "afftdn=nf=-25,loudnorm" clean.wav \
  || { echo "Error: audio cleanup failed" >&2; exit 1; }
 
./whisper-cli -m models/ggml-medium.en.bin -f clean.wav \
  --prompt "sprint planning, Jira, staging environment" \
  --temperature 0.0 \
  || { echo "Error: transcription failed on cleaned audio" >&2; exit 1; }

Up next

The final article looks at how acoustic and language modeling combine at the architecture level inside a modern end-to-end transformer like Whisper, and what that means for future improvements.