传统语音识别介绍【二】—— 特征提取

常用的一些声学特征如下:

(1) 线性预测系数(LPC),线性预测分析是模拟人类的发声原理,通过分析声道短管级联的模型得到的。假设系统的传递函数跟全极点的数字滤波器是相似的,通常用 12一16个极点就可以描述语音信号的特征。所以对于 n 时刻的语音信号, 我们可以用之前时刻的信号的线性组合近似的模拟。然后计算语音信号的采样值和线性预测的采样值,并让这两者之间达到均方的误差(MSE)最小,就可以得到 LPC 。

(2) 感知线性预测(PLP),PLP 是一种基于听觉模型的特征参数。该参数是一种等效于 LPC 的特征,也是全极点模型预测多项式的一组系数。不同之处是 PLP 是基于入耳昕觉,通过计算应用到频谱分析中,将输入语音信号经过入耳听觉模型处理,替代 LPC 所用的时域信号,这样的优点是有利于抗噪语音特征的提取。

(3)梅尔频率倒谱系数(MFCC), MFCC 也是基于入耳听觉特性,梅尔频率倒谱频带划分是在 Mel刻度上等距划的,Mel频率的尺度值与实际频率的对数分布关系更符合人耳的听觉特性,所以可以使得语音信号有着更好的表示。

(5)基于滤波器组的特征 Fbank(Filter bank), Fbank 特征提取方法就是相当 于 MFCC 去掉最后一步的离散余弦变换,跟 MFCC 特征, Fbank 特征保留了更多的原始语音数据。

(6)语谱图(Spectrogram),语谱图就是语音频谱图,一般是通过处理接收的时域信号得到频谱图,因此只要有足够时间长度的时域信号就可。语谱图的特点是观察语音不同频段的信号强度,可以看出随时间的变化情况。下图为各特征提取的大概流程。这里主要介绍MFCC特征和PLP特征。

 

一、梅尔频率倒谱系数(MFCC)

1.1理论基础:

对于人类听觉感知的实验表明,人类听觉的感知只聚焦在某些特定的区域。在低频部分,人耳感受是比较敏锐的,在高频部分,人耳的感受就会越来越粗糙。Mel频率分析就是基于人类听觉感知实验的。实验观测发现人耳就像一个滤波器组一样,它只关注某些特定的频率分量(人的听觉对频率是有选择性的)。也就说,它只让某些频率的信号通过,而压根就直接无视它不想感知的某些频率信号。但是这些滤波器在频率坐标轴上却不是统一分布的,在低频区域有很多的滤波器,他们分布比较密集,但在高频区域,滤波器的数目就变得比较少,分布很稀疏。

人的听觉系统是一个特殊的非线性系统,它响应不同频率信号的灵敏度是不同的。在语音特征的提取上,人类听觉系统做得非常好,它不仅能提取出语义信息, 而且能提取出说话人的个人特征,这些都是现有的语音识别系统所望尘莫及的。如果在语音识别系统中能模拟人类听觉感知处理特点,就有可能提高语音的识别率。

梅尔频率倒谱系数(Mel Frequency Coefficient, MFCC)考虑到了人类的听觉特征,先将线性频谱映射到基于听觉感知的Mel非线性频谱中,然后转换到倒谱上。

将普通频率转化到Mel频率的公式是:


mel(f)与f的关系曲线如下图所示:

 

1.2求MFCC的步骤:

提取过程如图所示:

(1)预处理

预处理包括7.1中提到的预加重、分帧、加窗函数等。

(2)FFT

由于信号在时域上的变换通常很难看出信号的特性,所以通常将它转换为频域上的能量分布来观察,不同的能量分布,就能代表不同语音的特性。对分帧加窗后的各帧信号进行做一个N点FFT来计算频谱,也称为短时傅立叶变换。 

(3)使用Mel刻度滤波器组过滤

