https://zhuanlan.zhihu.com/p/386467252

    对语音处理很多都基于时频谱进行特征的提取,例如STFT、melspec以及MFCC等。这类特征基于傅里叶变换,傅里叶变换对信号本身有要求:信号是平稳的。

    • 平稳信号:信号的统计特性不随时间变化,在时域上进行大量测量,根据各态历经性,可以获得信号所有特性。语音信号是非平稳随机信号,不能直接进行傅里叶变换(???)-> 解释一下:非平稳信号不同时间进行采样得到的时序序列统计特征不同,那么每次傅里叶变换得到的结果就不同,故简单进行傅里叶变换完全没有意义。但是如果要说能否进行傅里叶变换,当然是可以的,但是傅里叶变换的结果很难反映信号本身的特征 => 所以对于非平稳信号,通常采用短时傅里叶变换,同时进行时域和频域的分析,这时信号特征随时间变换特征也能够展示出来
    • 事实上现实场景中,非平稳信号更为常见

    语音信号是非平稳的信号,为了对其分析需要采用时频分析手段,最常见的就是STFT。

    • 语音信号是非平稳的,直接统计分析得到的结果意义不大;语音变换是一个连续的过程,人发的声音可以分为一系列比较短的帧,在每一帧中语音信号都是平稳的,对其进行统计可以得到更有价值的特征
    • 语音帧:由于其为平稳信号,可以通过分析对其加以识别 -> 识别帧的组合 -> 复杂问题
    • 一帧的长度应小于音素(最小语音单位)的长度,通常取值:20ms - 50ms (大于男女生基频对应的时间)
    • 分帧本质就是一个加矩形窗的过程,矩形窗很容易导致频谱泄漏,所以往往会加一些渐变窗,从而降低频谱泄漏。渐变窗使得两端信号被压缩,中间信号更被重视,所以分帧时相邻帧往往有重叠来降低影响

    人对声音的感知是非线性的,人类对低频信号分辨能力更强。故对于 STFT 谱,往往进行非线性变换得到 melspec

    • 传统语音信号处理方法 - 图1
    • 对低频信号灵敏度更高
    • 为什么一定要去模仿人类对声音的感知呢?对人体声音感知进行模仿,从而提升语音分析精度
    • 实现:采用Mel滤波器组实现,Mel滤波器组在低频密集,高频稀疏

    对梅尔谱进行对数操作,然后进行傅里叶反变换就得到梅尔倒谱,在梅尔倒谱上可以进一步得到 MFCC

    http://practicalcryptography.com/miscellaneous/machine-learning/guide-mel-frequency-cepstral-coefficients-mfccs/