宾馆信息语音检索系统的研究

时间:2022-09-16 03:21:06

宾馆信息语音检索系统的研究

摘要:针对手工输入查询要求的传统检索系统的不便,该文提出利用语音检索技术,设计开发了Voice Hotel宾馆信息查询系统,基本实现了人机语音对话的查询方式。该系统采用的语音处理技术有:1)基于HMM模型的语音识别,用以现实语音到文本的转换;2)PSOLA的语音合成技术,用以实现文本到语音的转换,完成对检索结果进行语音播报的功能。该系统的语音检索正确率达到85%。

关键词:语音检索;语音识别;语音合成

中图分类号:TP311文献标识码:A文章编号:1009-3044(2010)22-6295-03

Hotel Information Voice Retrieval System

LV Dan-ju, XU Wei-heng

(Computer and Information Science Dept., Southwest Forestry University, Kunming, China, 650224)

Abstract: Unlike traditional retrieval system, manually inputting query requests, this paper proposes voice search system. Using voice search technology, we design and develop the Voice Hotel information inquiry system, which basically fulfils man-machine voice dialog forms of inquiry. The system uses the voice processing technologies 1) HMM model based on speech recognition, converting real speech to text; 2) PSOLA of speech synthesis technology, converting text to speech. The retrieval accuracy of the system reaches 85%.

Key words: voice search; speech recognition; speech synthesis

语音搜索技术(Voice Search)是把用户的语音咨询信息转换成文本咨询信息,根据该文本信息进行数据搜索的技术。该技术为用户提供了人-机交流更为直接的语音对话方式。由于语音的便利性(较传统的手工输入)和可用性(较以内容为主的影像检索),成为检索技术的重要发展方向。近年来,随着语音搜索技术中的关键技术如语音识别、语音合成技术的不断发展与完善,语音搜索已在电信、金融、娱乐、政府等行业中得到了广泛深入的运用[1],如语音电话号码查询,音乐/视频的搜索管理,股票的语音询问与报价以及会议信息系统等。微软旗下的Tellme公司推出了针对于黑莓手机语音搜索软件实现了移动电话语音查询功能,之后雅虎也推出了OneSearch语音信息搜索软件。继微软Tellme和OneSearch语音搜索服务之后,Google也于2009年11月推出了手机语音搜索软件。我国也于本世纪初相继推出各城市语音控制导航电子地图、KTV语音点歌服务系统等。语音搜索技术在不到20年的发展中不断完善[2-4],显示出其强大的发展潜力。

1 系统介绍

1.1 系统组成

本系统采用的语音检索系统结构[1], 如图1所示。

对话系统搜索模型首先将游客的语音查询信息输入自动语音识别器(Automatic Speech Recognizer ASR),该模块将由声学模型(Acoustic Model AM)和语言模型(Language Model LM)组成。语音识别器用于实现语音到文本的转换(Speech to Text),ASR产生最好的一个识别文本结果。 系统根据识别的文本调用搜索模块SQL Server引擎进行数据搜索。将符合条件的一个或多个数据信息进行显示,并将搜索结果语音播报给用户。

1.2 系统采用技术

1.2.1 语音识别

语音识别部分主要由两个部分组成:语音训练阶段与语音识别阶段,如图 2所示,语音训练阶段是利用语料库中的语音信息,抽取其美尔倒谱参数MFCC的语音特征值,该参数考虑了人耳对声音信号的因素,能够较好的反映;以隐马尔科夫模型HMM为语音模型,依据数据统计原理,建立起语音参考模板。在训练阶段完成后,即可进入识别阶段,识别阶段将用户的语音信号抽取MFCC语音特征,为该语音创建识别模板。最后,将参考模板与识别模板进行对比,通过识别匹配原则寻求识别模板与参考模板中最相近的一个模板,从而实现语音信号的识别,实现从语音到文本的转换。

1)MFCC特征参数:美尔频标倒谱系数考虑了人耳的听觉特性,将频谱转化为基于Mel频标的非线性频谱,然后转换到倒谱域上。由于充分考虑了人的听觉特性,而且没有任何前提假设,MFCC参数具有良好的识别性能和抗噪能力。本系统采用42维的MFCC(12维的倒谱参数,1维的对数能量, 1维的pitch和一、二阶倒谱参数)。

2)HMM声学模型:HMM是一种双重随机过程,而之所以称为隐藏式是因为其中有一组随机过程是隐藏的,看不见的,在语音中就如同人类在发声的过程中其发声器官状态是看不见的,好比喉咙、舌头与口腔的变化是不可能从可观测的语音信号序列看出来的。而另一组随机过程观测序列(Observation Sequence),本系统采用6状态的HMM表示的汉语音素模型,它是由状态观测概率(State Observation Probability)来描述在每个状态下观测到各种语音特征参数的概率分布。HMM的状态观测概率函数式bj(ot)是采用高斯混合密度函数GMM(Gaussian Mixture Model)来计算连续概率密度,因此每一个声音单元(本系统采用音素)皆有一组连续的HMM(GHMM)。

3)N-Gram的语言模型:本系统采用基于统计方法的适合大词汇量连续语音识别的Trigram统计语言模型,进一步提高文本识别率。为下一步检索提供更为优质的文本检索信息。一个词的N-gram的语言模型如式:

(1)

整个句子的概率表示为:

(2)

式中w1,w2,…,wm表示组成整个句子中出现的每个词,参数n为n-gram统计语言模型的阶数,其值取决于模型的精度和复杂度,通过实验表明,n值越大,则对句子中单词之间的依赖关系描述得越准确,此时模型的精确度越高,但模型的复杂度也越大。本系统采用n=3,也即Trigram。于是,训练数据的句子中每个词出现的概率只与其前两个词有关,表示为:

(3)

在计算时,上式表示为:

(4)

c(wi-2,wi-1,wi)表示为该词序列出现在训练文本中的次数。但由于统计数据的稀疏性,必然会有c(wi-2,wi-1,wi)=0的可能。为此,应采用平滑技术(back-off和interpolated插值)来调整序列在训练文本中的分布概率。本系统采用插值方法。其表达式为:

(5)

λ为插值系数,对于给定的p(wi|wi-2,wi-1),可以在训练语料上运用Baum-welch算法计算得到插值系数λ(01)。

4)Viterbi Search识别算法:系统采用Viterbi搜索方法获取最好的音节系列,作为识别的文本。

系统的训练与识别部分均采用HTK(HMM Tool Kit)[6]实现。HTK是一套功能强大的语音识别工具,可以将大量的语音用HMM训练后,加以识别。所以本系统采用HTK为识别核心。语料库中收录宾馆名称、宾馆价格、宾馆星级、宾馆地址的语音资料,并将其对应文本进行手工音素注音。训练阶段是实现语音的MFCC特征与文本音素依HMM的对应过程,完成HMM音素模板的建立。在识别运用部分将要识别的语音文件进行MFCC提取后与HMM音素模板,利用N-gram的语言模型,进一步完善识别文本。最后利用Viterbi Search算法,找出一个最相似的音节序列,进而确定文本。

1.2.2 语音理解/搜索(Spoken Language Understanding/search)

语音理解的目的是将用户的表述转换成相对应的语义。在语音搜索中所指的“相对应的语义”就是对数据库查询的关键词信息。由于用户在查询时所说的语句不可能严格按照语法要求,是一种口头的表述,如当用户选择宾馆名称查询时,按照要求用户只需要说明宾馆名称如“连云宾馆”即可,但用户可能会说“我想问一下连云宾馆,谢谢!”,而不只是“连云宾馆”。这样,就会造成识别文本与查询文本的错误对应。为此,本系统采用语音信息提示,告诉用户查询的语音表达方式,如按宾馆查询时,提示信息为“请说宾馆名称”,按宾馆星级查询时,提示信息为“请说出要查询的宾馆星级,1~5的数字”等。在文献[4]中,还提出了其它语音理解的解决方案。由于本系统只是一个初级性的语音检索,固没有采用像基于词类的N-Gram,填词法等语音理解技术。

1.2.3 语音合成

为了使结果查询采用多媒体方式输出,以提供更自然的人-机交互,系统实现能够将查询文字信息传化成连续的语音(TTS,Text to Speech),以提供高质量、智能化的语音服务的重要技术。首先将文字输入到TTS系统中,TTS系统在收到文字后,根据原有在语料库中的语音档案进行连音,调整长度,大小及声调的动作。本系统采用微软推出的TTS软件包,作为汉语合成时还要考虑声调因素。实现过程如图 3所示。

