自从智能手机的兴起以及siri 推出以来,大量的语音识别相关的产品开始进入普通用户的生活之中,像讯飞,腾讯,百度都推出了自己的语音产品。随着不同生活背景不同层次的用户越来越多,语音识别准确率始终是一个不得不说的伤心问题,老张家住在开新小区,每次用语音识别的时候都识别成开心小区,结果他变的很不开心。老王是个中药迷,稀奇古怪的药名连他小孙子都记不住,每次要和谁交流交流都得费劲的手动输入,因为语音识别总是很难准确完整的识别出来。正所谓众口难调,光靠一个公用模型来解决广大群众的各种需求是比较困难的,因此,为了更好的适应广大人民群众的各种需求,我们采用一种并行语音识别解码系统。

  图1为通用的语音识别解码器框架,声学模型我们采取的是隐马尔可夫模型模型,其发射概率为混合高斯矩阵。 语言模型我们采用的是n-gram的方式。这里声学模型和语言模型都为单一的一个模型。
 

1 通用的语音识别系统框架

  这种方式为目前通用的识别框架,为了解决不同用户不同的需求。我们将解码器展开为并行解码空间。在这里我们假设用户的口音区别不大,主要区别在于具体说什么内容, 基于这个假设,我们保持声学模型不变,生成不同垂直领域的语言模型。每个语言模型挂载到一个在线的解码器上。通过竞争打分来实现最终的结果输出。其框架如图所示。

图2 并行解码空间的系框框架


  相对通用的解码系统,并行解码空间系统主要增加了三个模块: 多路解码空间&多路语言模型;竞争打分模块,用户主题预测。

  多路解码空间&多路语言模型。语言模型训练一共分为三个模块,其中包括分类语料训练模块,模板语料训练模块,词表语料训练模块三个模块。具体步骤如下:


  步骤一,根据分类的类别构建一组基础分类词典进,通过最大后向匹配算法挖掘以及中心词计算的方法挖掘文本。对文本进行统计频率排序。将高频的文本作为分类训练样本


  步骤二,将挖到的文本构建文本分类器,用文本分类器在语料中挖掘高召回分值的句子。通过对句子进行词频统计,选择tf-idf高的词来扩充词表。迭代第一步骤,当分类词表不再扩充时,停止迭代,进入步骤三。


  步骤三,根据步骤一,步骤二得到的分类词表和分类语料。通过分类词表在在分类语料中挖掘出模板,取高频模板训练模板分类模板语言模型,取分类语料训练分类语言模型。根据词表训练词表语言模型。

  解码器空间采用的是wfst(加权有限状态机),将声学模型,语言模型和词典构建wfst网络图,并将其compose到一张wfst图上, 具体做法如图三所示:

 

图三 wfst 网络构建框架图

  语言模型wfst中,通过将模板语言模型,词表语言模型,分类语言模型的融合生成一张带labelwfst图。

表1

 

  对表1 左边,我们按正常的语言模型训练方式,输入输出都为词或者label

  表右边,在每个词的前面增加一个输入变 label: eps 。通过这种方式将两个语言模型组合在一起。如图4所示

图4



  通过这种方法,降低了语言模型对语料的大小的需求,保证了一些不常出现的词在wfst网格路径中的出现频度。


  竞争打分模块,我们采用声学模型竞争、语言模型竞争、语义模型竞争三种方法


  1)    声学模型分数竞争,对N条备选路径,进行最终置信度打分,其具体流程如下:


  首先,用每一条备选路径的识别结果进行强制对齐,之后可以计算得出相应的声学模型置信度,基于声学模型的置信度算法分为两个阶段,音素级别的置信度计算如下式

 

和关键词级别的置信度计算如下式:

 

 

2 语言模型分数

 

竞争

         通过大语料的训练获取一个50G的大语言模型,通过该语言模型计算各路语音解码器识别结果的ppl(困惑度)分数值。 其公式如下

 

3) 语义层面分数竞争,通过对语音识别结果的语音层面分析来计算打分结果


        3.1 提取识别结果中心词。这里采用LSA训练大规模语料计算语义距离矩阵。通过对识别结果进行分词,计算每个词之间的语义距离,选取和其他词语语音距离最近的词作为中心词。  

                 
         3.2文本分类概率, 通过计算识别文本在文本分类器中的概率来计算最终语音识别结果应该属于某一路的概率。

  用户主题判定,根据用户的历史语音输入记录,我们通过主题建模,选择相应的几路语音识别解码器来进行语音识别,并且根据用户输入习惯,对不同类别的解码器给予不同的权重。
 
结论


  经过测试,并行空间解码器在垂直领域的测试集上有了较大提升。
 
前景


  利用并行解码空间,语音识别可以更好地支持多个垂直领域,涵盖范围包括地图、音乐、游戏等多个领域。同时也可以通过模板设计和特定领域语料训练来针对特定的用户和商家给予定制服务。