计算通过Mel滤波器,将功率谱通过一组Mel刻度(一般取22~40个)的三角滤波器组提取带宽。对于FFT得到的幅度谱,分别跟每一个滤波器进行频率相乘累加,得到的值即为该帧数据在在该滤波器对应频段的能量值。如果滤波器的个数为22,那么此时应该得到22个能量值,信号的功率谱经过滤波器组后,得到的谱图为:

(4)能量值取对数

由于人耳对声音的感知并不是线性的,用log这种非线性关系更好描述。取完log以后才可以进行倒谱分析

(5)离散余弦变换(DCT)

前一步骤中计算的滤波器组系数是高度相关的,这在一些机器学习算法中可能是有问题的。因此,我们可以应用离散余弦变换(DCT)去相关滤波器组系数并产生滤波器组的压缩表示。通常,对于自动语音识别(ASR),保留所得到的倒频谱系数2-13,其余部分被丢弃; num_ceps = 12。丢弃其他系数的原因是它们代表滤波器组系数的快速变化,并且这些精细的细节对自动语音识别(ASR)没有贡献。
 

 (6)均值归一化(可选)

为了平衡频谱并改善信噪比(SNR),我们可以简单地从所有帧中减去每个系数的平均值。

总结:

计算滤波器组所需的所有步骤都是由语音信号的性质和人类对这些信号的感知所驱动的。相反,计算MFCC所需的额外步骤是由一些机器学习算法的限制所驱动的。需要离散余弦变换(DCT)来去相关滤波器组系数,该过程也称为白化。特别是,当高斯混合模型 - 隐马尔可夫模型(GMMs-HMMs)非常受欢迎时,MFCC非常受欢迎,MFCC和GMM-HMM共同演化为自动语音识别(ASR)的标准方式。随着深度学习在语音系统中的出现,人们可能会质疑MFCC是否仍然是正确的选择,因为深度神经网络不太容易受到高度相关输入的影响,因此离散余弦变换(DCT)不再是必要的步骤。值得注意的是,离散余弦变换(DCT)是一种线性变换,因此在语音信号中丢弃一些高度非线性的信息是不可取的。

二、感知线性预测(PLP)

2.1理论基础

LPC(Linear Predictive Coding,线性预测分析):由于语音信号的发音特性,提取特征后的帧与帧之间是不独立的,那么我们可以用前面的帧或后面的帧预测当前帧。所求的的预测系数就是我们要用到的特征。线性预测分析中,我们可以用一个全极点滤波器为声道响应函数建模,

PLP(Perceptual Linear Predict ive,感知线性预测):是一种基于听觉模型的特征参数。该特征参数是全极点模型预测多项式的一组系数,等效于一种LPC( Linear Pr edict ion Coef f icient , 线性预测系数) 特征。它们的不同之处是PLP 技术将人耳听觉试验获得的一些结论, 通过近似计算的方法进行了工程化处理, 应用到频谱分析中, 将输入的语音信号经听觉模型处理后所得到的信号替代传统的LPC 分析所用的时域信号。经过这样处理后的语音频谱考虑到了人耳的听觉特点, 因而有利于抗噪语音特征提取。

PLP尽量模拟听觉的心里声学获得的系数,人类听觉的三个特性由PLP实现:

  • 人耳对频率响应的非线性
  • 耳蜗的临界频带
  • 人耳对响度响应的非线性

2.2求PLP的步骤:

(1) 语音信号经过采样、加窗、离散傅立叶变换后,通过下式将频谱变换到Bark频率范围获得,500Hz以下跟频率近似线性关系,500Hz以上近似log关系

(2) 为了模拟听觉对于不同频带敏感度的不同,使用等响度曲线对频谱进行预加重

(3) 为了近似模拟声音的强度与人耳感受的响度间的非线性关系, 进行强度-响度转换

     

经过离散傅里叶反变换后, 用德宾算法计算12阶全极点模型, 并求出16 阶倒谱系数, 最后的结果即为PLP 特征参数

