王心雨,单杏花,景 辉
(1.中国铁道科学研究院 研究生部,北京 100081;2.中国铁道科学研究院集团有限公司 电子计算技术研究所,北京 100081)
互联网技术的飞速发展使得老年人与移动互联网之间的数字鸿沟愈发明显,为解决老年人在使用智能服务时面对的难题,提出在铁路12306 手机客户端上增加语音购票功能。目前语音识别算法的准确率已经达到了较高水平,然而通用的语音识别算法在实际应用中,需要解决难以识别特定领域的专有名词的问题。
铁路领域的语音识别应用日渐广泛,潘梁生[1]设计用于列车司机语音识别及作业情况评判的列车车载语音识别系统,黄大吉等[2]设计基于嵌入式自然语言处理的车务术语语音识别方法,吴佳佳等[3]提出由调度电话语音识别、调度命令模板匹配构成的调度命令智能生成方法,蒋秋华等[4]实现铁路客服智能语音导航系统,唐雯等[5]设计铁路客运服务机器人的语音交互系统,廉文彬等[6]融合语音识别等技术,设计铁路客服智能质检系统。目前北京、上海、南京[7]等地的部分地铁交通枢纽已开通语音购票功能,借助智能语音识别技术,帮助用户完成地铁票的购买。考虑到智能语音识别技术给客运服务带来的提升,加之铁路方面尚未推出语音购票功能,以此为契机,进行适用于铁路语音购票的语音识别方法研究。
为了实现语音购票功能的设计,需明确铁路购票流程。铁路购票流程如图1所示,旅客在进行购票操作时,需要提供出发地、目的地、日期、车次、席别等乘车信息;后台会根据旅客提供的信息判断当前选择是否有余票,若无票,旅客需重新进行选择,若有票,则需提供乘车人信息;旅客提供准确的乘车人信息后,系统会生成相应的订单;旅客支付成功后,此次交易完成,购买车票成功。在设计语音购票功能时,需获取出发地、目的地、日期、车次、席别等关键乘车信息,才能保证购票操作的正常运行。
图1 铁路购票流程Fig.1 Procedure of railway ticket purchase
获取信息的前提是准确识别旅客口述的信息,语音识别技术作为实现语音购票功能的关键一环,设计并实现适用于铁路语音购票场景的语音识别模型尤其重要。语音识别流程,就是将一段语音信号转换成相对应的文本信息的过程,语音信号经过信号处理后,逐帧提取语音特征,将提取好的特征送至解码器,在声学模型、语言模型的共同指导下,找到最为匹配的词序列作为识别结果输出,语音识别系统流程如图2所示,实现语音购票功能的关键技术主要为声学模型、语言模型、前缀束搜索、热词赋权。
图2 语音识别系统流程Fig.2 Procedure of speech recognition system
(1)声学模型。声学模型即对人声进行建模,把语音输入转换成声学表示的输出,并计算出相应的概率。在中文语音识别中,声学符号通常为声韵母。声学模型建模时需要考虑3方面的因素,一是模型的可训练性,即能否得到足够的语料进行训练;二是可推广性,即当模型所针对的词汇集发生变化时,原有模型能否不加修改地满足新的词汇集;三是精确性,即模型是否能对人声进行较好的识别。
(2)语言模型。为了准确识别购票所需的关键信息,解决铁路专有名词识别困难的问题,使当前模型更好地了解相关的铁路领域知识,需要预先对语言模型进行优化,确保能够正确识别铁路领域内的专有名词、语言习惯。设计多重语言模型是为融合各类语言模型的优点,从而达到提高识别准确率的目的。
(3)前缀束搜索。前缀束搜索通过将搜索前缀合并,使得算法的搜索束更加多样化,以解决声学模型识别率受两个相同前缀的结果分摊概率值影响的问题。
(4)热词赋权。在语音识别模型中,对于常用词汇的识别效果较好,但对一些特有的人名、公司名或者某个领域的专有词汇,可能存在识别准确率不高的情况。针对铁路专有名词,提出增加热词赋权模块,提高了铁路专有名词的检出率和语音识别模型的准确率。
根据既有研究,融合模型[8]能获得更好的预测结果,通过浅融合[9]结构进行语音识别模型设计,得到基于多重语言模型融合的语音识别模型,主要包含声学模型、语言模型、前缀束搜索、热词赋权4部分。
基于多重语言模型融合的语音识别模型是使用Listen Attend and Spell (LAS)[10]声学模型,并融合基于长短期记忆[11](LSTM)和n元统计(n-gram)[12]的2种语言模型,在每个时间步的输出中,计算声学模型和语言模型的加权得分,得分由束搜索[13]方法得出,定义为
式中:y为解码结果;PLAS(y)为声学模型得分; Pn-gram(y)与PLSTM(y)分别为LSTM和n-gram的2种语言模型的得分;λ为模型的得分权重。根据在开发集上多次调整测试,λ取0.35时,模型的识别准确率最高。
模型经过前缀束搜索解码,筛选出数条最佳候选句;再根据候选句包含热词的情况进行赋权,选择得分最高的候选句作为识别结果。以识别“我想买安靖到固始的票”一句为例,设计基于多重语言模型融合的语音识别模型结构如图3所示。
图3 基于多重语言模型融合的语音识别模型结构 Fig.3 Structure of speech recognition model based on the fusion of multiple language models
2.2.1 声学模型
LAS声学模型的结构分为编码器、注意力机制、解码器、归一化4个部分。LAS中“L”代表“Listen”,即为编码器部分,从输入序列提取隐层特征;“AS”代表“Attend and Spell”,即为注意力机制、解码器、归一化3个部分,Attend模块接收Listen模块传递过来的隐层特征,并用来学习输入特征和模型最后输出序列之间的对齐信息,其中使用的注意力机制使得每个时间步用来解码的输入不一样,从而使得不同时间步关注的侧重点不一样;Attend模块的输出传递到Spell模块后,解码器按照链式法则,结合之前解码器预测的输出、Attend的输出及解码器自身的网络信息,经过归一化函数,将多个神经元的输出映射到(0,1)区间内,最终产生输出词序列的概率分布。LAS声学模型计算方法为
式中:x为输入序列;h为隐层状态的特征序列;y为输出序列;P ( y | x)为输出序列的概率分布。
2.2.2 语言模型
不同种类的语言模型有着各自的作用方式,LSTM语言模型分别给每个词赋予各自的分布式向量表征,探索其在高维连续空间中的依赖关系;n-gram模型是最为常用的统计语言模型[14],从统计的角度预测句子的概率分布,可以将其看作是对词与词共同出现频次的统计,通过将LSTM语言模型和n-gram模型按适合的权重结合起来,共同对声学模型的识别结果进行修正。
LSTM语言模型中最重要的是LSTM网络结构,其为一种特殊的循环神经网络[15](RNN)。RNN可以利用上下文进行预测,但是在训练过程中,模型可能发生梯度消失或者爆炸,很难做到长期依赖上下文进行预测。LSTM网络结构在RNN的基础上增加了输入门、遗忘门和输出门,分别控制输入、前一时刻节点的历史信息和输出信息,很好地解决RNN长序列训练过程中的梯度消失和梯度爆炸问题。LSTM网络结构计算公式为
式中:it为输入门,用于控制C~t的哪些特征用于更新Ct;xt为输入序列;ht-1为前一时刻的隐层状态;ft为遗忘门,表示Ct-1的哪些特征被用于计算Ct;⊗为LSTM最重要的门机制,表示ft和Ct-1之间的单位乘的关系;Ct为记忆单元;C~t为单元状态更新值;ot为输出门,隐层节点输出ht由ot和Ct得到;Wi,Wf,Wo为参数矩阵;bi,bf,bo为偏置向量;σ,φ,tanh分别为sigmoid,softmax,tanh激活函数。
构建LSTM语言模型时使用双层LSTM网络结构,堆叠式LSTM可以增加网络的深度,从而提高训练的效率,其计算公式为
式中:x为输入字符;P ( y | x)为下一个字符出现的概率;LSTM (x)完成公式 ⑷ 至公式 ⑻ 的计算过程。
由于n-gram模型是基于统计原理,很难做到长期依赖,因而对是否采用n-gram模型得分做了设定。首先对n-gram模型的概率分布选取top-k采样,即在采样前将输出的概率分布截断,取出概率最大的k个词,概率矩阵中其他值都做置零操作,以降低最不可能出现的词对最终预测结果的影响。若n-gram模型得分不低于设定阈值,则将其计入加权得分的计算。结合公式 ⑴,模型得分计算公式为
式中:θ为是否采用n-gram模型得分的阈值,取值为0.6。
2.2.3 前缀束搜索
为了提高解码过程中的召回率,增加前缀束搜索解码。首先给前缀树的根节点分配1个空节点,再向词列表中添加字符,循环对字符进行判断,最终筛选出P条最佳解码路径。以“安靖到固始”为例,“安靖到固始”的部分解码前缀树如图4所示,前缀树中的叶节点表示词组,即图4中双环形;非叶节点表示词前缀,即图4中单环形。
图4 “安靖到固始”的部分解码前缀树 Fig.4 Prefix tree: partial decoding results of the journey from Anjing to Gushi
2.2.4 热词赋权
为提高铁路专有名词的检出率,设计热词赋权模块。购买车票时,车站名、车次、席别是高频词,且存在与常用词同音或发音相近的情况,如“安靖”与常用词“安静”发音相近。由于有语言模型的参与,解码时倾向于给在语料中出现频率更高的词语更高的权重。对于部分铁路名词,其最终得分仍然无法超过部分高频词汇,从而造成识别错误,故设置热词库,内含车站名、城市名、车次、席别及购票时用到的其他专有名词,如候补、余票、动卧等。对于筛选出的候选句,根据是否出现热词库中的词及出现的频率进行赋权加分,并重新计算每个候选句的得分,计算公式为
每个候选句最多获得3个热词得分,从而尽可能避免热词识别错误对结果产生不良影响。以“我想买去固始的车票”为例,由于热词库包含“固始”,在“故事”“古诗”“股市”等众多同音词中,“固始”会获得额外的得分,使其以最高的概率被选为最符合该语义的识别词。
考虑到旅客购买车票时的语言习惯,除车站名、车次、席别等关键信息外,语句包含更多的日常用语,故研究构建铁路语音购票场景语料库(以下简称“语料库”),铁路相关语料主要由12306客服对话、铁路出行指南及其他现行的铁路相关规章制度组成,常识语料主要是从维基百科、百度百科等公开语料库中提取的有效文本。铁路语音购票场景语料库示例如表1所示。
表1 铁路语音购票场景语料库示例Tab.1 Examples from the corpus of voice-operated ticket purchase scenarios
与语料库不同的是,热词库存储的是铁路领域术语,比如始发站、终到站、候补订单等,一般是词或者短语的形式;语料库存储的是句子和段落,主要用于语言模型的训练。
考虑到语音识别场景的特殊性,在自建数据集时兼顾铁路相关数据和常识性数据。铁路相关数据主要为12306客服数据集和购票数据集,12306客服数据集包含约542 h的语音数据,涵盖旅客与客服有关购票退票、车次查询、账户核验、物品遗失、出行体验等多方面的交互过程;购票数据集包含约485 h的语音数据,是组织专人录制的购票场景对话,且在清洗拆分语音数据时,对旅客个人信息进行脱敏处理,以保障旅客的信息安全。常识性数据主要为从互联网公开视频中提取出的有效音频,包含约15 278 h的语音数据。实验数据集划分为训练集、开发集、测试集,其中训练集用于训练模型,开发集用于调整参数以及对模型作出的其它调整,测试集用于评估从开发集中选出的最优的模型。实验数据集统计信息如表2所示。
表2 实验数据集统计信息Tab.2 Statistics on the experimental dataset
为了研究不同语言模型及热词赋权对识别结果的影响,以及不同语料对语言模型作用的影响,设计基线模型和其他4种训练模型,与基于多重语言模型融合的语音识别模型进行对比实验,所有模型top-k采样中k为20,P条最佳解码路径中P为10。具体设计如下。
(1)基线模型:仅使用LAS声学模型,即不使用任何语言模型的情况。
(2)模型1:仅使用LSTM语言模型对LAS声学模型的结果进行修正。
(3)模型2:在LAS声学模型的基础上,使用LSTM语言模型和n-gram模型,其中n-gram模型的训练语料仅含铁路语料。
(4)模型3:在LAS声学模型的基础上,使用LSTM语言模型和n-gram模型,其中n-gram模型的训练语料仅含常识语料。
(5)模型4:在LAS声学模型的基础上,使用LSTM语言模型和n-gram模型,其中n-gram模型的训练语料包含铁路语料及常识语料。
在语音识别任务上,采用字错误率(CER)作为语音识别模型的评估指标,CER越低,表示效果越好,计算公式为
式中:S为替换的字符数目;D为删除的字符数目;I为插入的字符数目;N为参考序列中字符总数。
得到基线模型和其他4种训练模型,以及基于多重语言模型融合的语音识别模型在测试集上的评测结果,不同训练模型实验结果如表3所示。
表3 不同训练模型实验结果Tab.3 Experimental results of different training models
结果显示,模型2、模型3相比基线模型的准确率分别下降1.045%和1.258%,说明仅使用铁路语料或者常识语料训练的n-gram模型会反作用于识别效果,原因在于仅使用铁路语料会导致常识语料的匮乏,另一种情况则恰恰相反。当2种语料都具备时,n-gram模型的训练效果较好,模型4的识别准确率提高了1.276%,该情况与旅客购票时既会使用大量日常用语,又会提及铁路专有名词的语言习惯相吻合,故在特定的语音识别场景中,语音识别算法需要与铁路领域的专有知识结合,最终达到较好的识别效果。基于多重语言模型融合的语音识别模型的识别准确率,相比模型4提升近1%,相比基线模型提升1.374%,说明对于识别不常用的铁路专有名词来说,添加热词是一个较好的选择。
综上所述,提出的基于多重语言模型的语音识别模型,可以有效提高铁路专有名词的检出率,进而提高整个语音识别模型的准确率。
将基于多重语言模型的语音识别模型部署到铁路客票网服务器中,进行相关测试,得到铁路购票语音实验效果如表4所示。由表4可见,该语音识别算法能解决大部分铁路专有名词识别困难的问题,在车站名、车次类型、车票类型等专有词的识别上表现良好,能适用于铁路语音购票场景。虽然存在小部分词语识别错误的情况,但不影响用户进行购票操作,除了模型本身无法完全准确识别所有字词的内在因素外,这种情况还受到说话人口音、说话环境等外在因素的影响。
表4 铁路购票语音实验效果Tab.4 Experimental effect of voice-operated railway ticket purchase
出行服务的品质化、智能化、定制化升级是未来的发展方向,如何为旅客提供全方位智慧化的出行服务,将是铁路客运服务领域技术发展方向。针对铁路语音购票场景,提出基于多重语言模型融合的语音识别方法,很好地解决铁路专有名词识别困难的问题,能够准确识别购票所需的关键信息,将语音识别应用融入客运服务是研究语音识别算法及相关应用的最终目标。除了语音购票功能外,未来计划在铁路12306手机客户端上增加语音查询、语音打车等功能,逐步完善手机客户端的语音交互系统,给用户带来更好的使用体验。