电话咨询 在线咨询 产品定制
电话咨询 在线咨询 产品定制
010-68321050

语音识别的技术讲解

五度易链 2018-10-31 2539 116

专属客服号

微信订阅号

科技最前沿

剖析产业发展现状

为区域/园区工作者洞悉行业发展

所谓语音识别,就是将一段语音信号转换成相对应的文本信息,系统主要包含特征提取、声学模型,语言模型以及字典与解码四大部分,其中为了更有效地提取特征往往还需要对所采集到的声音信号进行滤波、分帧等预处理工作,把要分析的信号从原始信号中提取出来;之后,特征提取工作将声音信号从时域转换到频域,为声学模型提供合适的特征向量;声学模型中再根据声学特性计算每一个特征向量在声学特征上的得分;而语言模型则根据语言学相关的理论,计算该声音信号对应可能词组序列的概率;最后根据已有的字典,对词组序列进行解码,得到最后可能的文本表示。

       语音识别属于应用比较广泛的技术,在手机的微信客户端,和手机的智能软件中都发挥着重要作用,那么语音识别是怎样将语音变成文字的呢。

       语音识别概念

  所谓语音识别,就是将一段语音信号转换成相对应的文本信息,系统主要包含特征提取、声学模型,语言模型以及字典与解码四大部分,其中为了更有效地提取特征往往还需要对所采集到的声音信号进行滤波、分帧等预处理工作,把要分析的信号从原始信号中提取出来;之后,特征提取工作将声音信号从时域转换到频域,为声学模型提供合适的特征向量;声学模型中再根据声学特性计算每一个特征向量在声学特征上的得分;而语言模型则根据语言学相关的理论,计算该声音信号对应可能词组序列的概率;最后根据已有的字典,对词组序列进行解码,得到最后可能的文本表示。

      语音模型建立

      1. 声学模型

  声学模型是语音识别系统中非常重要的一个组件,对不同基本单元的区分能力直接关系到识别结果的好坏。语音识别本质上一个模式识别的过程,而模式识别的核心是分类器和分类决策的问题。通常,在孤立词、中小词汇量识别中使用动态时间规整(DTW)分类器会有良好的识别效果,并且识别速度快,系统开销小,是语音识别中很成功的匹配算法。但是,在大词汇量、非特定人语音识别的时候,DTW 识别效果就会急剧下降,这时候使用隐马尔科夫模型(HMM)进行训练识别效果就会有明显提升,由于在传统语音识别中一般采用连续的高斯混合模型GMM来对状态输出密度函数进行刻画,因此又称为GMM-HMM构架。

  同时,随着深度学习的发展,通过深度神经网络来完成声学建模,形成所谓的DNN-HMM构架来取代传统的GMM-HMM构架,在语音识别上也取得了很好的效果,

  2. 语言模型

  语言模型主要是刻画人类语言表达的方式习惯,着重描述了词与词在排列结构上的内在联系。在语音识别解码的过程中,在词内转移参考发声词典、词间转移参考语言模型,好的语言模型不仅能够提高解码效率,还能在一定程度上提高识别率。语言模型分为规则模型和统计模型两类,统计语言模型用概率统计的方法来刻画语言单位内在的统计规律,其设计简单实用而且取得了很好的效果,已经被广泛用于语音识别、机器翻译、情感识别等领域。

       语音识别过程

       现在语音识别采用模式识别的基本框架,分为数据准备、特征提取、模型训练、测试应用这4个步骤。

  模型经过训练之后,一段待测的语音需要经过信号处理和特征提取,然后利用训练好的声学模型和语言模型,分别求得声学模型和语言模型得分,然后综合这2个得分,进行候选的搜索,最后得出语言识别的结果。

  声音实际上是一种波。常见的mp3、wmv等格式都是压缩格式,必须转成非压缩的纯波形文件来处理,比如Windows PCM文件,也就是俗称的wav文件。wav文件里存储的除了一个文件头以外,就是声音波形的一个个点了。

  在开始语音识别之前,有时需要把首尾端的静音切除,降低对后续步骤造成的干扰。这个静音切除的操作一般称为VAD,需要用到信号处理的一些技术。要对声音进行分析,需要对声音分帧,也就是把声音切开成一小段一小段,每小段称为一帧。分帧操作一般不是简单的切开,而是使用移动窗函数来实现,这里不详述。帧与帧之间一般是有交叠的,

  分帧后,语音就变成了很多小段。但波形在时域上几乎没有描述能力,因此必须将波形作变换。常见的一种变换方法是提取MFCC特征,根据人耳的生理特性,把每一帧波形变成一个多维向量,可以简单地理解为这个向量包含了这帧语音的内容信息。这个过程叫做声学特征提取。

  至此,声音就成了一个12行(假设声学特征是12维)、N列的一个矩阵,称之为观察序列,这里N为总帧数。

  语音识别过程:第一步,把帧识别成状态(难点);第二步,把状态组合成音素;第三步,把音素组合成单词。

  干帧语音对应一个状态,每三个状态组合成一个音素,若干个音素组合成一个单词。也就是说,只要知道每帧语音对应哪个状态了,语音识别的结果也就出来了。图中,每个小竖条代表一帧,若干帧语音对应一个状态,每三个状态组合成一个音素,若干个音素组合成一个单词。也就是说,只要知道每帧语音对应哪个状态了,语音识别的结果也就出来了。

  语音解码介绍

  解码器是识别阶段的核心组件,通过训练好的模型对语音进行解码,获得最可能的词序列,或者根据识别中间结果生成识别网格 (lattice) 以供后续组件处理。解码器部分的核心算法是动态规划算法 Viterbi。由于解码空间非常巨大,通常我们在实际应用中会使用限定搜索宽度的令牌传递方法 (token passing)。

  传统解码器会完全动态生成解码图 (decode graph),如著名语音识别工具HTK(HMM Tool Kit) 中的 HVite 和 HDecode 等。这样的实现内存占用较小,但考虑到各个组件的复杂性,整个系统的流程繁琐,不方便高效地将语言模型和声学模型结合起来,同时更加难以扩展。现在主流的解码器实现会一定程度上使用预生成的有限状态变换器 (Finite State Transducer, FST) 作为预加载的静态解码图。   

  伴随科技的不断发展,人工智能产品都需要具备和人类直接交流的能力,这样的背景下,语音识别的准确性也需要不断提高,随着深度学习的研究深入,语音识别有望出现进一步发展。


本文由五度数科整理,转载请标明出处,违者必究!

评论

产业专题

申请产品定制

请完善以下信息,我们的顾问会在1个工作日内与您联系,为您安排产品定制服务

  • *姓名

  • *手机号

  • *验证码

    获取验证码
    获取验证码
  • *您的邮箱

  • *政府/园区/机构/企业名称

  • 您的职务

  • 备注