关键字 |
MATLAB, Mel频率倒谱系数(MFCC),语音识别,动态时间翘曲(DTW) |
介绍 |
语音识别是根据语音信号中的信息自动识别人的言语的过程。每个口语单词都是使用一组元音、半元音和辅音语音单位的语音组合来创建的。识别方法中最常用的基于频谱的参数是Mel频率倒谱系数,称为MFCC。MFCCs是基于人类听觉系统感知来表示音频的系数。FFT/DCT和MFCC之间的基本区别是,在MFCC中,频带是对数定位的(在mel尺度上),它比FFT或DCT的线性间隔频带更接近人类听觉系统的响应。 |
由于特征提取算法的实现复杂度较低,我们从数据库[1]中的口语单词样本中提取了一些对应于语音倒谱Mel尺度频率的MFCC系数。 |
同一使用者对同一个词的两次发音在时间上可能不同。例如,two可以发成as to或too。DTW通过正确对齐单词并计算两个单词之间的最小距离来解决这个问题。对样本词和模板词中的所有段形成局部距离矩阵。 |
2数据库 |
数据库由在环境控制的录音室中录制的两组语音样本组成,以尽可能减少录音期间对声音样本质量的声学干扰。第一组(训练)由总共5名演讲者组成,每个人说10个数字,从1到0,另一组(测试)相同的声音样本。所有语音信号都是在最相似的设置条件下记录的,如相同的记录时间长度和声音振幅的水平。在训练中,一个名为“train”的Matlab程序提取所有50个单词的特征,并存储在一个名为“allfeatures.mat”的文件中。在测试阶段,当一个名为“test”的Matlab程序执行时,它假定用户从数据库中预先录制的测试组中选择任何语音样本。后端MFCC提取所选语音样本的特征。然后“allfeatures。Mat”文件用于特征匹配。DTW首先将所选采样语音信号的特征与“allfeatures”进行局部匹配。通过测量局部距离。DTW然后测量全局距离,与所选采样语音匹配的部分是“测试”程序的结果,该程序在命令窗口中显示正确的口语单词。 |
3方法 |
特征提取 |
可以使用几种特征提取算法来完成这一任务,如-线性预测系数(LPC)、线性预测倒谱系数(LPCC)、Mel频率倒谱系数(MFCC)和人因倒谱系数(HFCC)。[2] |
采用MFCC算法提取特征。特征提取函数[x_cep, x_E, x_delta, x_acc]。选择MFCC的原因如下:- |
1.在各种语音应用中,MFCC是最重要的特性。 |
2.它能给出高准确度的干净语音结果。 |
3.MFCC可以被认为是扬声器和语音识别的“标准”特征。 |
答:预处理 |
为了提高提取过程的准确性和效率,通常在提取特征之前对语音信号进行预处理。预处理有两个步骤。 |
1.Pre-emphasization。 |
2.语音激活检测(VAD)。 |
1.Pre-emphasization |
数字化语音波形具有较高的动态范围,且存在加性噪声。为了缩小这一范围,使语音信号在频谱上趋于平坦,采用了预强调的方法。采用一阶高通FIR滤波器对高频分量进行预强调。 |
2.语音激活检测(VAD) |
VAD有助于语音处理,它用于在音频样本的非语音部分禁用某些进程。语音样本被分成20ms的不重叠的块。它区分沉默的声音和不沉默的声音。 |
B.帧阻塞 |
语音信号被分割成几帧,这样每一帧都可以在短时间内分析,而不是一次分析整个信号。帧大小范围为0-20毫秒。然后将重叠应用于帧。重叠是因为在每一帧上都应用了汉明窗口。汉明窗去掉了每一帧开始和结束时的一些信息。重叠将这些信息重新整合到我们提取的特征中。 |
c .窗口 |
加窗是为了避免语音段中不自然的不连续和底层频谱[3]中的失真。窗口的选择是几个因素之间的权衡。在语音识别中,最常用的窗形是汉明窗[4]。 |
D.快速傅里叶变换 |
进行快速傅里叶变换的基础是将声门脉冲与声道脉冲响应在时域内的卷积转换为频域[5]的乘法。频谱分析表明,语音信号中的不同音色对应着不同频率上的能量分布。因此,执行FFT以获得每帧的幅值频率响应,并为下一阶段即Mel频率翘曲准备信号。 |
E.梅尔频率翘曲 |
人耳对语音信号的声音频率内容的感知不是线性的。因此,对于每一个具有实际频率f(以Hz为单位)的音调,主观音高是用称为“mel”的刻度来测量的。mel频率尺度是低于1000Hz的线性频率间隔和高于1000Hz的对数频率间隔。为了计算给定频率f(以赫兹为单位)的mels,使用以下近似公式。 |
Mel (f) = Sk = 2595*log10 (1 + f/700) |
使用滤波器组来模拟主观频谱,每个所需的梅尔频率分量都有一个滤波器。该滤波器组具有三角形带通频率响应,间隔和带宽由恒定的梅尔频率间隔决定。 |
f .倒频谱 |
在最后一步中,我们将log mel谱转换回时间。这个结果被称为梅尔频率倒谱系数(MFCC)。语音频谱的倒谱表示为给定的帧分析提供了信号的局部频谱特性的良好表示。因为mel谱系数(以及它们的对数)是实数,我们可以使用离散余弦变换(DCT)将它们转换到时域。通过做DCT,消除了螺距的贡献。在最后一步中,对数梅尔谱被转换回时间。这个结果被称为梅尔频率倒谱系数(MFCC)。通过离散余弦变换将mel系数变换回时域。[6] |
|
而Sk, K = 1,2,…K是最后一步的输出。 |
特征匹配 |
在说话人识别中使用了许多特征匹配技术,如动态时间扭曲(DTW)、隐马尔可夫建模(HMM)和矢量量化。采用DTW技术进行特征匹配。 |
动态时间扭曲(DTW) |
不同话语的时间对齐是语音识别中距离测量的核心问题。一个小的偏移就会导致错误的识别。动态时间翘曲是解决时间对准问题的一种有效方法。DTW算法的目标是通过反复扭曲时间轴来对齐两个特征向量序列,直到找到两个序列之间的最优匹配。该算法对时间轴进行分段线性映射,以对齐两个信号。 |
考虑n维空间中的两个特征向量序列。 |
|
这两个序列在网格的两侧对齐,一个在顶部,另一个在左侧。两个序列都从网格的左下角开始。 |
在每个单元格中,放置一个距离测量,比较两个序列的相应元素。两点之间的距离通过欧几里得距离来计算。 |
|
这两个序列之间的最佳匹配或对齐是通过网格的路径,这使它们之间的总距离最小化,称为全局距离。总体距离(全局距离)是通过找到并通过网格中所有可能的路线来计算的,每一条都计算总体距离 |
全局距离是路径上各个元素之间的距离之和(欧几里得距离)除以加权函数之和的最小值。对于任何相当长的序列,通过网格的可能路径的数量将非常大。利用递归公式得到全局距离。 |
|
其中,GD = Global Distance(全局距离)LD = Local Distance(欧氏距离) |
四。结论 |
本项目的主要目的是利用MFCC和DTW技术识别孤立语音。特征提取采用Mel频率倒谱系数{MFCC},特征匹配采用动态时间翘曲(Dynamic Time warp, DTW)技术。利用MFCC算法将提取的特征存储在.mat文件中。将未知语音信号与语音信号库进行匹配时,采用一种基于最小化欧氏距离的失真测量方法。利用MATLAB对实验结果进行了分析,证明了该方法的有效性。这个过程可以扩展到n个发言者。该项目表明,DTW是语音识别中最好的非线性特征匹配技术,错误率最小,计算速度快。在基于语音的自动柜员机的语音识别中,DTW是最重要的。 |
数字一览 |
|
|
参考文献 |
- ChadawanIttichaichareon, SiwatSuksri和ThaweesakYingthawornsuk“基于MFCC的语音识别”国际计算机图形学、仿真与建模会议(ICGSM'2012) 2012年7月28-29日,芭提雅(泰国)
- http://www.springerlink.com/content/n1fxnn5gpkuelu9k。
- B. Gold和N. Morgan,语音和音频信号处理,John Wiley和Sons,纽约,纽约,2000。
- C. Becchetti和LucioPrinaRicotti,语音识别,John Wiley and Sons,英格兰,1999。
- E. Karpov,“实时说话人识别”,硕士论文,约恩苏大学计算机科学系,2003年。
- “MFCC及其在说话人识别中的应用”VibhaTiwari, Deptt。电子工程专业,Gyan Ganga Institute of Technology andManagement, Bhopal, (MP) INDIA (Received 5 Nov., 2009, Accepted 10 Feb., 2010).
|