2

语音信号处理(二)常用音频特征

 3 years ago
source link: http://kevinnan.org.cn/index.php/archives/680/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

为什么要进行特征提取?

  • 找到能代替原始数据的,具有最大识别信息量的特征。
  • 数量尽可能少,同时损失的信息尽可能小。
  • 具有尽可能强的独立性。重复的、相关性强的特征只选一个。
  • 减少特征数量、降维,使模型泛化能力更强,减少过拟合。

深度学习自己提取特征?

  • 人工提取的特征总是为了达到某些具体的目的去设计特征提取方式,但这样总会丢掉某一方面的信息。所以只要提出具体的、客观实在的特征,就不可避免的存在着信息的丢失,那些丢失的次要信息,对于某些问题的影响可以忽略,但对有些主观问题的影响却是不可估量的。
  • 机械的选择特征来替代原图像,是机器的思维方式,不是人的思维方式。
  • 让机器自己去学习该用那些特征,机器根据样本自己决定特征的取舍,这更是一种类人的智能化的做法,这也就衍生出了当今如火如荼的东西:深度学习。

1、语谱图

转自:语音识别-特征提取 声谱图部分

上图中,一段语音被分为很多帧,每帧语音都对应于一个频谱(通过STFT计算得到),频谱表示频率与能量的关系。这里使用对数振幅谱(对数振幅谱中各谱线的振幅都作了对数计算,所以其纵坐标的单位是dB(分贝)。log变换的目的是使那些振幅较低的成分相对高振幅成分得以拉高,以便观察掩盖在低幅噪声中的周期信号)。

我们先将其中一帧语音的频谱通过坐标表示出来,如上图左。现在我们将左边的频谱旋转90度。得到中间的图。然后把这些幅度映射到一个灰度级表示(也可以理解为将连续的幅度量化为256个量化值?),0表示黑,255表示白色。幅度值越大,相应的区域越黑。这样就得到了最右边的图。这样就可以增加时间这个维度,显示一段语音而不是一帧语音的频谱,而且可以直观的看到静态和动态的信息。

于是我们会得到一个随着时间变化的频谱图,这个就是描述语音信号的语谱图spectrogram

下图是一段语音语谱图。

我们为什么要在语谱图中表示语音呢?首先,音素(Phones)的属性可以更好的在这里面观察出来。另外,通过观察共振峰和它们的转变可以更好的识别声音。隐马尔科夫模型(Hidden Markov Models)就是隐含地对声谱图进行建模以达到好的识别性能。还有一个作用就是它可以直观的评估TTS系统(text to speech)的好坏,直接对比合成的语音和自然的语音声谱图的匹配度即可。

2、MFCC

语音信号处理(三)MFCC特征提取

3、FBank

特征提取流程:

  • 将信号进行预加重、分帧和加汉明窗处理,然后进行短时傅里叶变换(STFT)得到其频谱;
  • 求频谱平方,即能量谱,将每个滤波频带内的能量进行叠加,第个k滤波器输出功率谱X[k]。
  • 将每个滤波器的输出取对数,得到相应频带的对数功率谱。

MFCC和FBank的对比

  • FBANK features
    • FBANK保留更多原始特征,适用于深度神经网络DNN建模(M=39)
    • 没有经过DCT变换
    • 使用Mel滤波器
  • MFCC features
    • 使用前12维特征
    • MFCC去相关性较好,适用于GMM建模
    • 使用Mel滤波器

4、PLP

感知线性预测(Perceptual linear prediction,PLP)。

  • 利用等响度预加重基于强度-响度转换(立方根压缩),而不是MFCC中的log压缩;利用线性预测自回归模型获得倒谱系数
  • 相比MFCC,PLP有更好的语音识别准确度,以及更好的噪声鲁棒性

PLP提取流程:

【1】厦门大学智能语音实验室 ASR课程 slides

【2】爱丁堡大学 ASR课程 slides

【3】语音识别-特征提取 声谱图部分

【4】一些常用的语音特征提取算法


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK