APP下载

基于HTK的连续语音识别网站系统的研究和实现

2010-09-17王鸿儒杨根科杨祖华

微型电脑应用 2010年7期
关键词:音频文件音素马尔可夫

王鸿儒,杨根科,杨祖华

0 引言

随着对外交流信息的日益广泛化,大量的语音文件数据需要专业部门在短时间内进行可靠准确的处理与管理。语音文件直接检索技术虽然已经有一些进步,但是搜索效果并不非常理想。采用连续语音识别的方式将语音文件转换为文本文件,使用文本检索的技术仍是主要的语音搜索方式[1]。随着网络化技术、电子技术、信息处理技术和自动化技术的发展,通过信息化的方式,实现语音文件检索的自动化是完全可能的。自动化检索系统的实施,将极大地提高语音文件检索的效率,从概率意义上说机器比人耐疲劳,具有更高可靠性,再结合技术人员的参与,将根本性地提高对语音文件检索管理的准确性和可靠性。

隐马尔可夫模型HMM(Hidden Markov Model[2])于1966年由Baum提出相关数学推理。20世纪80年代,经过Rabiner等人的研究,HMM逐渐应用于语音识别领域,从而推动了语音识别方面技术的重大进展[3]。HMM采用隐含的状态来对应声学层各相对稳定的发音单位,通过状态转移和状态驻留来描述发音的变化。同时,它引入了概率统计模型,以概率密度函数为准则找到识别结果。通过将底层的声学模型和上层的语音模型融为一体,该语音识别搜索算法及其训练方法可以获得较好的识别效果。

语音识别方法大致还有两种:样本匹配法,神经网络系统(ANN)[4]。样本匹配法主要用于特定人孤立词语音识别系统中。他将特征分析提取的一组随时间而变的特征矢量序列和事先通过学习后存在机器里的样本序列进行比较。输入特征矢量序列和存储的样本,通过一定失真准则比较后即可找到和输出特征矢量序列最接近的样本序列, 由于人说话的速度有快有慢,因此动态时间规正方法(DTW)[5]是样本匹配法成功的关键。神经网络也被广泛应用于语音模型中。其中最有效的一种方法是使用多层神经网络,不同层之间的神经元通过一定的加权系数相互连接,这些加权系数可以在训练中进行学习。ANN本质上是一个自适应非线性动力学系统。他模拟了人类神经元活动的原理,具有自学、联想、对比、推理和概括能力。这些能力是HMM模型不具备的,但ANN又不具有HMM模型的动态时间归正性能[5]。

最近,一种新的分类方法“条件随机场”[6]被引入分词和词性标注等词法分析工作。隐马尔可夫模型中存在两个假设:输出独立性假设和马尔可夫性假设。其中,输出独立性假设要求序列数据严格相互独立,才能保证推导的正确性,而事实上大多数序列数据不能被表示成一系列独立事件。条件随机场则使用一种概率图模型,具有表达长距离依赖性和交叠性特征的能力,能够较好地解决标注(分类)偏置等问题,而且所有特征可以进行全局归一化,能够求得全局的最优解。条件随机场在语音识别中的应用还有待进一步的研究。

目前使用最普遍、效果较理想的识别方法,仍然是HMM识别方法。HTK(HMM Tool Kit)[7]是英国剑桥大学工程系(Cambridge University Engineering Department, CUED)开发的一套构建隐马尔可夫模型的工具集。工具集的设计目的主要是建立语音识别系统。主要包括语音特征提取和分析工具、模型训练工具、语音识别工具。目前,HTK的稳定发行版本是 3.4版本,所有代码使用 c语言编写,可以在Windows和Linux上编译使用。HTK的特点是开放源代码,用户可以在分析其代码的基础上,对某些算法和模块进行修改。

1 隐马尔科夫模型在语音识别中的应用

1.1 隐马尔可夫模型的定义

