孤立词语音识别程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
孤立词语音识别程序
信息处理仿真实验语音处理部分
实验目的
------- 按所学相关语音处理的知识,自己设计一个孤立词语音识别程序,分析所设计系统的特性。熟悉不同模块间如何进行有效的组合,以及模块内的设计,重点掌握特征参数的提取和模式识别方法,并对不同的特征参数提取方法和模式匹配方法有大概的了解,知道其不同的优缺点。实验内容
1、熟悉预处理、特征参数提取、模式匹配三个模块的原理,并设计这三个模
块的matlab子程序。
2、设计主程序,将上述3个模块合理组合构成一个系统,训练模板并测试。
三、实验原理及设计步骤
1、孤立词语音识别系统:先用端点检测将语音中有用的语音部分提取出来(即将头部和
尾部的静音部分除掉),然后提取语音信号的Mel尺度倒谱参数(MFCC)进行动态归整(DTW算法)后与模板库里面的标准语音作比较,具体流程如下:
失直灘
图3.1孤立词语音识别系统
2、各模块解析
⑴预处理:包括反混叠失真滤波器、预加重器、端点检测和噪声滤波器。这里将预加重
器和噪声滤波器放在下一个模块里,所以预处理主要进行端点检测以捕捉到数据中的语音信息。
端点检测采用双门限法来检测端点。同时,利用过零率检测清音,用短时能量检测浊音,两者配合。整个语音信号的端点检测可以分为四段:静音、过渡段、语音段、结束。程序中使用一个变量status来表示当前所处的状态。
在静音段,如果能量或过零率超越了低门限,就应该开始标记起始点,进入过渡段。
在过渡段中,由于参数的数值比较小,不能确信是否处于真正的语音段,因此只要
N 1 S(m) ln
k 0
2
X w(k) H m(k) 0 m M
两个参数的数值都回落到低门限以下,就将当前状态恢复到静音状态。而
如果在过渡段中两个参数中任意一个超过了高门限,就可以
确信
进入语音段了。
一些突发性的噪声可以引发短时能量或过零率的数值很高,但是往往不能维持足够长的时间,这些可以通过设定最短时间门限来判别。当前状态处于语音段
时,如果两个参数的数值降低到低门限以下,而且总的计时长度小于最短时
间门限,则认为这是一段噪音,继续扫描以后的语音数据。否则就标记好结
束端点,并返回
⑵特征参数提取:常用的语音识别参数有线性预测参数(LPC),线性预测倒谱
参数(LPCC)和Mel尺度倒谱参数(MFCC等。这里提取语音信号的Mel尺度倒谱参数(MFCC,步骤如下:
图3.2特征参数提取
分析:
①预加重
y(n) x( n)-0.97x( n 1)
②加汉明窗
X w(n) y(n) w(n)
③FFT
N 1 j 2 nk/ N
X w(k) X w( n)e
n 0
这里直接采用现成的FFT快速算法。
④对频谱进行三角滤波
程序采用归一化mel滤波器组系数
⑤计算每个滤波器的输出能量
⑥离散余弦变换(DCT)得到MFCC
M
C(n) S(m)cos n(m 0.5) / M n 1,2,..., p 特征参数
m 1
通常协方差矩阵一般取对角阵,三角滤波器组的对数能量输出之间存在着很
大的相关,采用DCT这种正交变换可以去除参数之间的相关性,从而使后端
识别模型采用对角阵具有更高的识别率
⑦归一化倒谱提升
w = 1 + 6 * sin( u / 12) 1 u 12
w = w/max(w)
⑧计算差分系数并合并mfcc参数和一阶差分mfcc参数将其作为一个整体,让
参数更完备。
⑶模式匹配:有矢量量化技术、DTW HMM技术、人工神经网络技术。
目前,语音识别的匹配主要应用HMM和DTW两种算法。DTW算法由于没有一个有效地用统计方法进行训练的框架,也不容易将低层和顶层的各种知识用到语音识
别算法中,因此在解决大词汇量、连续语音、非特定人语音识别问题时较之HMM(法
相形见绌。HMM!—种用参数表示的,用于描述随机过程统计特性的概率模型。而对
于孤立词识别,HMM算法和
DTV算法在相同条件下,识别效果相差不大,又由于DTW算法本身既简单又有效,但
HMM(法要复杂得多。它需要在训练阶段提供大量的语音数据,通过反复计算才能得
到参数模型,而DTW算法的训练中几乎不需要额外的计算。鉴于此,DTW更适合
本系统的要求。
DTW算法原理:该算法基于动态规划(DP的思想,解决了发音长短不一的模板匹配问题。如果把测试模板的各个帧号n=1~N在一个二维直
角坐标系中的横轴上标出,把参考模板的各帧号m=1~Mi纵轴上标出,
通过这些表示帧号的整数坐标画出一些纵横线即可形成一个网络,网络中的每一个
交叉点(n,m)表示测试模式中某一帧的交汇点。DP算法可以归结为寻找一条通过
此网络中若干格点的路径,路径通过的格点即为测试和参考模板中进行计算的帧号。
路径不是随意选择的,首先任何一种语音的发音快慢都有可能变化,但是其各部分
的先后次序不可能改变,因此所选的路径必定是从左下角出发,在右上角结束。
DTW算法可以直接按上面的描述来实现,即分配两个NX M的矩阵,分别为积累距离矩阵D和帧匹配距离矩阵d,其中帧匹配距离矩阵d(i j)的值为测试模板的第
i帧与参考模板的第j帧间的距离。D(N, M 即为最佳匹配路径所对应的匹配距离。
无论在训练和建立模板阶段还是在识别阶段,都先采用端点算法确定语音的起点和终点。已存入模板库的各个词条称为参考模板,一个参考模板可表示为R={R( 1),R( 2),……,R( m,……,R (M) },m为训练语音帧的时序标号,m=1为起点语
音帧,终点语音帧,因此M为该模板所包含的语音帧总数,R( m为第m帧的语音
特征矢量。所要识别的一个输入词条语音称为测试模板,可表示为T={T (1),
T(2),……,
T(n),……,T( N) },n为测试语音帧的时序标号,n=1为起点语音帧,n=N为终
点语音帧,因此N为该模板所包含的语音帧总数,T (n)为第n 帧的语音特征矢量。
参考模板与测试模板采用相同形式的MFC(系数、相同的帧长、相同的窗函数和相
同的帧移。
假设测试和参考模板分别用T和R表示,为了比较它们之间的相似度,可以计算它们之间的距离D[T,R],距离越小则相似度越高。为了计算