TTS引擎属于Windows API外挂函数,它是一个Speech API程序。安装TTS引擎后,自动将类库文件Vtxtauto.tlb安装在Windows系统目录里的Speech 目录下,从而将其导入语音库“Voicetext Type Library”中。形成库文件后,我们可以将TTS引擎作为一个外部工程从语音库中引入VB、VC等32位应用软件的可视化环境,在视图中的对象浏览器窗口观察分析TTS引擎所封装的类、类的成员函数、方法及各属性的意义,并在所开发的软件中嵌入TTS,编写出独具个性的语音合成软件。

2 系统设计说明

本系统采用VC++进行语音检索Voice Hotel系统的界面设计,其系统操作说明如下:

1)开始执行Voice Hotel,会以语音提示使用语音查询的方法。语音会提示在哔声后开始3秒录音,哔声响起,开始进行录音,此时,对着麦克风说出要查询的方式:“宾馆名称”、“宾馆价格”、“宾馆星级”、“宾馆地址”;如图 4表示,说出“宾馆名称”。

2)经过系统识别后,激活相应的查询方式,语音回报用户要求的查询方式,并提示查询表述方式,准备进行查询关键字的语音录入;如图 5所示。

3)语音提示在哔声后开始录音,哔声响起,对着麦克风说出要查询的关键字;如图6所示。

4)经系统识别后,将会在相应的查询方式处显示识别结果,并在检索结果处显示查询符合要求的结果,利用语音合成技术,将其识别结果及查询结果进行语音播报。如图 7表示,识别结果为:金龙,进行结果显示。

3 实验数据及结果

由于本语音识别系统是采用最接近的句子作为识别结果,被识别系统资料的充足与否,平均每句的字数,都会影响正确率。系统采用字正确率作为系统测评指标的标准:。系统采用的训练数据说明,如表 1所示,测试结果如表 2所示。

从表2可知,本系统的识别率达到大约85%,基本达到一个初级语音查询的要求。

本系统的开发出基于语音和文字两种查询与输出的多媒体查询系统,它优于传统资料查询的文字输入、输出的方式,显示出人-机交流更加自然的特点。系统中核心的部分即为语音识别与语音合成部分。就该系统识别率而言,由于本语音识别系统采用最接近的句子当作为识别结果,被识别系统资料的多少,平均每句的字数,都会影响正确率。训练语音资料信息如下:其测试结果如下:实验数据表明,本系统的平均识别率约为85%。

4 结论

本文已实现了一个较为完整的语音宾馆查询系统,关键技术为语音识别与合成。由于系统只是一个初级的语音检索系统,所以在语音理解部分采用的是对用户的语音查询表述进行了严格的限制,今后可近将针对语音理解部分作进一步研究,以实现更自然的口语查询的目的, 同时提高系统识别率。并提供多查询接入方式如电话方式的查询以及更加丰富输出结果如显示宾馆的地理位置等。

参考文献:

[1] Ye-Yi Wang, Dong Yu, Yun-Cheng Ju and Alex Acero, An Introduction to Voice Search, IEEE Signal Processing Mag.[J], pp.30-38, May 2008

[2] Yu D, Ju Y C, Wang Y Y, Zweig G, et al. Automated directory assistance system: From theory to practice[J].in Proc. Interspeech, Antwerp, Belgium,2007: 2709-2712.

[3] Natarajan P, Prasad R, Schwartz R M, et al. A scalable architecture for directory assistance automation[J].in Proc. IEEE Int. Conf. Acoustics, Speech, and Signal Processing, Orlando, FL, 2002:121-124.

[4] Yu D, Ju Y C, Wang Y Y, et al. N-Gram Based Filler Model for Robust Grammar Authoring[J].in Proc. ICASSP,2006(1):565-568.

[5] 马强.嵌入TTS 技术开发语音合成软件[J].电脑开发与应用.2004,17(4):18-19,22.

[6] Steve Yong, Gunnar Evermann. HTK book[R].Cambridge University Engineering Dept.,2006.

上一篇:基于Phong模型的多光源闪烁仿真 下一篇:高等院校软件学院图形图像教学改革探索