定义 1 (隐马尔可夫模型)隐马尔可夫模型[3]是一个五元组(S, V, A, B,π)。其中:S={s1,s2,…,sN}是状态集,N为状态的总个数;V={v1,v2,…,vM}是输出符号集合,M是每个状态中可以观察到的符号总数; A=(ai,j)N×N是状态转移概率分布矩阵,ai,j=P(Xt+1=sj|Xt=si)是从状态si转移到状态sj的概率,t为当前时刻,1≤ i≤ N,1≤ j≤ N;B=(bi,k)N×M是观察状态符号输出的概率分布矩阵,bi,k=P(ot=vk|Xt=si)表示在状态si时输出符号 vk的概率, 1≤ k≤ M,1≤ i≤ N;π={π1,π2, … ,πN}是初始状态概率分布。

HMM 是一个双重随机过程,其中之一就是马尔可夫链,这是基本随机过程,它描述状态的转移。另一个随机过程描述状态和观察值之间的统计对应关系。由于实际问题中观察值和状态之间,并不是一一对应的,这样站在观察者的角度,就只能看到观察值,不能直接看到状态,而是通过一个随机过程去感知状态的存在及其特性[4]。人的言语过程也是这样的一种双重随机过程。因为语音信号本身是一个可观察的序列,而它又是由大脑里的(不可观察的)根据言语需要和语法知识(状态选择)所发出的音素(词、句)的参数流。因此,隐马尔可夫模型作为语音信号识别的模型可以得到比较满意的结果。

在语音识别领域,隐马尔可夫模型可以是一维的观察值序列或编码符号序列,也可以是多维的矢量序列。例如一个语音段可以用一串特征矢量表示,这就是一个观察矢量序列,如果把这一串矢量逐个地进行矢量量化,每个矢量用一个编码符号代表,这就变成了观察符号序列。

1.2 隐马尔可夫模型的3个基本问题

使用HMM时,有3个关键问题要解决:

(1)训练问题(Parameter Estimation):

给定一个观察序列O={o1,o2, …,or},如何调整模型参数Λ={π,A, B}使P{ O|Λ}最大,从而得到最优的模型?该问题的解决方法对应语音识别中训练的方法。

(2)打分问题(Probability Evaluation):

给定一个观察序列O={o1,o2, …,or}和模型Λ={π,A, B},如何计算P{ O|Λ}?该问题的解决方法对应语音识别中识别结果的评估方法。

(3)状态序列选择问题(Optimal state sequence):

给定一个观察序列O={o1,o2, …,or},如何选择一个在某种意义下最优的状态序列{s1,s2, …,sr},即能够最好的解释观察序列?该问题的解决方法对应语音识别中的识别方法。

“向前-向后”(Forward-Backward)算法或 Baum-Welch算法可以用来解决第一个和第二个问题,Viterbi解码算法可以用来解决第三个问题[3]。

2 实验系统的构建

实验系统的构建主要分为以下几个步骤:

(1)数据准备

数据准备阶段包括建立词典,录制训练用语音数据,产生音子级的抄本,训练语音数据特征的提取。本文选取TIMIT语料库做训练数据集。TIMIT语料库中选取了 462个说话人,每个人8个句子,也就是说总共3696个英文句子可以用来做声学建模训练。

(2)创建单音子高斯混合分量HMM模型

创建具有5个转移状态的HMM模型,从左到右的拓扑结构,将所有特征矢量的均值和协方差作为模型的初始均值和协方差,根据Baum-Welch算法使用HMM训练工具HRest训练模型。

(3)创建3音子高斯混合分量HMM模型

加入上下文依赖3音素模型并得到稳健的训练。上下文依赖3音素模型可以用单音素作为初始,再进行重估。包括两步,先由单音素得到3音素并重估参数,再绑定3音素的状态以使输出分布更加稳健。

(4)评估器的评估

用 Viterbi 算法进行识别并使用 HResults对识别结果进行机器评估。

通过以上步骤 ,可以实现在 HTK平台上建立一个适合大词汇连续语音识别系统的统计语言模型。

3 网站结构的设计

