毕业设计(论文)-基于单片机的语音识别系统.doc_第1页
毕业设计(论文)-基于单片机的语音识别系统.doc_第2页
毕业设计(论文)-基于单片机的语音识别系统.doc_第3页
毕业设计(论文)-基于单片机的语音识别系统.doc_第4页
毕业设计(论文)-基于单片机的语音识别系统.doc_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于单片机的语音识别系统摘要语音识别是实现人机通信的一种重要技术手段.智能化和自动化技术在玩具制造领域中越来越被关注。本文介绍一种智能化小车控制系统的设计语音控制小车。语音控制小车是基于SPCE061A的代表性兴趣产品,它配合61板推出,综合应用了SPCE061A的众多资源,小车采用语音识别技术,可通过语音命令对其行驶状态进行控制 。首先介绍了SPCE061A的主要性能及其引脚的功能;接着完成了电源电路、复位电路、键盘电路、音频输入电路,音频输出电路和无线控制电路等硬件功能模块的设计。软件设计模块能实现智能小车的前进、后退、转向、停止、避障、表演动作以及循线等功能。测试表明,在环境背景噪音不太大,控制者的发音清晰的前提下,语音控制小车的语音识别系统能对特定的语音指令做出智能反应,做出预想中的有限的动作关键词:spec061a 语音识别 驱动电路 声控小车 智能反应.- VI -AbstractSpeech recognition is an import means of man-machine communication system.Intelligent and automation technology in the toy manufacture have been paid more and more attention.Introduce an intelligent vehicle control system design. SPCE061A program the system to single-chip, based on implementation of the cars voice control, This paper introduces the hardware sub-system design and implementation. The SPCE061As main characters and pin function are introduced firstly. Completed the power circuit, reset circuit, keyboard circuitry, audio input circuits, audio output circuit and control circuit of wireless hardware such as the design of function modules. Software design module can achieve smart car forward, backward, turn, stop, obstacle avoidance, performing actions, as well as on-line functions. Test showed that the background noise in the environment is not too great, control persons under the premise of clear pronunciation, voice control car speech recognition systems for specific voice commands to make intelligent reaction, limited to the desired action.Keywords: spec061a 、voice recogniton、Driving circuit、Voice control dolly、intelirent response 目录摘要.IAbstractII目录.III绪论.11 方案介绍及设计简介21.1小车的控制要求及设计方案21.1.1小车的控制要求21.1.2方案设计与论证21.2SPCE061A 简介31.2.1SPCE061A单片机概述51.2.2SPCE061A的介绍71.2.3SPCE061A的结构71.3SPCE061A 单片机强大的语音功能81.3.1语音识别的原理81.3.2系统的结构框图91.4语音控制小车设计要求101.4.1功能要求101.4.2语音控制小车的主要功能101.4.3参数说明101.4.4注意事项102 语音识别相关技术.2.1 语音识别概述. 2.1.1预处理. 2.1.2 特征提取. 2.1.3 识别判决.2.2 预处理及特征参数提取 2.2.1 预加重处理.2.2.2 端点检测.2.2.3 加窗处理.2.2.4线性预测基本原理.2.2.5 线性预测倒谱系数(LPCC). 2.3基于DTW的语音识别.2.3.1 偶然训练法.2.3.2 鲁棒性训练法.2.3.3 非特定人识别任务的模板训练算法一聚类.2.4特征参数的提取.2.4.1 预加重处理.2.4.2 分帧和加窗处理.2.4.3 LPCC系救的求解.2.5模板的生成及训练3电路设计及程序设计.13.1电路设计基础知识113.2电路方框图及说明133.3各部分电路设计133.3.1电机的选择143.3.2继电器驱动电路的设计143.3.3行驶状态控制电路设计153.3.4麦克录音输入及AGC电路163.3.5语音播报电路184软件设计194.1软件流程图及设计思路说明194.1.1程序设计204.2模块设计204.2.1中断流程图部分204.2.2语音识别部分225连接和操作说明255.1硬件模块连接图255.1.1功能说明255.1.2代码下载265.1.3训练小车275.1.4声控小车285.1.5重新训练28总结.30致谢.31参考文献32附件A.附件B.附件C 系统程序说明33绪论语音识别技术是近年来十分活跃的研究领域。语音识别系统的实用化研究是语音识别研究的一个主要方向。以玩具市场为例,具有高科技含量的电子玩具、智能玩具发展迅猛,电子互动式、智能化玩具已经成为玩具行业发展的主流。我国是玩具生产和出口大国,但在高科技玩具的发展方面和国外的差距很大,因此,及时投入精力广泛开展这方面的研究,无论对技术创新应用,还是社会经济发展,都有巨大的现实意义。与机器进行语音交流,让机器明白你说什么,这是人们长期以来梦寐以求的事情。语音识别技术就是让机器通过识别和理解过程把语音信号转变为相应的文本或命令的高技术。近二十年来,语音识别技术取得显著进步,开始从实验室走向市场。语音识别功能大大增加了玩具使用的乐趣,并使玩具体现出一定的智能性,因此成为大部分电子玩具、智能玩具设计中使用的关键技术。 本文利用凌阳单片机设计一个具有语音识别功能的智能遥控小车。该设计将遥控车由传统的手动遥控改成了语音识别遥控,集成了先进的语音识别技术,加上小车的机动灵活的特点,使控制者可以通过语音控制小车实现预设动作,从而释放控制者的双手,而且小车和控制者之间还具有一定的交互功能。所以此次研究具有较强的实用性和发展前景。1 方案介绍及设计简介1.1 小车的控制要求及设计方案1.1.1 小车的控制要求论文设计的要求是要用语音来控制小车的行驶状态。根据开始语音训练录制的语音命令来控制小车的前进、倒退、左转、右转和停止;在行驶的过程中小车通过光电传感器自动检测障碍物,并且自动避开障碍物绕道行驶。在整过行驶过程中小车自动记录行驶的路程和时间。1.1.2 方案设计与论证本系统为典型的实时控制系统,易用单片机控制来实现,这里以凌阳SPCE061A单片机为主控元件,提出两种设计方案。方案一:采用凌阳SPCE061A十六位单片机,对小车的整个行驶过程进行实时监控,完成所有功能需要24个I/O口,由于凌阳SPCE061A单片机提供32个I/O口,一片即可实现所有功能,这为设计过程提供了极大方便。其主要设计思想是:小车上,安装一个霍尔元件利用单片机的IOB3外部中断判别轮胎转数的结果用以计算路程;安装三个检测障碍物的光电检测器和一个碰撞开关,利用IOB4、IOB5、IOB6用扫描的方式来控制拐弯和返回;利用单片机的IOB8-IOB11控制继电器选择小车的正、反向行驶;凌阳SPCE061A十六位单片机提供了丰富的时基信源和时基中断,给设计者以大量的选择空间,并给设计者提供精确的时基计数,其加减速通过大功率电阻消耗功率来实现。整体框架如图1,这种方案可以使程序简单,易于控制。方案二:此方案也采用凌阳SPCE061A十六位单片机,与第一种方案不同之处在于利用单片机的IOB8 、IOB9产生控制调速的脉宽和控制小车的正、反行驶,用凌阳SPCE061A十六位单片机的TimeA和TimeB很容易实现脉宽调制,这大大加强了用脉宽调制控制加减速的可选性,但对继电器要求较高,这里考虑到大众化设计,采用第一个方案。IOB5IOB6DAC2数据线IOA8-IOA14DAC1片选端IOB8-IOB11IOB4IOB8-IOB11左凌阳SPCE061A单片机 中右光电检测障碍物霍尔元件检测轮子转数用来计算路程光电检测障碍物LED显示电路音频放大电路语音输 出主控电路正反向IOB3图1 系统原理框图1.2 SPCE061A 简介在众多的单片机中,如C51、ARM、AVR等,我们选择了凌阳系列的单片机,采用的是凌阳61单片机,因为它本身具有音频处理功能,我们板子上具有音频输出,输入通道,具有麦克风,扬声器等硬件。在凌阳公司提供的开发环境中本身就具有关于音频处理的库函数以及音频压缩软件,在进行处理的时候比较容易,所以我们选择凌阳61的单片机,基本结构如下图所示:凌阳61单片机及硬件基本结构SPCE061A 是凌阳科技研发生产的性价比很高的一款十六位单片机,使用它可以非常方便灵活的实现语音的录放系统,该芯片拥有8 路10 位精度的ADC,其中一路为音频转换通道,并且内置有自动增益电路。这为实现语音录入提供了方便的硬件条件。两路10 精度的DAC,只需要外接功放(SPY0030A)即可完成语音的播放。另外凌阳十六位单片机具有易学易用的效率较高的一套指令系统和集成开发环境。在此环境中,支持标准C 语言,可以实现C 语言与凌阳汇编语言的互相调用,并且,提供了语音录放的库函数,只要了解库函数的使用,就会很容易完成语音录放,这些都为软件开发提供了方便的条件:SPCE061A 片内还集成了一个ICE(在线仿真电路)接口,使得对该芯片的编程、仿真都变得非常方便,而ICE 接口不占用芯片上的硬件资源,结合凌阳科技提供的集成开发环境(unSP IDE)用户可以利用它对芯片进行真实的仿真;而程序的下载(烧写)也是通过该接口进行下载。SPCE061A 是继nSP系列产品SPCE500A等之后凌阳科技推出的又一款16位结构的微控制器。与SPCE500A不同的是,在存储器资源方面考虑到用户的较少资源的需求以及便于程序调试等功能,SPCE061A里内嵌32K字的闪存(FLASH)。较高的处理速度使nSP能够非常容易地、快速地处理复杂的数字信号。因此,与SPCE500A相比,以nSP为核心的SPCE061A微控制器是适用于数字语音识别应用领域产品的一种最经济的选择。1.2.1 SPCE061A单片机概述随着单片机功能集成化的发展,其应用领域也逐渐地由传统的控制,扩展为控制处理、数据处理以及数字信号处理(DSP,Digital Signal Processing)等领域。凌阳的16位单片机就是为适应这种发展而设计的。它的CPU内核采用凌阳最新推出的nSP(Microcontroller and Signal Processor)16位微处理器芯片(以下简称nSP)。围绕nSP所形成的16位nSP系列单片机(以下简称nSP家族)采用的是模块式集成结构,它以nSP内核为中心集成不同规模的ROM、RAM和功能丰富的各种外设接口部件,如图2所示。nSP内核是一个通用的核结构。除此之外的其它功能模块均为可选结构,亦即这种结构可大可小或可有可无。借助这种通用结构附加可选结构的积木式的构成,便可形成各种不同系列派生产品,以适合不同的应用场合。这样做无疑会使每一种派生产品具有更强的功能和更低的成本。 nSP家族有以下特点:(1)体积小、集成度高、可靠性好且易于扩展 nSP家族把各功能部件模块化地集成在一个芯片里,内部采用总线结构,因而减少了各功能部件之间的连线,提高了其可靠性和抗干扰能力。另外,模块化的结构易于系统扩展,以适应不同用户的需求。其结构式模块图如下: nSP家族的模块式结构(2)具有较强的中断处理能力 nSP家族的中断系统支持10个中断向量及10余个中断源,适合实时应用领域。 (3)高性能价格比 nSP家族片内带有高寻址能力的ROM、静态RAM和多功能的I/O口。另外,nSP的指令系统提供具有较高运算速度的16位16位的乘法运算指令和内积运算指令,为其应用增添了DSP功能,使得nSP家族运用在复杂的数字信号处理方面既很便利,又比专用的DSP芯片廉价。 (4)功能强、效率高的指令系统 nSP指令系统的指令格式紧凑,执行迅速,并且其指令结构提供了对高级语言的支持,这可以大大缩短产品的开发时间。(5)低功耗、低电压 。nSP家族采用CMOS制造工艺,同时增加了软件激发的弱振方式、空闲方式和掉电方式,极大地降低了其功耗。另外,nSP家族的工作电压范围大,能在低电压供电时正常工作,且能用电池供电。这对于其在野外作业等领域中的应用具有特殊的意义。1.2.2 SPCE061A的介绍SPCE061A 是继nSP系列产品SPCE500A等之后凌阳科技推出的又一款16位结构的微控制器。与SPCE500A不同的是,在存储器资源方面考虑到用户的较少资源的需求以及便于程序调试等功能,SPCE061A里内嵌32K字的闪存(FLASH)。较高的处理速度使nSP能够非常容易地、快速地处理复杂的数字信号。因此,与SPCE500A相比,以nSP为核心的SPCE061A微控制器是适用于数字语音识别应用领域产品的一种最经济的选择。1.2.3 SPCE061A的结构 SPCE061A的结构1.3 SPCE061A 单片机强大的语音功能凌阳音频处理过程:自己录取一段不大于4Kb的WAV语音文件或者从原有WAV语音文件中截取一段不大于4KB的语音。然后用凌阳语音压缩工具压缩,再将压缩后的文件添加到凌阳公司提供的开发环境中,程序经过单片机处理后,语音通过喇叭播放出来。如图下图所示: 凌阳音频识别过程1.3.1 语音识别的原理首先是语音训练,然后是语音匹配,接着进行语音处理。如果匹配成功就执行相应的功能,否则重新匹配。如下图所示:语音识别系统简图1.3.2 系统的结构框图如图下图所示: 智能车系统结构框图系统组成主要包括以下两部分:SPCE061A精简开发板、语音小车控制电路板。图中的语音输入部分MIC_ IN、按键输入KEY、声音输出部分的功率放大环节等已经做到了精简开发板61板上,为我们使用提供了很大的方便。在电机的驱动方面,采用全桥驱动技术,利用四个I/O端口分为两组分别实现两个电机的正传、反转和停三态运行。1.4 语音控制小车设计要求1.4.1 功能要求语音控制小车基于SPCE061A的代表性兴趣产品,它配合61板推出,综合应用了SPCE061A的众多资源,小车采用语音识别技术,可通过语音命令对其行驶状态进行控制。1.4.2 语音控制小车的主要功能可以通过简单的I/O操作实现小车的前进、后退、左转、右转功能; 配合SPCE061A的语音特色,利用系统的语音播放和语音识别资源,实现语音控制的功能; 可以在行走过程中声控改变小车运动状态; 在超出语音控制范围时能够自动停车1.4.3 参数说明车体:双电机两轮驱动 供电:电池(四节AA:1.2V4 或1.5V4) 工作电压:DC 4V6V 工作电流:运动时约200mA1.4.4 注意事项 注意电池的正负极性,切勿装反; 长期不用请将电池取出电池盒,以免造成腐蚀; 由于小车行动比较灵活,速度比较快,在使用时一定要注意保持场地足够大,且保证不会对周围的物体造成伤害; 不要让小车长时间运行在堵转状态(堵转状态:由于小车所受阻力过大,造成小车电机加电但并不转动的现象),这样会造成很大的堵转电流,有可能会损坏小车的控制电路。2 语音识别相关技术2.1 语音识别概述语音识别系统本质上是一种模式识别系统,它的基本结构如图2-1所示,与一般模式识别系统一样。包括有特征提取、模式匹配、参考模式库等三个基本单元,一般分两个步骤。第一阶段是系统“训练”或“学习”。这一步的任务是构建参考模式库。第二阶段是“识别”或“测试”阶段。根据识别系统的类型选择能够满足要求的一种识别方法,采用语音信号处理方法分析出识别方法所需求的语音特征参数,按照相关的准则与参考模式库中的模型进行比较,通过判决得出结果。图2-1 语音识别系统的结构框图2.1.1、预处理预处理的内容很丰富,首先是A/D转换,其目的就是将麦克风录入的原始模拟语音信号采样量化成能够被程序控制和处理的数字信号。由于麦克风,A/D转化器以及传输通道的非线性响应使语音信号产生失真;另外,为了后面的频谱分析更好的工作,需克服语音信号大约每十倍频程衰减20dB的特点,在预处理当中还会对语音频谱进行加权处理。实际应用中还需要考虑的就是环境噪音的问题,如何抑制噪声,克服噪声对识别产生的影响是贯穿整个识别过程需要考虑的问题。2.1.2、特征取提经过对语音信号的预处理之后就要进行特征参数的提取,特征提取是任何一个模式识别处理问题首先要解决的问题。在语音信号的特征提取中对特征参数的要求是:(1)能有效代表语音特征,具有良好的区分性;(2)特征参数之间有良好的独立性;(3)特征参数易于计算,最好能保证语音识别的实时实现。线性预测系数是能够有效地表征语音的全极点模型参数。由它推演出的多种参数,如部分相关系数、声道面积比函数、线谱对系数以及线性预测倒谱系数等,都是可以应用的。当然还有一些鲁棒性参数,包括Mel频率倒谱系数,以及经过信道谱减法减去噪声谱的倒谱等。在语音信号的频域特征参数中,目前使用最为广泛的是线性预测倒谱系数(Linear prediction Cepstrum Coeffieient,LPCC)和美尔频率倒谱系数(Mel Frequeney Cepstral Coneients,MFCC)。MFCC在非特定人识别方面性能优越于LPCC。但求解MFCC系数需要快速傅立叶变换(FFT)、三角滤波、取对数和离散余弦变换(DCT)等过程,运算复杂,LPCC在特定人的语音识别方面也具有较好的效果,其运算量相对较小。本系统设计采用LPcc系数,本文也将主要介绍线性预测倒谱系数(LPCC)。2.1.3、识别判决语音识别过程就是根据模式匹配原则,按照一定的相似性度量法则,使未知模式与参考模式库中的某一个参考模型获得最佳匹配的过程。目前语音识别比较常用的识别方法主要有模板匹配法,以动态时间规整(Dynamic Time warp ing,DTW)为代表;随机模型法,以隐马尔可夫模型(Hidden Markov Model,HMM)为代表;基于人工神经网络(Artificial Neural Networks,ANN)的识别方法。DTW算法与HMM算法在相同环境条件下,识别效果相差不大,但是DTW所处理的数据量小,分析速度快。而神经网络识别算法程序复杂,需要大量的训练样本数据,不适用于单片机的语音识别设计。本系统设计采用DTW模板匹配法,本文也将主要介绍动态时间规整相关原理及算法。2.2 预处理及特征参数提取2.2.1、预加重处理由于语音信号的平均功率谱受声门激励和口鼻辐射的影响,它在大约80OHz以上的高频端按6dB/倍频程跌落,为此要在预处理中进行预加重。预加重的目的是提升高频部分,使信号的频谱变得平坦,以便于进行频谱分析或声道参数分析。预加重可在A/D变换前的反混叠滤波之前进行,这样不仅能够进行预加重,而且可以压缩信号的动态范围,有效地提高信噪比。同时,预加重也可在A/D变换后进行,用具有6dB倍频程的提升高频特性的预加重数字滤波器实现,它一般是一阶的,u为滤波系数H1z=1-uz-1 (2-1)加重后的信号在分析处理后,需要进行去加重处理,即将加上6dB/倍频程的下降的频率特性来还原成原来的特性。去加重函数应为预加重函数的倒数H2(z)应为式(2-1)的倒数如式(2-2)所示H2z=1/H1(z) (2-2)2.2.2、端点检测端点检测是语音识别中所遇到的第一个关键技术,它是指用数字处理技术来找出语音信号中各种段落(如:音素、音节等)的始点和终点的位置。端点检测是语音信号里看似简单实则重要的一步,端点检测的效果直接影响到系统识别的精度,错误地决定端点会导致起始音段的消失以至误判或判以一串噪声为语音信号,没有足够准确的起止点(尤其是起点判别),即使提取良好的特征参数和识别算法也很难取得好的识别效果。在实时系统中,声音指令不是连续发出的,所采集的数据并不全是声音指令信号,因此要不停的判断是否有声音指令信号进入,若声音指令信号提取的不恰当,那么所得到的声音指令信号和系统所要发出的指令信号就会有很大的出入,不但会延迟语音识别的时效性,甚至会降低对这些声音信号的识别率。对声音信号的提取,主就是确定音头、音尾的位置,常用的方法有过零率和短时距能量等几种。一般采用两级判决法,即首先用短时能量做第一次判别,然后在此基础上用短时平均过零率做第二次判别。在用短时能量做第一次判别时,为了不至于把语音能量的局部下降点错误地当作起止点,常采用双门限比较法。端点检测的过程可分为如下二步:首先,由于语音一般都存在能量较高的浊音,因此考察语音平均幅度轮廓可以设定一个较高的门限T1,语音短时能量大多数情况下都在此门限之上。这样可以粗判语音起止点位于Tl和语音平均幅度M所确定的时间间隔A,B之外。第二,根据背景噪音的平均幅度确定一个门限较低的T2,并从A点往起点方向,从B点往终点方向搜索,分别找到与门限T2相交的两个点C,D,这样就完成了第一级粗判。2.2.3加窗处理语音信号是一种非平稳信号,为了能对语音信号进行处理,我们可以假定在10ms-30ms之间语音信号是平稳的,语音频谱特性和语音特征参数恒定,因此需将语音信号划分为一个一个的短时段,每一个短时段称为一帧,为了从语音信号中切去出样本信号,就要用时间窗函数乘以原始语音信号,这种操作就称为加窗。在语音信号数字处理中常用的窗函数有矩形窗,汉宁窗和汉明窗。矩形窗W(n)=1, 0nL-10, 其他 (2-3)汉宁窗W(n)=0.51-cos2nL-1, 0nL-10, 其他 (2-4)汉明窗W(n)=0.54-0.46cos2nL-1, 0nL-10, 其他 (2-5)对语音信号的加窗函数为Qa=m=Txmw(n-m) (2-6)其中T表示信号处理方法,x(m)为语音帧序列,w(n一m)为各个语音帧上的窗函数。窗函数的选择对语音信号的短时分析影响很大,窗函数越宽对信号的平滑作用越好,窗函数的主瓣宽度要窄,旁瓣要尽可能小,使能量尽量集中在主瓣中,以抑制频谱的泄露,目前应用最为广泛的是汉明窗。2.2.4线性预测基本原理1947年维纳首次提出了线性预测分析(Linear Prediction)方法之后,线性预测就应用于许多领域中。1967年,板仓等人最先将线性预测技术应用到语音分析与合成中。目前,线性预测作为一种工具,几乎普遍地应用于语音信号处理的各个方面,是最有效和最流行的语音分析技术之一,线性预测能用极少的参数,有效正确的表现出语音信号的波形及其频谱特性,而且参数计算简单!快速,己被成功用于语音识别、合成、编码、说话人识别等方面。线性分析的基本原理将被分析的信号用模型来表示,即将信号看作是某一个模型或系统的输出。这样,就可以用模型参数来描述信号。模型的系统函数可以写成有理分式的形式:H(z)=G1+l=1qb1z-l1-i=1paiz-i (2-7)式中,系数ai,bl及增益因子G就是模型的参数,而P和q是选定的模型的阶。因而信号可以用有限数目的参数构成的模型来表示。根据上式,可得模型输入与输出之间的时域关系sn=j=1paisn-i+Gl=1qblu(n-l) (2-8)式中bl=0,上式是一个线性常系数差分方程,s(n一1)为模型的输入,s(n)为模型的输出。这说明,模型的输出是模型过去的输入,当前的输入及过去的输出的线性组合。也就是说,当设计好模型的参数后,就可以用模型的输入以及过去的信号值来估计当前的信号值。由于全极点模型容易计算,可以用全极点模型来近似,并且如果不考虑鼻音和磨擦音,语音的声道传递函数就是一个全极点模型。模型的建立实际上是由信号来估计模型参数的过程,由于信号是实际客观存在的,所此用模型表示它是不可能完全精确的,总是存在误差。因此求解模型参数是一个逼近的过程。对全极点模型: (2-9)s(n)和u(n)可用下列差分方程来表示: (2-10)P阶的线性预测器的系统函数具有如下的形式: (2-11)信号s(n)与线性预测值S(n)之间的差称为线性预测误差,用(n)表示为: (2-12)由式(2-12)可以看出预测误差序列是信号s(n)通过一个具有如下系统函数的系统产生的输出: (2-13)比较式(2-9)和式(2-13)可知,预测误差滤波器A(z)是系统H(z)逆滤波器,即: (2-14)由于给定的只有信号s(n)和一个参数未知的模型式(2-9),要想使这个模型尽可能精确地描述信号s(n),应该使(2-12)所得的预测误差在某一短时的总能量尽可能小,并在此准则下求出最佳预测系数ai。为此,定义短时平均预测误差能量: (2-15)式中sn(m)是在抽样点n附近选择的一个语音段,即sn (m)=s(n+m) (2-16)使式(2-15)中Em达到最小值是ai必定满足Enaj=0(j=1,2,p)便得到以ai为变量的线性方程组: (2-17)式中 (2-18)此线性方程组通常有唯一解,一旦解出其中的变量ai,最小预测误差能量便可由式(2-15)求得。也可以改写式(2-15),并利用式(2-18)得到另外两种形式的最小预测误差能量计算公式 (2-19)由式(2-19)计算出最小预测误差序列:(n)又称为预测残差序列En就是预测残差能量。增益因子G在所考虑的短时内应该是一个常数。根据式(2-12)和式(2-19).有: (2-20)假如所分析的信号s(n)确实符合式(2-9)的模型,那么假想的输入信号u(n)可以认为是一个单位方差的白噪声序列。如果只考虑s(n)被某一短时窗截得的部分,那么输入信号也可以是一个单位的脉冲(n)。在这两种情况下,式(2-20)中的输入信号总能量都为1,于是由式(2-20)得:G=En12 (2-21)这样直接把残差能量当作增益的平方G2,虽然只是近似的,却是很实用的,特别是当模型式(2-9)的假定是充分考虑了语音产生过程的各种因素时。预测残差序列(n)将接近于白噪声序列或占脉冲串时,用式(2-9)估算出的G及最佳线性预测系数ai来重构原信s(n)可以获得很好的效果。要使模型的假定较好地符合语音产生模型,主要有两个因素要考虑:首先是模型的阶数p要与共振峰个数吻合,其次是声门脉冲形状和口唇辐射影响的补偿,通常一对极点对应一个共振峰,10kHz采样的语音信号可取p=10,8kHz采样的语音信号可取p=8,此外为了弥补鼻音中存在的零点以及其他因素引起的偏差,通常在上述阶数的基础上再增加两个极点,即分别取p=12和p=10。关于声门脉冲形状和口唇辐射的影响,其总的趋势是使语音信号的频谱产生高频衰落现象,大约相当于每倍频程下降6dB要抵消这种影响,通常在进行LPC分析之前采用一个非常简单的一个一阶FIR滤波器1-az-1,进行预加重,也就是进行高频提升。对于考虑了上述两个因素的LPC分析,其预测残差序列近似为白噪声,并且残差能量也相当小,这表明由某一短时信号所得到的线性预测系数能较好地描述产生这一语音段的声道特性。以往的基于LPC的语音识别、语音合成、语音编码和说话人识别的大量实践都证明线性预测参数是语音信号特征表示的良好参数。2.2.5线性预测倒谱系数(LPCC)在语音识别系统中很少直接使用LPC系数,而是由LPC系数推导出参数线性预测倒谱系数LPCC。倒谱特征的实质就是将信号作适当的同态滤波,将信号中的卷积关系变为乘积关系,随之作对数处理使之化为可分离的相加成分,标准的倒谱系数计算流程需要进行FFT变换、对数操作和相位校正等步骤,运算比较复杂。在实际计算中,当序列x(n)为最小相位的情况下,可利用序列x(n)及其复倒谱c(n)的递推关系来简化运算。一般计算LPCC系数的公式如下: (2-22)其中c(n)为倒谱系数, an为预测系数,p为预测系数的阶数,n为倒谱系数的阶数。2.3 基于DTW的语音识别模板匹配法是多维模式识别系统中最常用的一种相似度计算方法,是最早用于语音识别的方法。在训练过程中,经过特征提取和特征维数的压缩,针对每个模式类各产生一个或几个模板,识别阶段将待识别模式的特征矢量与各模板进行相似度计算,然后判别它属于哪个类。这种方法采用某种非线性时间对准算法,解决了发音长短不一的问题常用的是基于最近邻原则的动态时间规整方法,简称DTW,是效果最好的一种非线性时间规整模板匹配算法,在孤立词语音识别中获得了成功的应用。DTW就是将发音在时间轴进行弯曲,以使两次发音能够更好的匹配。假设己存入的参考模板为:R(1,2M),测试模板为:T(1,2N),其相似度用距离DT,R来表示,假设n和m分别是T和R中任意选择的帧号,DT(n),R(m)表示两帧之间的距离。在DTW算法中通常采用欧式距离,距离越小相似度越高。若N=M则可以直接计算,否则要考虑将T(n),R(m)对齐,对齐采用线性扩张的方法,如果NXb的情况此时匹配的路径三段为(1,Xb),(Xb+1,Xa),(Xa+1,N)对于x坐标轴每一进一帧,虽然所要比较的Y坐标轴上的帧数不同,但规整特性是一致的,累积距离的更新如下式所示: (2-28)其中D和d分别表示累积距离和帧匹配距离,由于X轴上每前进一帧,只需要用到前一列的累积距离,所以只需要两个列矢量D和d分别保存前一列的累积距离和计算当前的累积距离,而不用保存整个距离矩阵。每前进一帧都进行更新,即按上式,利用前一列的累积距离D和当前列的所有帧匹配距离d(x,y),求出当前帧的累积距离,保存于矢量d中,再把新的距离d赋值给D,作为新的累积距离,供下一列使用。2.3.1、偶然训练法当待识别词表不太大且系统为特定人设计时,可以采用一种简单的多模板训练方法。即每个词的每一遍读音形成一个模板,在识别时,待识别矢量序列用DTW算法分别求得与每个模扳的累计失真,然后判别它属于哪一个。但由于语音的偶然性很大,且训练时读音可能存在错误,比如不正确的音联、错误发音亦得不到纠正,故这种方法形成的模板鲁棒性不好,这也是这种方法被称为偶然训练法的原因。2.3.2、鲁棒性训练法鲁棒性训练是一种串行训练法。将每一词重复说多遍直到得到一对一致性较好的特征矢量序列。最终得到的模板是在一致性较好的特征矢量序列对在沿DTW的路径上求平均。其训练过程可描述如下:假定只考虑某个特定的词。令X1=X11,X12,X1r1为第一遍的特征矢量序列,X2=X21,X22,X2r1为另一遍的特征矢量序列,通过DTW算法计算这两个模板的失真d(xl,x2),如果d(xl,x2)小于某个门限,便认为这两遍特征矢量序列一致性较好,便可求xl和x2的时间弯折平均而得到一个新模板Y=Y1,Y2,Yn具体求法如下:令T为DTW算法的最优路径长度,则通过2.3.1节的回溯,最终得到最优路径序列。 (2-29)新模板Y可通过下式求得: (2-30)这样得到的模板显然比偶然训练法可靠,但如果每个词的模板由这样的一个模板表示,往往还显得不够充分。当识别的任务针对不特定人时,这种问题的严重性更为突出。2.3.3非特定人识别任务的模板训练算法一聚类对于非特定人语音识别,要想获得较高的识别率,就须对多组训练数据进行聚类,以获得可靠的案板参数最初的孤立词识别采用人工干预的聚类方法,这些方法尽管有效,但由于人工干预的繁琐工作,阻碍其广泛应用。为了解决这个问题,人们提出过一系列的聚类算法。这些聚类算法与常规的模式聚类方法的主要不同点是:语音识别模板的聚类,针对的是有时序关系的特征序列,而不是维数固定的模式,训练方法复杂,主要用于非特定人的语音识别。2.4特征参数的提取要进行语音的训练、识别,重要的一步就是进行特征参数的提取,特征参数的提取一般分为预加重处理、分帧、加窗、自相关系数的计算、基于Durbin算法的LPC系数的推导,LPCC系数的递推等步骤,计算出的LPCC系数即为所求的特征参数。2.4.1预加重处理为更好的还原语音信号,要对采集的语音信号进行预加重,通常u取0.92一0.98之间,本文取为0.9375,因而预加重后的信号 (4-2)在单片机内可运算为 (4-3)而Sn-1/16可通过数据移位实现,整个式子避免了浮点运算,乘法和除法运算,在不影响数据精度的情况下有效地提高了数据处理速度。2.4.2分帧和加窗处理语音信号是瞬时变化的,但在ZOms左右是相对稳定的,而设定的采样频率为8K,所以对预处理后的语音信号s(n)以192点为一帧进行处理,帧移为96点。为了避免矩形窗化时对LPC系数在端点处产生误差,函数采用汉明窗。即: (4-4)其中: (4-5)如上式,汉明窗要进行一次浮点数除法运算2n /(N一l),一次三角函数运算,一次浮点数乘法0.46cos2nN-1,一次浮点数减法才能求得w(n),执行加窗时还要进行一次浮点数乘法运算。处理一个加窗数据要200个左右的时钟周期,约4us,对一帧数据加完窗要约1ms,(CSOSIF12O的MACO乘法累加器只能完成整数与整数,或纯小数与纯小数的乘法运算,无法用于浮点数的运算),后面还有大量的自相关,LPC,LPCC,欧式距离,DTW等复杂的乘除运算,如果直接运算5s内也很难算完一次识别。所以从加窗运算开始,为利用MACO乘法器,提高运算的速度,对数据都进行了处理,在尽可能减小对精度影响的情况下对数据位数进行了取舍。汉明窗的表格化处理,通过C语言对汉明窗先进行运算,存储在FLASH中存为固定的数据表格,且汉明窗为对称窗只需存储%个数据即可,但如果存储数据仍为浮点数,则无法使用MACO运算,所以采取了对窗函数乘以32

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论