Phone callers keep having "F" heard as "S", and the first instinct is to try a better recognition model. It will not fix it, because on a narrowband call the main acoustic cue that separates the two letters never reaches the model.
Nyquist sets the ceiling
A sample rate R can represent frequencies up to R/2, and that one rule sets each channel's ceiling:
| Channel | Sampling | Represents up to |
|---|---|---|
| Telephony | 8,000 Hz | 4,000 Hz |
| Wideband | 16,000 Hz | 8,000 Hz |
| WebRTC | 48,000 Hz capable | 24,000 Hz |
Now put speech on the same axis. The vowel formants, around 300–3,000 Hz, sit comfortably inside the 300–3,400 Hz band a phone line passes; the fundamental pitch of a voice, around 85–255 Hz, sits below it. The /s/ and /z/ sibilants carry most of their energy between 4,000 and 8,000 Hz, above the telephony ceiling, while /f/ and /th/ are weak sounds with a flat spectrum. On an 8 kHz channel, the strongest cue separating S from F is simply not in the signal. Weaker cues remain and context helps, but no model makes spelled letters reliable enough to skip confirmation. This is Nyquist, not accuracy.
So it is a design problem
Any workflow that asks a caller on a narrowband line to spell a name, read an alphanumeric order code or confirm an email address is asking the channel for information it cannot carry reliably. Every fix is a product decision:
- a spelling alphabet ("S as in Sam");
- keypad (DTMF) entry for codes;
- a secure link that moves the step to a screen;
- reading back the interpreted value, rather than the letters, for confirmation.
Engineering Insight
Treat the channel as an input slice, not one quality score. A laptop microphone in an office, a speakerphone two metres away and a car with the windows down each degrade something different first, while a headset in a quiet room degrades nothing. A café full of other voices is the hardest case: generic noise suppression is trained to remove sounds that are unlike speech, and a nearby conversation is speech.
Measure the channel you actually have
Do not assume a studio sample represents a phone call in a car. Record the processing state of every session: whether echo cancellation is on, the noise-suppression level, gain control, the codec, the sample rate and the device type. Those settings change the meaning of every metric downstream. A word-error regression that lines up with one browser version is usually a change in the processing chain, not in the model.


