梅尔谱&倒谱&MFCCs

发布时间:Jan. 28, 2023, 8:13 a.m.编辑:李佳生阅读(1690)

一、Mel Scale

    音频信号处理中避免不了在频域进行分析,短时傅里叶变换得到的时频谱(Spectrogram)是我们常用的工具。但在语音信号处理领域,更常用的是梅尔谱(Mel-Spectrogram)。

截屏2023-01-28 16.23.27.png

    实验表明人对于各频率成分的敏感程度和主观的音调感受与实际的频率不是成正比的,人耳对低频信号的区别更加敏感,而对高频信号的区别则不那么敏感,也就是说低频段上的两个频度和高频段上的两个频度,人们会更容易区分前者。例如人们可以比较容易地发现500和1000Hz的区别,确很难发现7500和8000Hz的区别;在音频掩蔽效应中,低频很容易盖过高频成分,让人耳听不到高频,但是反过来高频很难盖过低频。

    因此使用常规频率刻度的时频谱并不能很好地与语音特征、主观感受很好的对应起来,使得很多细节丢失,这就是提出梅尔刻度(Mel-Scale)的原因。梅尔刻度考虑了人耳感受,由Hz频率转换得到,在梅尔刻度上,主观感受的声调与梅尔刻度是成线性的,因此能更好地反应音频在人耳处的特征,在1930年左右被提出后,至今仍被广泛使用。

v2-b5d2429a0ed09f8fe601e4f796d8617d_1440w.png

    梅尔谱与普通频率刻度的转化关系:

        频率到梅尔刻度:

        梅尔刻度到频率:

        


二、Mel Filter Bank

    根据第一部分的介绍,Hz到梅尔刻度的转换是对数关系,即当频率较小时,梅尔刻度随Hz变化较快;当频率很大时,梅尔刻度的上升很缓慢,曲线的斜率很小。这表示了人耳对低频音调的感知较灵敏,在高频时人耳是很迟钝的。因此根据梅尔刻度,人们提出了梅尔滤波器组(Mel Filter Bank),即将能量谱使用一组由M个根据Mel尺度得到三角带通滤波器组进行滤波,低频处滤波器密集,高频处稀疏。

    常用的一类梅尔滤波器组为等面积梅尔滤波器(Mel-filter bank with same bank area)。低频处密集,且门限值大,高频处滤波器稀疏,门限值低,恰好对应了频率越高人耳越迟钝这一客观规律,如下图。由于人声高频成分一般较少,因此这种梅尔滤波器组在语音识别,说话人辨认等领域应用广泛,但是如果用到非人声领域,就会丢掉很多高频信息。

3.png

截屏2023-01-28 18.13.27.png

4.png

    另外一类常用的梅尔滤波器组为等高梅尔滤波器(Mel-filter bank with same bank height),保留了低频密集、高频稀疏的特征,但是门限值保持一致,也可用于非语音领域。

5.png

截屏2023-01-28 18.13.27.png

2.png

    通过梅尔滤波器组,可以得到信号频谱中梅尔刻度的特征。采用三角带形状可以对频谱进行平滑化,并消除谐波的作用,突显原先语音的共振峰,还可以在后续计算中降低运算量。

三、倒谱

    倒谱(cepstrum),即将信号的傅里叶变换谱经对数运算后再进行的傅里叶反变换,由于一般傅里叶谱是复数谱,因而又称复倒谱:

1.png

11.jpeg

    倒谱是同态信号处理的一种应用,设法将非线性问题转化为线性问题来进行处理,能将两个通过乘法或卷积合成的信号分开,变为加性信号。举例简单说明倒谱的原理:

    假设一个信号为由两个信号卷积得到: 语音信号可以看作是声门激励信号和声道冲激响应的卷积

2.png

    进行频域变换:

4.png

    对变换结果进行log计算:

5.png

    对log结果进行逆变换得到倒谱:

7.png

    注意上述逆变换是在对数化频谱基础之上做的,因此逆变换得到的倒谱顺序也与原来的时域意义不同。由于iFFT本质也是FFT,倒谱的顺序可以看作是频率的频率,称为伪频率(pseudo-frequency)。

    复倒谱在实际应用中计算比较困难甚至是不可能,所以在音频信号处理特别中通常使用只考虑频率铺能量的倒谱,舍弃掉相位信息(人耳对相位也不敏感),即:

8.png

    倒谱在音频信号处理中的作用: 下面是一个语音直接做FFT得到的频谱图,其中的各个峰值就表示语音的主要频率成分,我们把这些峰值称为共振峰(formant),而这些共振峰就是决定声音辨识属性的重要特征,用它就可以识别不同的声音,所以十分重要,需要把这些特征提取出来。

12.png

    而我们需要提取的不仅仅是共振峰的位置,还得提取它们转变的过程以及其中的细节,即提取的是频谱的包络(Spectral Envelope)以及曲线的细节,包络就是一条连接这些共振峰点的平滑曲线,而细节则是曲线去除包络之外的部分。

14.png

    倒谱的作用就是用来分离包络和曲线细节: 我们如果对包络进行IFFT,那么得到的应该是一个低频部分,而对细节进行IFFT,那么得到的应该是高频部分。即倒谱伪频率的低频成分表示包络,伪频率的高频部分表示细节, 因此对倒谱进行高低频截断即可分析不同的特征。

15.png

16.png

四、DCT

    我们知道DFT公式为:

截屏2023-01-28 21.10.03.png

    公式可以拆分为实部、虚部两部分:

