基于Viterbi改进算法的汉语数码语音识别系统*

2017-08-02 08:59陈洁群
网络安全与数据管理 2017年14期
关键词:马尔可夫数码语音

陈洁群

(广东省培英职业技术学校,广东 广州 510630)



基于Viterbi改进算法的汉语数码语音识别系统*

陈洁群

(广东省培英职业技术学校,广东 广州 510630)

针对汉语语音识别中的一个分支——数码语音识别(MDSR)系统做出了具体的分析,并实验仿真了一个MDSR系统。在训练和识别阶段,引入了HMM模型的定义,为了提高识别的速度,还针对HMM系统中的核心识别算法Viterbi进行了改进,提出了一种累计积分判定的方法,对原Viterbi算法中的路径进行了剪裁,减少了冗余状态。使用MATLAB R2007a对此算法进行仿真实验,证明在相同语音识别系统的环境下,改进的Viterbi算法可以更有效地提高计算速度,且识别差错率没有明显的提高。

HMM模型;汉字语音识别;数码语音识别系统;Viterbi算法

0 引言

HMM是通过随机进行状态处理,实现对状态、观察值的状态统计分析,实现状态转移的描述。在这个过程中需要对时变信号进行统计及概率分析[1]。在隐马尔可夫模型中,状态转移是否需要和何时转移主要取决于状态统计的概率,这个概率可以称之为状态转移概率;此外,观察者状态也主要取决于生成概率[2]。在模型的马尔科夫链中不会看到状态信息,可以看到观察值,状态信息需要通过随机的方式来实现,因此,隐马尔可夫模型是对以往马尔科夫链进行改进得到的[3]。

在语音识别中采取隐马尔可夫模型主要是利用短时模型特性,实现对语音信号的平稳描述,从一个平稳信号的状态转移到另外的短时平稳信号状态中,可以有效地解决短时平稳信号段的问题[4]。

1 HMM的训练与搜索匹配

隐马尔可夫模型中在匹配时需要经过大量的训练来获取特征向量参数,在进行训练时需要解决如下几个问题[5]:

(1)识别问题:主要是解决在一定条件下的观察者输出概率。

(2)寻找与给定观察字符序列对应的最佳状态序列。

(3)模型训练问题:解决模型参数预测的问题。

1.1 Viterbi算法

Viterbi算法是一种广泛应用于通信领域中的动态规划算法[6]。该算法在语音识别中也得到了应用。利用全概率公式,可以计算出系统的输出概率,但是无法找到一条最佳的状态转移路径。而用Viterbi算法不仅可以找到足够好的一个状态转移路径,还可以得到该路径所对应的输出概率。同时,它计算输出概率所需要的计算量要比全概率公式小很多。但是,“足够好”并不是说“最优”。因为动态规划算法得到的结果通常是满意的[7],但并不保证它是最优的。算法实现主要步骤如下:

(1)初始化

δ1(i)=πibi(o1),ψ1(i)=0

(1)

(2)迭代计算

1≤j≤N

(2)

1≤j≤N

(3)

(3)终止计算

(4)

(5)

(4)回溯

(6)

1.2 改进的Viterbi算法

语音识别中经典的Viterbi算法在数学上用前向迭代的方法完美地解决了隐马尔可夫模型的解码问题。但在实际应用时,该算法所需的计算量仍然很大。改进的算法思想是,裁剪掉那些不可能或者得分低的路径。判断得分低的路径有几种方式,一种简单的方法为:该路径与最优路径的差值大于一定门限。

具体做法是:在每一帧识别处理完成后,找出累计得分最高的路径,其得分为:

(7)

(8)

实际上,只有满足:PT(j)>Vb的路径才需要保留到下一帧的处理中去。

而在实际应用中发现,用一个固定的常数b来求取门限的方法是不现实的。解决方法是动态生成调整门限值,在数学上通常采用黄金分割点的方法来设定这个门限:经比较得到当前帧所有路径中得分最高和最低的路径,记:

(9)

(10)

(11)

以上给出了HMM模型参数训练的方法,但是在实际求解时,还有许多具体问题需要注意解决。解决这些问题的方法将在下面进行具体讨论和说明。

(1)下溢问题及归一化处理

(2)初值估计

目前关于如何估计参数的初值问题还没有统一、直接的理论解决方案。对于初始状态概率矢量π和状态转移概率矩阵A,初值比较容易确定。由迭代算法可知如果任何一个参数的初值为0,那么在以后的迭代运算中则恒为0。因此它们的处置一般设置为均匀分布或非0的随机值。

对于B而言,如果是离散HMM,可以采取均匀分布或随机设置的方法。如果是连续HMM,则采用分段K均值的方法。

2 实验结果及讨论

2.1 原Viterbi算法识别结果

由于本文采用的samples.mat文件保留了语音的全部特征,没有对其中的波形文件进行压缩变换等操作,致使文件稍大。因此模型的训练过程一般需要半个小时左右。在识别过程,将保存语音“零”到“九”的100个波形文件(其中每个语音10个样本)分别命名为“0.wav”到“9.wav”,识别结果中0-7、2-8是易混淆数字对。此系统的正确识别率为93%,识别时间43.947 1 s。

