This is the real front-end pipeline nearly every classical speech-recognition acoustic model runs on raw audio before any neural network or HMM ever sees it. A frame of samples x[n] passes through:
1. Pre-emphasis y[n] = x[n] − 0.97·x[n−1]
2. Windowing w[n] = 0.54 − 0.46·cos(2πn/(N−1)) (Hamming)
3. Power spectrum P[k] = |DFT{ y[n]·w[n] }|²
4. Mel filterbank mel(f) = 2595·log10(1 + f/700)
E[m] = Σ_k H_m[k]·P[k] (triangular filters, m = 1..M)
5. Log energy L[m] = ln(E[m] + ε)
6. DCT-II c[n] = Σ_m L[m]·cos(πn(m+0.5)/M), n = 0..12
Step 4 is the perceptual trick: the mel scale compresses high frequencies the way the human cochlea does, so filters are narrow and dense below ~1 kHz and wide and sparse above it. Step 6 (the discrete cosine transform) decorrelates the log filterbank energies into a compact set of 13 mel-frequency cepstral coefficients — the feature vector that classic ASR systems (and the front end of many modern ones) feed into their acoustic model, one vector every 10 ms.
- /a/ /i/ /u/ — switch the source-filter vocal-tract model between three vowel formant targets (F1/F2/F3), reshaping which mel bands light up.
- Pitch F0 — the glottal fundamental frequency; changes harmonic spacing, not formant position.
- Background noise — mixes broadband noise into the signal, flattening the mel-energy terrain and shrinking |c₁|, exactly how real noise erodes ASR accuracy.
- Mel filterbank size — how many triangular filters (12–40) partition the spectrum; the scrolling terrain shows exactly that many columns.
The scrolling terrain is the mel-spectrogram (log filterbank energy per frame); the front bar cluster is the 13-coefficient MFCC vector for the newest frame — the actual numbers a real ASR acoustic model consumes.