文章目录
- 滤波表示Filtering
- 梅尔刻度Mel scale
- 线性预测编码Linear predictive coding LPC
- 预加重处理Pre-emphasis
- 求LPC coefficients
- 倒谱Cepstrum
- 倒谱处理
- 倒谱分析
本章介绍了四种用于表示音频信号特征的方法,他们主要是为了能够数学化地刻画不同语音的频谱包络Spectral envelop的独有特征。分别为滤波表示Filtering、梅尔刻度Mel scale、线性预测编码Linear predictive coding LPC、倒谱Cepstrum.
滤波表示Filtering
滤波表示中,对每个Frame划分出多段频率,这些频率段可以是均匀的也可以是非均匀的,如下图所示,每个频率段带宽都是均匀的2.5KHz。通过设置频率段的阈值,我们可以将不同语音的频谱包络Spectral envelop滤波输出为一个向量。如图中的语音SEar可以被表示成{v1,v2,v3,v4},而语音SEei可以被表示成{w1,w2,w3,w4}。
梅尔刻度Mel scale
梅尔刻度也能够描述一帧音频的特征,其横坐标为频率,纵坐标是梅尔刻度,在1KHz以内,梅尔刻度随频率增长是线性增长的;在1KHz以上,梅尔刻度随频率增长是log形式的。
习题1:
线性预测编码Linear predictive coding LPC
LPC仅通过一个关于系数a的序列,就能够重建出一个音帧的waveform图像,横坐标为时间,纵坐标为signal level。其本质来自于人体喉咙的发声机理,发声是由元音的喉咙震动glottal excitation for vowel以及辅音的噪声noise for consonant组成,声音的主要特征在元音。在一个音帧中声带震动产生的元音是周期性变化的,我们正是利用这种周期性,抽象出LPC的一组参数,对一个frame的音频进行压缩表示。
预加重处理Pre-emphasis
为了减少噪声以及对音波进行平滑,有一步预加重操作。就是对相邻的样本signal level之间做差。
例子如下:
求LPC coefficients
承接上面,可以将每个样本的signal level表示成前面样本的signal level的线性累加和,其中a的序列就是累加和中每个样本前的系数,这些样本signal level可以是经过预加重的数据也可以是原数据。
对a求导,列出矩阵形式的方程组,解出线性方程组,其中r为auto-correlation、a为LPC coefficients。要求order为p的LPC的时候,对应着至少求出p+1个r,才能够解线性方程组,系数矩阵第一列r下标从0到p-1,LPC coefficients的下标从1到p,结果矩阵r下标也从1到p:
对于一个窗口内样本为512,LPC order为8的例子如下:
习题1:
倒谱Cepstrum
倒谱处理
同样是来自人体仿真,求倒谱Cepstrum中关键一步在于理解人发出的声波X(m)在频域上等于Glottal excitation(声带震动)和Vocal tract filter(声道过滤)的综合作用(卷积)。
结合之前CMSC5707-高级人工智能之音频信号预处理操作讲的频谱图来理解,可以将我们得到的频谱Spectrum X[k]当成两部分的成:Spectral Envelope(频谱包络)H[k]以及Spectral Envelope(频谱的细节)E[k],也就对应着上面发声的两部分。为了能够将两者分开来做语音处理,就用到了倒谱Cepstrum.
在求倒谱Cepstrum时,其过程为:
- 将原时域上的语音信号经过傅里叶变换DFT得到频谱,在频域上:
X[k]=H[k]*E[k]
;只考虑幅度就是:|X[k]|=|H[k]|*|E[k]|
; - 在得到的频谱两边取对数将乘性信号转换为加性信号,在对数频谱上:
log|X[k]|= log|H[k]|+ log|E[k]|
。 - 再在两边取逆傅里叶变换IDFT使其恢复卷性信号,在倒谱时域上(也可以称为对数频频域下的伪频率):
x[k]=h[k]+e[k]
。也可以在图像中分离出Vocal track cepstrum和Glottal excitation cepstrum了。
针对某个时域下的waveform完整地求Cepstrum过程如下:
上面求倒谱Cepstrum的步骤2、3,相当于对1得到的频谱上做傅立叶变换,在频谱上做傅里叶变换就相当于逆傅里叶变换Inverse FFT (IFFT)。我们是在频谱的对数域上面处理的,在对数频谱上面做IFFT就相当于在一个伪频率(pseudo-frequency)坐标轴上面描述信号,其实也可以看作是一种时域序列了,只是和刚开始所处的时域不同。从下图可以看出,包络主要是低频部分,而细节则是高频部分,将两者一叠加就是原来的信号了。
倒谱分析
在倒谱时域中,可以看出分割出的两部分中,提取自己想要的部分:
对应着倒谱时域上的Cepstrum,来观察频域上的Spectrum,进一步分析Vocal track spectrum和Glottal excitation spectrum。