要让电脑识别语音信号,必须经过一系列的处理。
一.录制一段音频,wav格式
二.用倒谱系数法提取特征值。
MFCC,Mel频率倒谱系数的缩写。Mel频率是基于人耳听觉特性提出来的,它与Hz频率成非线性对应关系。Mel频率倒谱系数(MFCC)则是利用它们之间的这种关系,计算得到的Hz频谱特征,MFCC已经广泛地应用在语音识别领域。
我这里用的是一个语音工具箱voicebox,里面有一个函数melcepst.m可以方便的求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.首先下载并导入工具箱
2.工具箱里有个叫melcepst的函数,查看帮助发现这么一行
Simple use: (1) c=melcepst(s,fs) % calculate mel cepstrum with 12 coefs, 256 sample frames
s speech signal
fs sample rate in Hz (default 11025)
这里默认的是将音频提取成12维,256个样本每帧,比如我的声音文件是951552*2的矩阵,那生成的就是951552/256 = 3716*12的矩阵。
当然,你也可以在.m文件中改
三.保存为.mat文件
提取好MFCC后我们可以保存文件以便以后使用。
save('zjcvoice.mat','c')
将提取出的c变量保存为zjcvoice.mat