论文部分内容阅读
一、引 言
我们都知道,语音命令的训练样本之间是存在很大差异的,譬如,男女声发音之间、不同发音人之间、甚至于同一个人在不同时段发音之间,都可能存在较大差异。在差异性较大的训练样本集上,训练的模型很难对所有样本都有好的建模效果。我们将ANN/HMM混合模型应用于语音识别,取得了较好的效果。但从实验结果我们也可以看到这种差异造成的识别率并不理想的情况。
由此,我们提出了一种多重ANN/HMM混合模型,为每个待识别命令建立一个多重(多链)的结构,以期能够改善由于样本差异降低识别率的情况。在多重混合模型中,我们将重点讨论如何将多重模型整合到一起,及其竞争学习机制。
二、多重ANN,HMM混合模型
在多重ANN/HMM混合模型中,每个待识别命令都由多个ANN/HMM来一起为它建模。假设每个模式对应M个ANN/HMM,我们称该模型是M重的,则每个待识别模式的多重ANN/HMM模型结构如下:
如图l所示的M重ANN/HMM混合模型,AHi(1≤i≤M)表示M重模型中的第i重,每一重都为ANN/HMM识别模式,在这里我们称它为子识别模式。若待识别模式有K个,可计算得整个识别系统共需要M×K个子识别模式,即M×K个ANN/HMM混合模型。由于每个子识别模式都是一个通过预测网络(PNN)来预测观测概率矩阵的隐马尔可夫链,所以我们也可简称多重混合模型为多链模型。
模型建立好之后,在识别的时候,数据特征输入给每一个链,每个链都将得出一个平均误差Ei(i=1,2,?,M),各个链通过竞争,将平均误差最小的那个Ei作为该模型的最终结果。
即,其中,E为模式最终的平均误差。
三、竞争学习机制
前面我们已经提到,采用多重ANN/HMM模型的目的是为了区分开差异样本,提高模型的建模精度。下面我们就来介绍一下实现这一目的的原理以及多重ANN/HMM混合模型的训练算法。
我们期待建立的多重模型的各个链的作用是互补的。例如,对于待识别命令“放大”,它的第一个链能够对样本中某些发音相近的部分很好的建模,而第二个链则能够对发音相近的另一部分进行很好的建模,以此类推。这样,进来的某一个样本,总可以找到多重模型中的一个链对它的建模效果比较好。这就是“适者生存,优胜劣汰”的道理。下面给出了一个示例图:
如上图所示,整个圆代表全部训练样本,假设我们的重数M=5,则训练的过程是将全部样本按相近性分成五个部分,分别作为5个链的训练样本集,例如图中红色的代号为4的部分代表第4个链的训练样本集。
问题是:如果人为来进行分割的话,则缺乏通用性和方便性,同时也可能是不客观的。那么,如何让训练算法自身来解决这个问题呢?
于是,我们提出了一种竞争学习方法,该方法的基本思想是:每次将训练样本数送给各个链,经计算各自得出一个平均误差,误差最小的那个链我们认为它在所有链中能够最好地表示该样本,因此,它在竞争中胜出,如图1所示,我们将这个竞争结果反馈回来,最终将这个样本划归给该链。
四、竞争学习算法
整个多重ANN/HMM混合模型的训练算法如下:
1.初始化i=1;集合S(k)=NULL(k=1,2,?,M);初始化5个链的权值矩阵,循环控制变量loop与样本总量F_NUM;
2.如果i>loop,退出算法;否则,j=l,转步骤3);
3.如果j>F_NUM,转步骤7);否则,转步骤4);
4.第j个样本Fj经过AHk(k=1,2,?,M),计算出各链的平均误差
5.求出平均误差最小的,将巧加入S(k);
6.j加1,转步骤3);
7.用s(k)中的数据采用第二章中的训练算法训练第k个链,其中k从1到M;
8.i加1,转步骤21
在该算法中,各个链通过自己适应的竞争机制,得到与自己相适应的训练样本子集,而从样本的角度出发,它们也总能找到对自己建模精度最高的那个链,继续训练该链,使其获得更精确的建模效果。
五、实 验
我们定义了5个待识别语音命令:放大、缩小、全屏、上移、下移。五个女性参与发音,每人为每个命令发音60次,其中,40次作为训练样本,20次作为识别样本。实验所用数据的采样率是16KHz,帧长为25ms,帧移为12,5ms,这里的一帧是指一段语音数据。我们采用的是Mel频率到普系数(MelFre-quency Cepstrum Coefficient一简称MFCC)。
方便多重ANN/HMM混合模型同ANN/HMM时序模型的比较,我们选取了同参考文献[1][2]相同的实验数据。只是我们只取MFCC自身的12维特征加上1个短时能量共13维特征,而不再使用一阶、二阶差分,这是由于我们使用的ANN实际上是一种预测网络PNN,这里实现用前两帧数据预测当前帧数据,可以近似的代替一阶、二阶差分。
采用上面的实验数据,重数M从1取到5的实验结果见表1和图3。
在图3中,当M=2时,识别率有些微下降,这是由于采用两个链并不能很好地区分开所有样本,而对每个链而言,训练样本数却少了几乎1/2,识别率也就不会太高。系统在M从3到5的识别率是逐步升高的,在M=5时达到了93.2%。M>5的实验我们没有做,但可以看见:如果M过大,完全超出样本差异性范畴,也就是样本之间的差异并不需要这么多的子模型去区分,这样M的增加不但无法更好地对待识别对象进行建模,还可能在很大程度上影响建模效果。
总体上同参考文献[2]中的实验结果的平均识别率85.8%相比较,竞争学习机制下的多重ANN/HMM混合模型的平均识别率可达到96.4%,有了显著提高。
参考文献
[1]刘明宇,ANN/HMM混合模型在语音识别中的应用[J],自动化技术与应用,2009(6)
[2]刘明宇ANN/HMM混合模型中状态数的自适应确定方法研究[J]自动化技术与应用,2009(7)
我们都知道,语音命令的训练样本之间是存在很大差异的,譬如,男女声发音之间、不同发音人之间、甚至于同一个人在不同时段发音之间,都可能存在较大差异。在差异性较大的训练样本集上,训练的模型很难对所有样本都有好的建模效果。我们将ANN/HMM混合模型应用于语音识别,取得了较好的效果。但从实验结果我们也可以看到这种差异造成的识别率并不理想的情况。
由此,我们提出了一种多重ANN/HMM混合模型,为每个待识别命令建立一个多重(多链)的结构,以期能够改善由于样本差异降低识别率的情况。在多重混合模型中,我们将重点讨论如何将多重模型整合到一起,及其竞争学习机制。
二、多重ANN,HMM混合模型
在多重ANN/HMM混合模型中,每个待识别命令都由多个ANN/HMM来一起为它建模。假设每个模式对应M个ANN/HMM,我们称该模型是M重的,则每个待识别模式的多重ANN/HMM模型结构如下:
如图l所示的M重ANN/HMM混合模型,AHi(1≤i≤M)表示M重模型中的第i重,每一重都为ANN/HMM识别模式,在这里我们称它为子识别模式。若待识别模式有K个,可计算得整个识别系统共需要M×K个子识别模式,即M×K个ANN/HMM混合模型。由于每个子识别模式都是一个通过预测网络(PNN)来预测观测概率矩阵的隐马尔可夫链,所以我们也可简称多重混合模型为多链模型。
模型建立好之后,在识别的时候,数据特征输入给每一个链,每个链都将得出一个平均误差Ei(i=1,2,?,M),各个链通过竞争,将平均误差最小的那个Ei作为该模型的最终结果。
即,其中,E为模式最终的平均误差。
三、竞争学习机制
前面我们已经提到,采用多重ANN/HMM模型的目的是为了区分开差异样本,提高模型的建模精度。下面我们就来介绍一下实现这一目的的原理以及多重ANN/HMM混合模型的训练算法。
我们期待建立的多重模型的各个链的作用是互补的。例如,对于待识别命令“放大”,它的第一个链能够对样本中某些发音相近的部分很好的建模,而第二个链则能够对发音相近的另一部分进行很好的建模,以此类推。这样,进来的某一个样本,总可以找到多重模型中的一个链对它的建模效果比较好。这就是“适者生存,优胜劣汰”的道理。下面给出了一个示例图:
如上图所示,整个圆代表全部训练样本,假设我们的重数M=5,则训练的过程是将全部样本按相近性分成五个部分,分别作为5个链的训练样本集,例如图中红色的代号为4的部分代表第4个链的训练样本集。
问题是:如果人为来进行分割的话,则缺乏通用性和方便性,同时也可能是不客观的。那么,如何让训练算法自身来解决这个问题呢?
于是,我们提出了一种竞争学习方法,该方法的基本思想是:每次将训练样本数送给各个链,经计算各自得出一个平均误差,误差最小的那个链我们认为它在所有链中能够最好地表示该样本,因此,它在竞争中胜出,如图1所示,我们将这个竞争结果反馈回来,最终将这个样本划归给该链。
四、竞争学习算法
整个多重ANN/HMM混合模型的训练算法如下:
1.初始化i=1;集合S(k)=NULL(k=1,2,?,M);初始化5个链的权值矩阵,循环控制变量loop与样本总量F_NUM;
2.如果i>loop,退出算法;否则,j=l,转步骤3);
3.如果j>F_NUM,转步骤7);否则,转步骤4);
4.第j个样本Fj经过AHk(k=1,2,?,M),计算出各链的平均误差
5.求出平均误差最小的,将巧加入S(k);
6.j加1,转步骤3);
7.用s(k)中的数据采用第二章中的训练算法训练第k个链,其中k从1到M;
8.i加1,转步骤21
在该算法中,各个链通过自己适应的竞争机制,得到与自己相适应的训练样本子集,而从样本的角度出发,它们也总能找到对自己建模精度最高的那个链,继续训练该链,使其获得更精确的建模效果。
五、实 验
我们定义了5个待识别语音命令:放大、缩小、全屏、上移、下移。五个女性参与发音,每人为每个命令发音60次,其中,40次作为训练样本,20次作为识别样本。实验所用数据的采样率是16KHz,帧长为25ms,帧移为12,5ms,这里的一帧是指一段语音数据。我们采用的是Mel频率到普系数(MelFre-quency Cepstrum Coefficient一简称MFCC)。
方便多重ANN/HMM混合模型同ANN/HMM时序模型的比较,我们选取了同参考文献[1][2]相同的实验数据。只是我们只取MFCC自身的12维特征加上1个短时能量共13维特征,而不再使用一阶、二阶差分,这是由于我们使用的ANN实际上是一种预测网络PNN,这里实现用前两帧数据预测当前帧数据,可以近似的代替一阶、二阶差分。
采用上面的实验数据,重数M从1取到5的实验结果见表1和图3。
在图3中,当M=2时,识别率有些微下降,这是由于采用两个链并不能很好地区分开所有样本,而对每个链而言,训练样本数却少了几乎1/2,识别率也就不会太高。系统在M从3到5的识别率是逐步升高的,在M=5时达到了93.2%。M>5的实验我们没有做,但可以看见:如果M过大,完全超出样本差异性范畴,也就是样本之间的差异并不需要这么多的子模型去区分,这样M的增加不但无法更好地对待识别对象进行建模,还可能在很大程度上影响建模效果。
总体上同参考文献[2]中的实验结果的平均识别率85.8%相比较,竞争学习机制下的多重ANN/HMM混合模型的平均识别率可达到96.4%,有了显著提高。
参考文献
[1]刘明宇,ANN/HMM混合模型在语音识别中的应用[J],自动化技术与应用,2009(6)
[2]刘明宇ANN/HMM混合模型中状态数的自适应确定方法研究[J]自动化技术与应用,2009(7)