• CMSC5707-高级人工智能之音频信号特征提取


    本章介绍了四种用于表示音频信号特征的方法,他们主要是为了能够数学化地刻画不同语音的频谱包络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时,其过程为:

    1. 将原时域上的语音信号经过傅里叶变换DFT得到频谱,在频域上:X[k]=H[k]*E[k];只考虑幅度就是:|X[k]|=|H[k]|*|E[k]|
    2. 在得到的频谱两边取对数将乘性信号转换为加性信号,在对数频谱上:log|X[k]|= log|H[k]|+ log|E[k]|
    3. 再在两边取逆傅里叶变换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。
    在这里插入图片描述

  • 相关阅读:
    MIT6.824-lab3B-Key/value service with snapshots(实现快照的KV服务)
    官方新动作!老子云3D开发SDK又更新:新增3D测量,路径动画
    部署搭建decentraland流程讲解
    centos7内存过高排查
    企业管理低代码—无代码平台的7个技巧
    Java & 计算机编码
    [游戏开发]游戏当中的旋转计算
    JavaScript中的构造函数总结
    Vue学习(9月3号)
    【Android】Handler为什么会造成内存泄漏
  • 原文地址:https://blog.csdn.net/qq_44036439/article/details/126867395