2.2 改进的Viterbi算法识别结果

使用MATLAB R2007a对此算法进行仿真实验,证明在相同语音识别系统的环境下,改进的Viterbi算法可以更有效地提高计算速度,且识别差错率没有明显的提高。改进Viterbi算法后系统的正确识别率为92%,识别时间为41.465 s。

反复进行多次实验。本文选取了20次实验的数据进行比较,得到表1所示结果。

表1 原Viterbi算法与改进后的Viterbi算法实验比较结果

由表1可以看出,在相同的语音识别环境下,使用改进后的Viterbi算法的正确识别率与经典的Viterbi算法很接近,但速度更快了。这说明改进的算法是有意义的。

接下来采取优化方法对前后响应时间进行仿真实验,对所获取的结果进行采集,并且在仿真实验中将其中的词汇对象的容量设定为100,对上述的词汇对象进行语音识别处理,并且将其中的响应时间进行记录和对比,其结果如图1所示。

图1 系统识别时采用优化与未优化的Viterbi算法的响应时间对比

在上述关于优化前后的响应时间对比结果中可以看到,在优化前,所需要花费的响应时间平均为240.8 ms。经过算法的优化之后,其性能得到一定程度的提高,所需要的响应时间得到降低,其平均的响应时间为157.4 ms,经过优化之后,在响应时间方面其性能提升了34.6%。使用MATLAB R2007a对此算法进行仿真实验,证明在相同语音识别系统的环境下,改进的Viterbi算法可以更有效地提高计算速度,且识别差错率没有明显的提高。

3 结论

本文提出了一个改进算法的汉语数码语音识别(MDSR)系统。MDSR系统使用美尔倒谱系数MFCC作为主要的语音特征参数,同时对应用于HMM模型语音识别系统中的动态规划算法Viterbi进行了改进。改进的算法减少了原Viterbi算法中的冗余状态,同时保证差错率无明显提高。

[1] 孙玲.汉语数字语音识别技术与实现方法研究[J].华中科技大学学报,2015,47(11):44-52.

[2] 朱璇,李虎生,刘加,等.高性能汉语数码串快速识别算法的研究[J].微型机与应用,2014,38(7):845-850

[3] 刘润生.改进汉语数码语音识别中的语音特征提取性能[J].计算机系统应用,2015,28(11): 1-6.

[4] 董明,刘加,刘润生.高性能汉语数码语音识别芯片系统[J].清华大学学报(自然科学版),2013,53(6):1257-1260.

[5] 陆哗.基于隐马尔可夫算法的上海城市路名语音识别系统方法研究[J].华东师范大学学报,2015,39(11):36-47.

[6] 李虎生,刘加,刘润生.高性能汉语数码语音识别算法[J].清华大学学报(自然科学版),2013,47(10): 32-34.

[7] 侯周国.基于HMM的汉语数字语音识别系统研究[J].湖南师范大学学报,2015,37(11):39-61.

[8] 廖大强,印鉴,邬依林,等.基于兴趣传播的用户相似性计算方法研究[J].计算机应用与软件,2015,32(10):95-100,104.

The research on improved Viterbi algorithm for Chinese digital speech recognition system

Chen Jiequn

(Guangdong Province Puiying Occupation Technical School, Guangzhou 510663, China)

This paper made a detailed analysis of a branch of Chinese speech recognition, the digital speech recognition (MDSR) system, and simulates a MDSR system. In the stage of training and recognition, the definition of HMM model was introduced, in order to improve the recognition rate. The recognition algorithm of Viterbi core for HMM system was improved, a method was put forward to determine the path of the accumulated points, and the path of the original Viterbi algorithm was cut to reduce the redundant state. This algorithm uses the MATLAB R2007a for simulation experiments to prove that under the same speech recognition system, the improved Viterbi algorithm can effectively improve the calculation speed, and the recognition error rate is not significantly increased.

HMM model; Chinese character recognition; digital speech recognition system; Viterbi algorithm

广东省大数据分析与处理重点实验室开放基金项目(2017013)

TP18; TP912.34

A

10.19358/j.issn.1674- 7720.2017.14.004

陈洁群.基于Viterbi改进算法的汉语数码语音识别系统[J].微型机与应用,2017,36(14):11-13.

2017-02-16)

陈洁群(1981-),女,本科,讲师,主要研究方向:计算机系统结构、软件工程。

猜你喜欢
马尔可夫数码语音
魔力语音
基于MATLAB的语音信号处理
基于马尔可夫链共享单车高校投放研究
基于马尔可夫链共享单车高校投放研究
基于MQ3与MP3的价廉物美的酒驾语音提醒器
Naim Audio Uniti Nova数码播放/放大器一体机
对方正在输入……
数码暗房
基于隐马尔可夫模型的航空机械系统故障诊断算法设计
基于灰色马尔可夫模型的公务航空市场需求预测