总结:

MFCC和PLP的主要区别是解卷的过程。根据语音生成的理论模型,语音信号是由激励信号和信道冲激响应信号卷积产生的,根据任务需求,强化或提取某种信号是有必要的

举例子:要判断某段是浊音还是清音,或者要求出基音频率,就必须获取激励信号;要获取能反映信道特性的频谱包络,就要去掉激励信号… 

而解卷就是把卷积信号的各种分量分开,主要是有两种方式:

1、非参数解卷(又叫同态解卷积),也就是倒谱分析,代表作是MFCC;

2、参数解卷,也就是线性预测分析,代表作是PLP;

对于同态解卷积,思想是把卷积这种非线性问题转换到线性问题上解决,具体上是在频谱(时域卷积转为频谱乘积)上做log对数(乘积转加性),此时再在加性的对数频谱上做DCT或DFT,就得到了所谓的倒谱。 

对于线性预测分析,思想是在p阶上能通过若干个语音采样信号的线性组合逼近原始信号,使得与原始信号的最小均方误差最小,求得一组唯一预测系数;而谱估计的方法主要三种:

1、自回归AR,全极点模型;

2、移动平均MA,全零点模型;

3、自回归-移动平均ARMA,同时含极点与零点模型;

由于第2和3的求解是非线性的,所以普遍采用第1个,也就是对应到上图的线性预测这步~对于AR的计算,主要是用莱文逊-德宾递推的自相关法。但AR这里有一个隐藏问题存在……关于p阶与零点:

p阶的选择应该和共振峰个数吻合,通常是两个极点对应一个共振峰,例如共振峰是6个,那p阶就选择12;但是摩擦音是同时包含极点和零点,在AR模型中为了满足全极点假设,就用多个极点近似一个零点来套用AR模型,所以p阶会稍大于两倍共振峰个数:p > 2F……而PLP基于这种假设,当遇到含有零点的音时,就不能很好拟合(使用极点逼近),当阶数不够,就逼近较差了。

  • 3
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
语音识别是一个复杂的问题,需要涉及信号处理、机器学习、语言模型等多个领域。在这里,我可以提供一些基本的思路和参考资料,帮助你入门语音识别的实现。 1. 信号处理 语音信号是一种连续的模拟信号,需要进行采样和量化,转换成数字信号进行处理。常用的采样率是16kHz或者8kHz,量化位数通常是16bit。 对于数字信号,可以进行一些基本的信号处理,例如滤波、降噪、增益等。常用的滤波器包括FIR滤波器和IIR滤波器,可以通过设计滤波器系数来滤除不需要的频率成分。降噪可以通过一些算法,例如Wiener滤波、Spectral Subtraction等来实现。 2. 特征提取 语音信号的特征提取语音识别的重要步骤。常用的特征包括MFCC、PLP、LPC等。其中MFCC是最常用的特征,它可以将语音信号转换成一系列的特征向量,用于后续的分类和识别。 3. 分类和识别 特征提取后,可以使用机器学习算法对语音信号进行分类和识别。最常用的算法包括隐马尔可夫模型(HMM)、支持向量机(SVM)和深度神经网络(DNN)等。这些算法需要一些训练数据和标签,通过这些数据来训练分类器和识别器。 4. 语言模型 语言模型是语音识别的另一个关键因素。它可以帮助识别器判断识别结果的合理性和准确性。语言模型可以通过对大量文本数据的学习,来预测下一个单词或者句子的概率。 以上是语音识别的一些基本步骤和流程,如果你想深入了解语音识别的实现,建议参考以下资料: 1.《语音识别——基础篇》(作者:徐伟民) 2.《Speech and Language Processing》(作者:Daniel Jurafsky and James H. Martin) 3.《基于深度学习的语音识别》(作者:曹健) 4.《语音识别——技术与应用》(作者:杨建民、唐宏光、蒋树新)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值