在以上实验基础上,网站系统也随之建立。网站架构图如图 1所示,网站接受音频文件的上传,返回给用户所需的文本文件。应用服务器部分由ASP.NET 2.0和Visual C#实现,此部分完成对于用户上传音频文件的预处理,音频文件格式转换,并向用户显示识别结果。听写服务器部分由ATL实现,完成语音识别功能,并将识别结果存入数据仓库服务器。

用户首先通过浏览器访问服务器,上传音频文件,应用服务器会根据输入类型进行相应的转换,进行预处理,并将处理后的音频文件提交给听写服务器,听写服务器对音频文件进行处理,完成识别和翻译过程,将结果提交至数据仓库服务器。应用服务器从数据仓库服务器读取结果,返回给用户。

图1 系统架构图

应用服务器提供网页访问部分和一些预处理过程,听写服务器提供识别过程,数据仓库服务器作为文件存储的部分。软件设计框图如图2和图3所示。

图2 听写服务器软件流程图

图3 应用服务器软件流程图

4 仿真测试

网站可接受的音频格式为wav和 mp3。通过浏览器上传音频文件后,即可开始识别过程。识别完成后可进入查看页面查看识别内容。

将语音文件转换为文本文件后,可以回放重听,修改识别的内容并保存至服务器。同时,有了识别后的文本,就可以利用翻译软件将其转换为其他语言形式的文本,有利于不同语言背景的用户使用。

网站提供历史上传文件的关键词搜索功能。先将大量语音文件上传到服务器中,在识别工作完成之后,就可以在识别结果中进行关键字搜索,从而找到所需的音频文件,完成语音搜索功能。

经过对 500分钟的多种不同内容和形式的标准语音录音进行测试,识别系统的句子识别率为 70.01%,词识别率为95.23%。影响识别结果的原因主要由以下两点:1,训练集的大小,随着训练集的增大,识别精度随之增高,尤其是对于特定说话人的训练可以有效提高识别精度;2,语音文件的噪声大小,噪声越低,识别精度越高。因此,为提高识别精度,就需要进一步增大训练语料库的容量,并对语音文件进行有效的前端去噪。

5 结论

本文以隐马尔可夫模型为基础,利用HTK工具建立了提供语音识别服务的网络系统。该系统拥有广泛的应用前景。由于基于隐马尔可夫模型的语音识别对训练的依赖性,系统对于不同说话人的识别精度参差不齐。若要对每个说话人都进行训练,比较耗时。想提供更高标准的服务,还需要寻找更有效的识别方法。

[1]Wang Y, Yu D, Ju Y, and Alex A. An introduction to voice search, Signal Processing Magzine, vol. 25, no. 3, pp.29-38, 2008.

[2]Baum L E and Petrie T.Statistical inference for probabilistic functions of finite state Markov chains. Ann.Math.Stat,vol.37, pp.1554-1563,1966.

[3]Rabiner L R. A tutorial on hidden markov models and selected applications in speech recognition. Proceedings of the IEEE, vol. 77, no.2, pp.257-286, Feb, 1989.

[4]赵力.语音信号处理(第2版)[M].北京:机械工业出版社,2009.

[5]王炳锡,屈丹,彭煊.实用语音识别基础[M].北京:国防工业出版社,2005.

[6]Lafferty J D, McCallum A, Pereira F C N. Conditional random fields: Probabilistic models for segmenting and labeling sequence data. Proc. the Eighteenth International Conference on Machine Learning. Williams College:Morgan Kaufmann Publishers Inc., pp.282--289, 2001.

[7]Steve Young,Gunnar Evermann.HTK book[R].Cambridge University Engineering Department ,2009.

猜你喜欢

音频文件音素马尔可夫
依托绘本课程,培养学生英语音素意识
小学英语课堂中音素意识与自然拼读整合训练的探索
音频录编任我行
基于马尔可夫链共享单车高校投放研究
基于马尔可夫链共享单车高校投放研究
在拼读阅读课中培养学生英语阅读素养
零基础速记48个音标音素
基于Android手机的音频文件取证技术研究
多状态马尔可夫信道的时延分析
提取APP中的音频文件