- 使用原因:
- 200Hz到5000Hz的语音信号对语音的清晰度影响最大。
- 频率不相等会有影响,所以从低频到高频按临界带宽由密到疏安排一组带通滤波器,对输入信号进行滤波。
- 将每个带通滤波器输出的信号能量作为信号的基本特征。
- mfcc提取的基本流程:预加重->分帧->加窗->FFT->mel 滤波器组 ->对数运算->DCT
- 预加重:将语音信号通过一个高通滤波器,目的是提升高频部分。使信号的频谱变得平坦,保持在低频和高频的整个频带中,使其能用同样的信噪比求频谱。
- 分帧:
- 帧:N个采样点集合成的一个观测单位。N一般为256或512。涵盖的时间约20-30ms左右。
- 为避免相邻两帧变化过大,会让两帧之间有一段重叠区域,包含M个采样点(通常M≈N/2或N/3)
- 通常语音识别的采样频率约为8KHz或16KHz。
- 8KHz:若每个帧长度为256个采样点,则对应的时间长度为32ms
- 将信号分成短时帧,原理:信号中的频率随时间变化,在大多数情况下,对整个信号进行傅里叶变换没有意义。因为随着时间的推移会丢失信号的频率轮廓。所以假设信号中的频率在很短的时间内是平稳的。通过在短时帧内进行傅里叶变换,可以通过连接相邻帧来获得信号的频率轮廓的良好近似。
- 加窗:将每一帧乘上汉明窗,以增加帧左端和右端的连续性。为抵消FFT假设的数据是无限的,并减少频谱泄露。
- 快速傅里叶变换 FFT:
- 将在时域上的信号转为频域上的能量分布。不同的能量分布代表不同语音特性。
- 对分帧加窗后的各帧信号进行快速傅里叶变换得到各帧的频谱。
- 对频谱取模平方得到语音信号的功率谱。
- 三角带通滤波器的两个目的:对频谱进行平滑化,并消除谐波,突出原先语音的共振峰。(即一段语音的音调或音高不会呈现在MFCC参数中(wsy:所以这就是autovc未选择mfcc作为特征,而是通过自编码器学习特征来进行语音转换,因为音调和音高在语音转换是重要特性,不可忽略))
- 计算每个滤波器组输出的对数能量
- 将对数能量带入离散余弦变换求出L阶的Mel-scale Cepstrum参数。L阶指MFCC系数阶数,通常取12-16。这里M是三角滤波器个数。
- 应用离散余弦变换DCT去 相关滤波器组系数,并产生滤波器组的压缩表示。
- 通常对于自动语音识别ASR,得到的倒谱系数2-13被保留,其余被丢弃。
- 对数能量:一帧内信号的平方和,再取以10为底的对数值,再乘以10.
- 动态差分参数的提取(包括一阶差分和二阶差分):标准的倒谱参数MFCC只反映了语音参数的静态特性,语音的动态特性可以用这些静态特征的差分谱来描述。