截屏2023-01-28 21.19.57.png

    显然的cos是一个偶函数,sin是一个奇函数,如果同时x(n)为一偶函数信号,那虚部加和之后就可以认为等于0,只留下了实部。这就是DCT,即离散余弦变换的基本思想。

    因此DCT要求信号为对称的偶函数信号,一般的信号是不满足要求的,需要进行处理,即补齐对称信号并平移,保证处理后的信号为偶函数,如下图:

11.jpeg

12.jpeg

    因此常见的DCT计算公式为:

截屏2023-01-28 21.27.01.png

    DCT的优势: 

    1、在DCT信号相当于是平滑的,而DFT中信号相当于是存在跳变的,所以DCT具有更好的频域能量聚集度(简单说就是能把信号更重要的信息聚集在一块),那么对于那些不重要的频域区域和系数就能够直接裁剪掉,因此DCT变换非常适合于音频或图像的压缩算法处理,例如现在大名鼎鼎的jpeg就是使用了DCT作为图像压缩算法。同时DCT同时也在音频信号处理,数字水印方面也发挥着各种作用,后面要讲的MFCCs的计算也用到了DCT。

1111.png

    2、DCT变换基是完全正交的,因此为去相关变换,可以减小结果之间的相关性,实现正交化。

五、MFCCs

    首先说一下得到MFCCs的一般步骤: 

            音频信号→预加重→分帧→加窗→FFT→Mel滤波器组→对数计算→DCT倒谱计算→MFCCs

    可以看到MFCCs计算过程中包括了预加重、Mel滤波器组、倒谱、DCT等计算,因此是考虑了人耳、发声原理等因素提取的音频信号特征,最大的意义就是最大限度地将语音等音频信号的本质特征提取出来,去除干扰成分,在有限的软硬件计算资源内,达到最好的效果,目前广泛用于传统信号处理、机器学习等,事实也证明效果确实十分出色,目前有着不可替代的地位,下面详细说下每个环节的详细计算步骤和具体作用。

    1、预加重: 相当于对原始信号进行高通滤波,加强原本不明显的高频信息,系数在0.9~1之间,一般取0.97。

截屏2023-01-28 21.42.50.png

    2、分帧加窗: 一般认为语音在20~50ms内为短时平稳的(多个周期、单个音素),因此需要对信号进行分帧,并且加窗减少截断带来的频谱泄露。

    3、Mel滤波器组处理: 见第二部分在语音处理中,M通常取22-26。

    4、对数计算: 

截屏2023-01-28 21.56.09.png

    5、DCT倒谱计算: 上一步计算出来的滤波器组系数高度相关,这不利于后续处理。因此,我们可以用DCT变换进行去相关并产生滤波器组的压缩表示(得到Mel-scale Cepstrum),通常我们只保留前12~16个系数,即MFCC系数阶数L=12~16。其他系数变化过于快速,对后续处理意义不大,因此可以丢弃。计算公式如下: 这里M是三角滤波器个数

截屏2023-01-28 21.58.26.png

六、题外话: 掩蔽效应

    人耳能够在寂静的环境中分辨出轻微的声音,但是在嘈杂的环境里,这些轻微的声音就会被杂音所淹没。这种由于第一个声音的存在而使得第二个声音听阈提高的现象就称为掩蔽效应。第一个声音称为掩蔽声,第二个声音称为被掩蔽声,第二个声音听阈提高的数量称为掩蔽效应。

    1、频域的掩蔽效应: 

        ① 纯音之间的掩蔽效应: 对处于中等强度时的纯音最有效的掩蔽是出现在它的频率附近,低频的纯音可以有效地掩蔽高频的纯音,而反过来则作用很小。基本符合以下几个规律:低音容易掩蔽高音,高音较难掩蔽低音;频率相近的纯音容易互相掩蔽;提高掩蔽声的声压级时,掩蔽阈会提高,而且被掩蔽的频率范围会扩展。

        ② 纯音与噪声之间的掩蔽效应: 噪音对纯音的掩蔽噪音是由多种纯音组成,可认为具有无限宽的频谱。

若掩蔽声为宽带噪声,被掩蔽声为纯音,则它产生的掩蔽门限在低频段一般高于噪声功率谱密度17dB,且较平坦;超过500Hz时大约每十倍频程增大10dB。若掩蔽声为窄带噪声,被掩蔽声为纯音,则情况较复杂。其中位于被掩蔽音附近的由纯音分量组成的窄带噪声即临界频带的掩蔽作用最明显。所谓临界频带是指当某个纯音被以它为中心频率,且具有一定带宽的连续噪声所掩蔽时,如果该纯音刚好能被听到时的功率等于这一频带内噪声的功率,那么这一带宽称为临界频带宽度。临界频带的单位叫巴克(Bark),1Bark=一个临界频带宽度。频率小于500Hz时,1Bark约等于freq/100;频率大于500Hz时,1Bark约等于9+4*1og(freq/1000),即约为某个纯音中心频率的20%。通常认为,20Hz~16kHz范围内有24个子临界频带。而当某个纯音位于掩蔽声的临界频带之外时,掩蔽效应仍然存在。

    2、时域的掩蔽效应: 由于人脑的处理速度有限,对声音具有记忆性,因此除了同时发出的声音之间有掩蔽现象之外,在时间上相邻的声音之间也有掩蔽现象,并且称为时域掩蔽。时域掩蔽又分为超前掩蔽(pre-masking)和滞后掩蔽(post-masking)。一般来说,超前掩蔽很短,只有大约5~20 ms,而滞后掩蔽可以持续50~200 ms。

    

关键字音频 音频算法