Kaldi fbank lifter coefficient behavior across versions
0 reputation · 31 Jan 2025, 20:21 UTC
0 reputation · 31 Jan 2025, 20:21 UTC
Kaldi's compute-fbank-feats added the --lifter flag to apply HTK-style liftering to filterbank coefficients. Earlier releases computed raw filterbank energies without this option, while current releases default to a lifter coefficient of 22 when the flag is present.
Acoustic models trained on features extracted with different lifter settings (or without liftering) can exhibit mismatched input distributions. The documentation does not specify whether a model trained on liftered features expects the same coefficient at inference time, or whether omitting --lifter entirely is equivalent to a coefficient of zero.
--lifter values is computationally expensive.--lifter coefficient need to match exactly between training and decoding, or is the effect limited to a linear scaling that CMVN absorbs?--lifter is omitted, does Kaldi apply a coefficient of zero or retain a previous default?The lifter coefficient must match exactly between training and decoding. While Cepstral Mean and Variance Normalization (CMVN) handles linear shifts and scaling, it cannot compensate for the non-linear spectral tilt introduced by liftering. When the --lifter flag is omitted, Kaldi applies a coefficient of zero, resulting in raw filterbank energies without any transformation.
In Kaldi, liftering is a weighting process applied to filterbank coefficients to reduce correlation between adjacent bins and suppress high-frequency noise. The formula typically follows the HTK-style approach:
c_tilde(n) = c(n) / (1 + L/28 * (n - center)^2)
where L is the lifter coefficient (defaulting to 22 in modern Kaldi) and n is the coefficient index.
--lifter 22 and decoded without it, the high-frequency coefficients will have significantly higher variance than the model expects. This creates a distribution shift that the acoustic model cannot resolve, leading to a degraded Word Error Rate (WER).To verify the behavior in your specific Kaldi build and ensure consistency, follow these steps:
compute-fbank-feats once with --lifter 0 and once omitting the --lifter flag entirely. Compare the output .scp files; they should be numerically identical.yaml or a custom metadata file alongside the checkpoint directory.Use comments to ask for clarification. Post a solution as an answer.
No question comments on this page.