上海动漫音乐分享社区

语音识别基本知识及单元模块方案设计

电子发烧友网2019-05-29 01:01:59

  语音识别是以语音为研究对象,通过语音信号处理和模式识别让机器自动识别和理解人类口述的语言。语音识别技术就是让机器通过识别和理解过程把语 音信号转变为相应的文本或命令的高技术。语音识别是一门涉及面很广的交叉学科,它与声学、语音学、语言学、信息理论、模式识别理论以及神经生物学等学科都 有非常密切的关系。语音识别技术正逐步成为计算机信息处理技术中的关键技术,语音技术的应用已经成为一个具有竞争性的新兴高技术产业。

  1语音识别的基本原理

  语音识别系统本质上是一种模式识别系统,包括特征提取、模式匹配、参考模式库等三个基本单元,它的基本结构如下图所示:
  

  未知语音经过话筒变换成电信号后加在识别系统的输入端,首先经过预处理,再根据人的语音特点建立语音模型,对输入的语音信号进行分析,并抽取所需的特 征,在此基础上建立语音识别所需的模板。而计算机在识别过程中要根据语音识别的模型,将计算机中存放的语音模板与输入的语音信号的特征进行比较,根据一定 的搜索和匹配策略,找出一系列最优的与输入语音匹配的模板。然后根据此模板的定义,通过查表就可以给出计算机的识别结果。显然,这种最优的结果与特征的选 择、语音模型的好坏、模板是否准确都有直接的关系。

  2语音识别的方法

  目前具有代表性的语音识别方法主要有动态时间规整技术(DTW)、隐马尔可夫模型(HMM)、矢量量化(VQ)、人工神经网络(ANN)、支持向量机(SVM)等方法。

  动态时间规整算法(Dynamic Time Warping,DTW)是在非特定人语音识别中一种简单有效的方法,该算法基于动态规划的思想,解决了发音长短不一的模板匹配问题,是语音识别技术中出 现较早、较常用的一种算法。在应用DTW算法进行语音识别时,就是将已经预处理和分帧过的语音测试信号和参考语音模板进行比较以获取他们之间的相似度,按 照某种距离测度得出两模板间的相似程度并选择最佳路径。

  隐马尔可夫模型(HMM)是语音信号处理中的一种统计模型,是由Markov链 演变来的,所以它是基于参数模型的统计识别方法。由于其模式库是通过反复训练形成的与训练输出信号吻合概率最大的最佳模型参数而不是预先储存好的模式样 本,且其识别过程中运用待识别语音序列与HMM参数之间的似然概率达到最大值所对应的最佳状态序列作为识别输出,因此是较理想的语音识别模型。

  矢量量化(Vector Quantization)是一种重要的信号压缩方法。与HMM相比,矢量量化主要适用于小词汇量、孤立词的语音识别中。其过程是将若干个语音信号波形或 特征参数的标量数据组成一个矢量在多维空间进行整体量化。把矢量空间分成若干个小区域,每个小区域寻找一个代表矢量,量化时落入小区域的矢量就用这个代表 矢量代替。矢量量化器的设计就是从大量信号样本中训练出好的码书,从实际效果出发寻找到好的失真测度定义公式,设计出最佳的矢量量化系统,用最少的搜索和 计算失真的运算量实现最大可能的平均信噪比。

  在实际的应用过程中,人们还研究了多种降低复杂度的方法,包括无记忆的矢量量化、有记忆的矢量量化和模糊矢量量化方法。

  人工神经网络(ANN)是20世纪80年代末期提出的一种新的语音识别方法。其本质上是一个自适应非线性动力学系统,模拟了人类神经活动的原理,具有自 适应性、并行性、鲁棒性、容错性和学习特性,其强大的分类能力和输入—输出映射能力在语音识别中都很有吸引力。其方法是模拟人脑思维机制的工程模型,它与 HMM正好相反,其分类决策能力和对不确定信息的描述能力得到举世公认,但它对动态时间信号的描述能力尚不尽如人意,通常MLP分类器只能解决静态模式分 类问题,并不涉及时间序列的处理。尽管学者们提出了许多含反馈的结构,但它们仍不足以刻画诸如语音信号这种时间序列的动态特性。由于ANN不能很好地描述 语音信号的时间动态特性,所以常把ANN与传统识别方法结合,分别利用各自优点来进行语音识别而克服HMM和ANN各自的缺点。近年来结合神经网络和隐含 马尔可夫模型的识别算法研究取得了显著进展,其识别率已经接近隐含马尔可夫模型的识别系统,进一步提高了语音识别的鲁棒性和准确率。

  支持向量机(Support vector machine)是应用统计学理论的一种新的学习机模型,采用结构风险最小化原理(Structural Risk Minimization,SRM),有效克服了传统经验风险最小化方法的缺点。兼顾训练误差和泛化能力,在解决小样本、非线性及高维模式识别方面有许多 优越的性能,已经被广泛地应用到模式识别领域。

  3语音识别系统的分类

  语音识别 系统可以根据对输入语音的限制加以分类。如果从说话者与识别系统的相关性考虑,可以将识别系统分为三类:(1)特定人语音识别系统。仅考虑对于专人的话音 进行识别。(2)非特定人语音系统。识别的语音与人无关,通常要用大量不同人的语音数据库对识别系统进行学习。(3)多人的识别系统。通常能识别一组人的 语音,或者成为特定组语音识别系统,该系统仅要求对要识别的那组人的语音进行训练。

  如果从说话的方式考虑,也可以将识别系统分为三类: (1)孤立词语音识别系统。孤立词识别系统要求输入每个词后要停顿。(2)连接词语音识别系统。连接词输入系统要求对每个词都清楚发音,一些连音现象开始 出现。(3)连续语音识别系统。连续语音输入是自然流利的连续语音输入,大量连音和变音会出现。

  如果从识别系统的词汇量大小考虑,也可 以将识别系统分为三类:(1)小词汇量语音识别系统。通常包括几十个词的语音识别系统。(2)中等词汇量的语音识别系统。通常包括几百个词到上千个词的识 别系统。(3)大词汇量语音识别系统。通常包括几千到几万个词的语音识别系统。随着计算机与数字信号处理器运算能力以及识别系统精度的提高,识别系统根据 词汇量大小进行分类也不断进行变化。目前是中等词汇量的识别系统,将来可能就是小词汇量的语音识别系统。这些不同的限制也确定了语音识别系统的困难度。

  4语音识别概述

  语音识别技术,Automatic Speech Recognition,简称ASR,是一种让机器听懂人类语言的技术。语言是人类进行信息交流的最主要、最长用、最直接的方式。语音识别技术是实现人机对话的一项重大突破,在国外近年来发展十分迅速,其应用也逐步得到推广。近几年逐渐普及的IVR(自动电话应答)处理了不少简单而又重复的咨询工作,节省了不少人力,但这种按键式的语音自动应答却让客户花费很多时间按指引来完成简单的查询,令用户倍感不便。

  语音识别无疑可以解决该方面的问题。语音识别系统的开发成功,充分发挥了计算机技术和网络技术的优势,采用先进的人机对话方式,摆脱电话按键的束缚,人们只要象平常一样对着电话简单的说出所需服务项目,即可轻松获取自动系统提供的所需信息。


  5语音识别应用

  Nuance公司是自然语音接口软件的佼佼者。使用自然语音接口软件,人们可以通过电话方便安全地获取信息、服务并进行交易。每天,千千万万的人通过拨打运行Nuance公司语音识别、语言理解和声纹鉴别软件的电话,进行出游预订、股票交易、与其它通讯媒体、企业和互联网系统进行交往等活动。 NUANCE的应用:美国航空、Bell Atlantic、Charles Schwab、家庭购物网络、Lloyds TSB、Sears、UPS 。

  NUANCE语音识别特点

  (1)海量词汇、独立于讲话者的健壮识别功能

  Nuance系统能可靠地对多种语言进行大词汇量的识别,并可提供识别结果的置信度。该系统对商业上使用的大量词汇提供最准确的语音识别技术。利用Nuance系统开发的应用程序,在市场上具有最高的准确率。生产中的应用程序经测试,准确性超过96%。

  (2)基于主机的客户/服务机结构

  Nuance系统基于开放式客户/服务机结构,特别为大型应用程序所需的健壮性和可伸缩性而设计。呼叫者的讲话由客户端收集,而识别和鉴别处理的负载被平均分配到网络上的多个分开的服务器上。

  (3)N-Best处理

  对于有些应用程序,可能需要识别引擎产生可能的识别结果集,而不是一个最好的结果。Nuance系统的N-best识别处理方法便有这个功能,它提供了可能的识别结果列表,并按可能性从高到低排列。

  (4)语法概率

  Nuance系统允许对呼叫者所讲的特定词语或短语的在语法中的概率进行指定。当被讲的词语或短语的概率可根据实际使用进行估计时,非常有用。对语法增加概率可提高识别的准确率和速度。

  (5)降低噪音

  当进来的呼叫包含稳定的背景噪音时,Nuance系统通过一种机制,使识别服务器更准确地进行识别。识别服务器将进来的话语进行增强,以有效地将语气、嗡嗡声、哼叫声、嘘嘘声等噪声过滤。如果相当数量的电话均含有稳定的背景噪声,比如在汽车上免提打电话时,这个机制效果较理想。

  6.基于识别的应用

  语音短信本身业务、公司电话簿、个人电话簿、智能点歌、股票查询和交易、智能信息点播、列车时刻查询
  

  公司电话簿特点

  •系统支持电话接入方式

  用户可通过电话修改个人密码,个人上班电话和非上班电话

  •系统支持WEB接入方式

  • 系统管理员可修改所有信息

  • 各公司管理员可增加,删除,修改本公司的电话信息

  7语音识别单元设计

  目前,语音识别技术的发展十分迅速,按照识别对象的类型可以分为特定人和非特定人语音识别。特定人是指识别对象为专门的人,非特定人是指识别对象是针对大多数用户,一般需要采集多个人的语音进行录音和训练,经过学习,从而达到较高的识别率。

  本文采用的LD3320语音识别芯片是一颗基于非特定人语音识别技术的芯片。该芯片上集成了高精度的A/D 和D/A 接口,不再需要外接辅助的FLASH 和RAM,即可以实现语音识别、声控、人机对话功能,提供了真正的单芯片语音识别解决方案。并且,识别的关键词语列表是可以动态编辑的。其语音识别过程如 图2所示。
  

  语音识别单元采用ATmega168 作为MCU,负责控制LD3320完成所有和语音识别相关的工作,并将识别结果通过串口上传至Arduino mega2560 控制器。对LD3320芯片的各种操作,都必须通过寄存器的操作来完成,寄存器读写操作有2种方式(标准并行方式和串行SPI方式)。在此采用并行方式, 将LD3320的数据端口与MCU的I/O口相连。其硬件连接图如图3所示。


  语音识别流程采用中断方式工作,其工作流程分为初始化、写入关键词、开始识别和响应中断等。MCU的程序采用ARDUINO IDE编写[5],调试完成后通过串口进行烧录,控制LD3320完成语音识别,并将识别结果上传至Arduino mega2560控制器。其软件流程如图4所示。
  

  8系统软件设计

  示教与回放系统的软件设计包括测控计算机的软件设计和各从设备Arduino mega260控制器的软件设计。

  测控计算机是整个系统的控制核心,其软件采用C#进行编写,在示教与回放系统中主要是对操作数据的记录以便根据所记录的数据对操作过程进行精确回放,需 要记录的数据包括:各从设备操作人员的操作口令,操作动作,口令及动作时间,各操作对应的操作现象。为简化记录数据,事先编制好各事件代码,记录过程只记 录代码,大大提高程序效率。建立结构体如下:

  

  在操作训练过程中测控计算机每隔50 ms 对下位机进行控制及轮询,并记录反馈数据,在数据记录时以50 ms 为一个单位。采用定时器对时间进行控制。在回放过程中首先比对当前时间和所记录的时间,当所记录的时间与当前时间吻合时测控计算机控制下位机执行该事件, 完成事件回放。

  Arduino mega2560控制器负责接收测控计算机的控制指令并执行指令,读取语音识别结果,对声强数据采集和处理,控制语音合成单元进行语音合成等。Arduinomega2560 控制器采用串口中断的方式进行命令接收。

  只有正确接收到命令才会执行并回传结果,若测控计算机在限定时间内未收到回传结果则表明发生错误,测控计算机需重新发送。数据接收流程图如图8所示。
  

  本文介绍了语音识别基本知识,同时利用智能语音芯片设计了某模拟训练器的示教与回放系统,该系统不需要现在流行的虚拟现实技术的支持,仅在MCU 的控制下就可以运行。该系统也可以在小型的便携式设备上实现,具有良好的应用前景。