有人知道MFCC参数提取的MATLAB程序吗?

有人知道MFCC参数提取的MATLAB程序吗?,第1张

%mfcc

function mfc=mfcc(x)

%%%%%%%%%%%%%%%%%%%%%%%%%

%对输入的语音序列x进行mfcc参数提取,返回mfcc参数和一阶差分mfcc参数,mel滤波器的阶数为24

%fft变换长度为256,采样频率为8000HZ,对x 256点分为一帧

%%%%%%%%%%%%%%%%%%%%%%%%%%%%

bank=melbankm(24,256,8000,0,0.5,'m')

%归一化mel滤波器组参数

bank=full(bank)

bank=bank/颤滑max(bank((:))

%DCT系数,12*24

for k=1:12

n=0:23

dctcoef(:,k)=cos((2*n+1)*k*pi/(2*24))

end

%归穗银一化倒谱提升窗口

w=1+6*sin(pi*[1:12]./12)

w=w/max(w)

%预加重滤波器

xx=double(x)

xx=filter([1 -0.9375],1,xx)

%语音信号分茄族腊帧

xx=enframe(xx,256,80)

%计算每帧的mfcc参数

for i=1:size(xx,1) %

y=xx(i,:)

s=y'.*hamming(256)

t=abs(fft(s))

t=t.^2%计算能量

c1=dctcoef*log(bank*t(1:129))%dctcoef为dct系数,bank归一化mel滤波器组系数

c2=c1.*w'%w为归一化倒谱提升窗口

m(i,:)=c2'

end

%差分系数

dtm=zeros(size(m))

for i=3:size(m,1)-2

dtm(i,:)=-2*(i-2,:)-m(i-1,1)+2*m(i+2,:)

end

dtm=dtm/3

%合并mfcc参数和一阶差分mfcc参数

mfc=[m dtm]

%去除首尾两帧,因为这两帧的一阶差分参数为0

mfc=mfc(3:size(m,1)-2,:)

MFCC:Mel频率倒谱系数的缩写。Mel频率是基于人耳听觉特性提出来的,它与Hz频率成非线性对应关系。Mel频率倒谱系数(MFCC)则是利用它们之间的这种关系,计算得到的Hz频谱特征,MFCC已经广泛地应用在语音识别领域。由于Mel频率与Hz频率之间非线性的对应关系,使得MFCC随着频率的提高,其计算精度随之下降。因此,在应用中常常只使颂圆高用低频MFCC,而丢弃中高频MFCC

mfcc提取流程/mfcc

MFCC参数的提取包括以下几个步骤:

 预滤波:CODEC前端带宽为300-3400Hz的 抗混叠滤波器 。

 A/D变换:8kHz的采样频率,12bit的线性 量化精度 。

 预加重:通过一个一阶有限激励响应高通滤波器,使信号的频谱变得平坦,不易受到有限字长效应的影响。

 分帧:根据语音的短时平稳特性,语音可以以帧为单位进行处理,实验中选取的语音帧长为32ms,帧叠为16ms。

 加窗:采用哈明窗对一帧语音加窗,以减小 吉布斯效应 的影响。

 快速傅立叶变换(Fast Fourier Transformation, FFT):将时域信号变换成为信号的功率谱。

 三角窗滤波:用一组Mel频标上线性分布的三角窗滤波器(共24个三角窗滤波器),对信号的功率谱滤波,每一个三角窗滤波器覆盖的范围都近似于人耳的一个临界带宽,以此来模拟人耳的 掩野尺蔽效应 。

 求对数:三角窗滤波器组的输出求取对数,可以得到近似于同态变换的结果。

 离散余弦变换(Discrete Cosine Transformation, DCT):去除各维信号之间的相关性,将信号映射到低维空间。

 谱加权:由于倒谱的低阶参数易受说话人特性、信道特性等的影响,而高阶参数的分辨能力比较低,所以需要进行谱加权,抑制其低阶和高阶参数。

腔正 倒谱均值减(Cepstrum Mean Subtraction, CMS):CMS可以有效地减小语音输入信道对特征参数的影响。

 差分参数:大量实验表明,在语音特征中加入表征语音动态特性的差分参数,能够提高系统的识别性能。在本系统中,我们也用到了MFCC参数的一阶差分参数和 二阶差分 参数。

 短时能量:语音的短时能量也是重要的特征参数,本系统中我们采用了语音的短时归一化对数能量及其一阶差分、二阶差分参数。

您好。

1、读取wav格式音频数据(存于数组)

2、对数组进行分帧 *** 作,即设定固定帧数进行分类

3、编逗迅写MFCC模块代码察铅,败指好实现MFCC参数的计算

可参考《Matlab扩展编程》,将书中.m文件中的实现代码转为C++即可

果有疑问,请继续追问。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12213560.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存