基于单片机的智能语音识别系统设计毕业设计.docx
《基于单片机的智能语音识别系统设计毕业设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的智能语音识别系统设计毕业设计.docx(42页珍藏版)》请在冰豆网上搜索。
基于单片机的智能语音识别系统设计毕业设计
摘要
近几年来,智能化和自动化技术在玩具制造领域中越来越被关注。
本文介绍一种智能化小车控制系统的设计——语音控制小车。
语音控制小车是基于SPCE061A的代表性兴趣产品,它配合61板推出,综合应用了SPCE061A的众多资源,小车采用语音识别技术,可通过语音命令对其行驶状态进行控制。
首先介绍了SPCE061A的主要性能及其引脚的功能;接着完成了电源电路、复位电路、键盘电路、音频输入电路,音频输出电路和无线控制电路等硬件功能模块的设计。
软件设计模块能实现智能小车的前进、后退、转向、停止、避障、表演动作以及循线等功能。
测试表明,在环境背景噪音不太大,控制者的发音清晰的前提下,语音控制小车的语音识别系统能对特定的语音指令做出智能反应,做出预想中的有限的动作
关键词:
spec061a语音识别驱动电路声控小车智能反应
Abstract
Inrecentyears,Intelligentandautomationtechnologyinthetoymanufacturehavebeenpaidmoreandmoreattention.Introduceanintelligentvehiclecontrolsystemdesign.SPCE061Aprogramthesystemtosingle-chip,basedonimplementationofthecar'svoicecontrol,Thispaperintroducesthehardwaresub-systemdesignandimplementation.TheSPCE061A'smaincharactersandpinfunctionareintroducedfirstly.Completedthepowercircuit,resetcircuit,keyboardcircuitry,audioinputcircuits,audiooutputcircuitandcontrolcircuitofwirelesshardwaresuchasthedesignoffunctionmodules.Softwaredesignmodulecanachievesmartcarforward,backward,turn,stop,obstacleavoidance,performingactions,aswellason-linefunctions.Testshowedthatthebackgroundnoiseintheenvironmentisnottoogreat,controlpersonsunderthepremiseofclearpronunciation,voicecontrolcarspeechrecognitionsystemsforspecificvoicecommandstomakeintelligentreaction,limitedtothedesiredaction.
Keywords:
spec061a、voicerecogniton、Drivingcircuit、
Voicecontroldolly、intelirentresponse
前言
语音识别技术是近年来十分活跃的研究领域。
语音识别系统的实用化研究是语音识别研究的一个主要方向。
以玩具市场为例,具有高科技含量的电子玩具、智能玩具发展迅猛,电子互动式、智能化玩具已经成为玩具行业发展的主流。
我国是玩具生产和出口大国,但在高科技玩具的发展方面和国外的差距很大,因此,及时投入精力广泛开展这方面的研究,无论对技术创新应用,还是社会经济发展,都有巨大的现实意义。
与机器进行语音交流,让机器明白你说什么,这是人们长期以来梦寐以求的事情。
语音识别技术就是让机器通过识别和理解过程把语音信号转变为相应的文本或命令的高技术。
近二十年来,语音识别技术取得显著进步,开始从实验室走向市场。
语音识别功能大大增加了玩具使用的乐趣,并使玩具体现出一定的智能性,因此成为大部分电子玩具、智能玩具设计中使用的关键技术。
本文利用凌阳单片机设计一个具有语音识别功能的智能遥控小车。
该设计将遥控车由传统的手动遥控改成了语音识别遥控,集成了先进的语音识别技术,加上小车的机动灵活的特点,使控制者可以通过语音控制小车实现预设动作,从而释放控制者的双手,而且小车和控制者之间还具有一定的交互功能。
所以此次研究具有较强的实用性和发展前景。
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很容易实现脉宽调制,这大大加强了用脉宽调制控制加减速的可选性,但对继电器要求较高,这里考虑到大众化设计,采用第一个方案。
图1系统原理框图
1.2SPCE061A简介
在众多的单片机中,如C51、ARM、AVR等,我们选择了凌阳系列的单片机,采用的是凌阳61单片机,因为它本身具有音频处理功能,我们板子上具有音频输出,输入通道,具有麦克风,扬声器等硬件。
在凌阳公司提供的开发环境中本身就具有关于音频处理的库函数以及音频压缩软件,在进行处理的时候比较容易,所以我们选择凌阳61的单片机,
基本结构如下图所示:
凌阳61单片机及硬件基本结构
SPCE061A是凌阳科技研发生产的性价比很高的一款十六位单片机,使用它可以非常方便灵活的实现语音的录放系统,该芯片拥有8路10位精度的ADC,其中一路为音频转换通道,并且内置有自动增益电路。
这为实现语音录入提供了方便的硬件条件。
两路10精度的DAC,只需要外接功放(SPY0030A)即可完成语音的播放。
另外凌阳十六位单片机具有易学易用的效率较高的一套指令系统和集成开发环境。
在此环境中,支持标准C语言,可以实现C语言与凌阳汇编语言的互相调用,并且,提供了语音录放的库函数,只要了解库函数的使用,就会很容易完成语音录放,这些都为软件开发提供了方便的条件:
SPCE061A片内还集成了一个ICE(在线仿真电路)接口,使得对该芯片的编程、仿真都变得非常方便,而ICE接口不占用芯片上的硬件资源,结合凌阳科技提供的集成开发环境(unSPIDE)用户可以利用它对芯片进行真实的仿真;而程序的下载(烧写)也是通过该接口进行下载。
SPCE061A是继μ’nSP™系列产品SPCE500A等之后凌阳科技推出的又一款16位结构的微控制器。
与SPCE500A不同的是,在存储器资源方面考虑到用户的较少资源的需求以及便于程序调试等功能,SPCE061A里内嵌32K字的闪存(FLASH)。
较高的处理速度使μ’nSP™能够非常容易地、快速地处理复杂的数字信号。
因此,与SPCE500A相比,以μ’nSP™为核心的SPCE061A微控制器是适用于数字语音识别应用领域产品的一种最经济的选择。
1.2.1SPCE061A单片机概述
随着单片机功能集成化的发展,其应用领域也逐渐地由传统的控制,扩展为控制处理、数据处理以及数字信号处理(DSP,DigitalSignalProcessing)等领域。
凌阳的16位单片机就是为适应这种发展而设计的。
它的CPU内核采用凌阳最新推出的μ’nSP™(MicrocontrollerandSignalProcessor)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.2SPCE061A的介绍
SPCE061A是继μ’nSP™系列产品SPCE500A等之后凌阳科技推出的又一款16位结构的微控制器。
与SPCE500A不同的是,在存储器资源方面考虑到用户的较少资源的需求以及便于程序调试等功能,SPCE061A里内嵌32K字的闪存(FLASH)。
较高的处理速度使μ’nSP™能够非常容易地、快速地处理复杂的数字信号。
因此,与SPCE500A相比,以μ’nSP™为核心的SPCE061A微控制器是适用于数字语音识别应用领域产品的一种最经济的选择。
1.2.3SPCE061A的结构
SPCE061A的结构
1.3SPCE061A单片机强大的语音功能
凌阳音频处理过程:
自己录取一段不大于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.2V×4或1.5V×4)
工作电压:
DC4V~6V
工作电流:
运动时约200mA
1.4.4注意事项
注意电池的正负极性,切勿装反;
长期不用请将电池取出电池盒,以免造成腐蚀;
由于小车行动比较灵活,速度比较快,在使用时一定要注意保持场地足够大,且保证不会对周围的物体造成伤害;
不要让小车长时间运行在堵转状态(堵转状态:
由于小车所受阻力过大,造成小车电机加电但并不转动的现象),这样会造成很大的堵转电流,有可能会损坏小车的控制电路。
2电路设计及程序设计
2.1电路设计基础知识
(1)二极管:
英文是diode。
二极管的正、负二个端子(如图8);正端A称为阳极,负端K称为阴极。
电流只能从阳极向阴极方向移动。
一些初学者容易产生这样一种错误认识:
“半导体的一‘半’是一半的‘半’;面二极管也是只有一‘半’电流流动(这是错误的),所有二极管就是半导体”。
其实二极管与半导体是完全不同的东西。
我们只能说二极管是由半导体组成的器件。
半导体无论那个方向都能流动电
流。
二极管电子流动图
(2)三极管:
三极管在电子电路中组成震荡电路、放大电路。
①已知型号和管脚排列的三极管,可按下述方法来判断其性能好坏
(a)测量极间电阻。
将万用表置于R×100或R×1k挡,按照红、黑表笔的六种不同接法进行测试。
其中,发射结和集电结的正向电阻值比较低,其他四种接法测得的电阻值都很高,约为几百千欧至无穷大。
但不管是低阻还是高阻,硅材料三极管的极间电阻要比锗材料三极管的极间电阻大得多。
(b)三极管的穿透电流ICEO的数值近似等于管子的倍数β和集电结的反向电流ICBO的乘积。
ICBO随着环境温度的升高而增长很快,ICBO的增加必然造成ICEO的增大。
而ICEO的增大将直接影响管子工作的稳定性,所以在使用中应尽量选用ICEO小的管子。
通过用万用表电阻直接测量三极管e-c极之间的电阻方法,可间接估计ICEO的大小,具体方法如下:
万用表电阻的量程一般选用R×100或R×1k挡,对于PNP管,黑表管接e极,红表笔接c极,对于NPN型三极管,黑表笔接c极,红表笔接e极。
要求测得的电阻越大越好。
e-c间的阻值越大,说明管子的ICEO越小;反之,所测阻值越小,说明被测管的ICEO越大。
一般说来,中、小功率硅管、锗材料低频管,其阻值应分别在几百千欧、几十千欧及十几千欧以上,如果阻值很小或测试时万用表指针来回晃动,则表明ICEO很大,管子的性能不稳定。
(c)测量放大能力(β)。
目前有些型号的万用表具有测量三极管hFE的刻度线及其测试插座,可以很方便地测量三极管的放大倍数。
先将万用表功能开关拨至挡,量程开关拨到ADJ位置,把红、黑表笔短接,调整调零旋钮,使万用表指针指示为零,然后将量程开关拨到hFE位置,并使两短接的表笔分开,把被测三极管插入测试插座,即可从hFE刻度线上读出管子的放大倍数。
另外:
有此型号的中、小功率三极管,生产厂家直接在其管壳顶部标示出不同色点来表明管子的放大倍数β值,其颜色和β值的对应关系如表所示,但要注意,各厂家所用色标并不一定完全相同。
②检测判别电极
(a)判定基极。
用万用表R×100或R×1k挡测量三极管三个电极中每两个极之间的正、反向电阻值。
当用第一根表笔接某一电极,而第二表笔先后接触另外两个电极均测得低阻值时,则第一根表笔所接的那个电极即为基极b。
这时,要注意万用表表笔的极性,如果红表笔接的是基极b。
黑表笔分别接在其他两极时,测得的阻值都较小,则可判定被测三极管为PNP型管;如果黑表笔接的是基极b,红表笔分别接触其他两极时,测得的阻值较小,则被测三极管为NPN型管。
(b)判定集电极c和发射极e。
(以PNP为例)将万用表置于R×100或R×1k挡,红表笔基极b,用黑表笔分别接触另外两个管脚时,所测得的两个电阻值会是一个大一些,一个小一些。
在阻值小的一次测量中,黑表笔所接管脚为集电极;在阻值较大的一次测量中,黑表笔所接管脚为发射极。
③判别高频管与低频管
高频管的截止频率大于3MHz,而低频管的截止频率则小于3MHz,一般情况下,二者是不能互换的。
④在路电压检测判断法
在实际应用中、小功率三极管多直接焊接在印刷电路板上,由于元件的安装密度大,拆卸比较麻烦,所以在检测时常常通过用万用表直流电压挡,去测量被测三极管各引脚的电压值,来推断其工作是否正常,进而判断其好坏。
2.2电路方框图及说明
系统原理框图如图1所示。
主控元件采用凌阳SPCE061A单片机,属于凌阳u’nSP.系列产品的一个16位结构的微控制器。
在存储器资源方面考虑到用户的较少资源的需求以及便于程序调试等功能,SPCE061A里只内嵌32K字的闪存(FLASH),但用在此系统上已经绰绰有余。
较高的处理速度使u’nSP.能够非常容易地、快速地处理复杂的数字信号。
因此以u’nSP.为核心的SPCE061A微控制器也适用在数字语音识别应用领域。
SPCE061A在2.6V~3.6V工作电压范围内的工作速度范围为0.32MHz~49.152MHz,较高的工作速度使其应用领域更加拓宽。
2K字SRAM和32K字FLASH仅占一页存储空间,32位可编程的多功能I/O端口;两个16位定时器/计数器;32768Hz实时时钟;低电压复位/监测功能;8通道10位模-数转换输入功能并具有内置自动增益控制功能的麦克风输入方式;双通道10位DAC方式的音频输出功能,这就为本系统的特定人辨识和语音播报打下了基础。
2.3各部分电路设计
2.3.1电机的选择
市场上的电机种类很多,有各自的优缺点。
电机类别如表2:
电动机
交直流两用电动机
步进电动机
交流电机
交流伺服电动机
同步电机
异步电机
直流电机
电磁式直流电动机
他励
并励
串励
复励
永磁直流电动机
直流伺服电动机
直流力矩电动机
无刷直流电动机
开关磁阻电动机
小车控制分为:
前进、倒退、左转、右转和停止。
如果考虑用单向电机来控制,将不能使电机进行反方向转动,也就不能实现自动左转、右转。
再考虑到经济,实惠,决定用直流伺服电动机。
2.3.2继电器驱动电路的设计
由于单片机I/O口提供的电流太小,不能直接驱动继电器工作。
在这里采用8050NPN管来提供一个开关电压,实现I/O口对继电器的驱动;用IN4007去掉继电器断开时线圈产生的反向电流,保护8050NPN管不被损坏。
继电器驱动电路如下图所示。
继电器驱动电路
2.3.3行驶状态控制电路设计
如图13所示为行使状态控制电路,整个小车的行驶状态由两个电机MOTORA和MOTORB来控制;MOTORA控制小车的左边两个轮子,MOTORB控制小车右边两个轮子。
具体控制如表4所示
行驶状态控制电路
表4行驶状态控制表
行驶状态
IOB08
IOB09
IOB10
IOB11
地址
继电器状态
前进
1
0
1
0
0x00A0
RE1,RE3闭合
倒退
0
1
0
1
0x0050
RE2,RE4闭合
左转
0
1
1
0
0x0060
RE2,RE3闭合
右转
1
0
0
1
0x0090
RE1,RE4闭合
注:
图中的两个电机完全相同,这样能更好地保持小车的稳定性,在前进上两个电机能在加减速度上完全达到同步,不会走S路线,如果考虑用一个电机控制转向,而另外一个控制速度和返回的话,由于控制转向的电机电路未接入分压电阻,当速度不处于最快速度时,小车前进不能走直线,而是向一边偏,导致路线不对。
2.3.4麦克录音输入及AGC电路
麦克风电路如图16所示。
凌阳的SPCE061A是16位单片机,具有DSP功能,有很强的信息处理能力,最高时钟可达到49M,具备运算速度高的优势等等,这为语音的播放、录放、合成及辨识提供了条件。
本系统接入MIC电路如下图所示,MIC为录制语音辨识命令服务。
麦克录音输入及AGC电路
下图是MIC录放流程图。
MIC录放流程图
下图是简化的语音识别原理图,其中实线部分成为训练模块,虚线部分为识别模块。
辨认特定的使用者即特定语者(SpeakerDependent,SD)模式,使用者可针对特定语者辨认词汇(可由使用者自行定义,如人名声控拨号),即在启动小车前,系统将会提示输入语音命令作简单快速的训练纪录,在这里输入“启动”“停止”“返回”和“模式切换”四个语音命令,通过使用者的声音特性来加以辨认。
随着技术的成熟,进入语音适应阶段SA(speakeradaptation),使用者只要对于语音辨识核心,经过一段时间的口音训练后,即可拥有不错的辨识率。
语音识别原理图
2.3.5
语音播报电路
音频部分的原理图如下所示,在下图中可以看到两个跳线,其作用在于可以测量DAC的输出波形;另外拔掉跳线,可以断开DAC到喇叭放大的通路,使得DAC通道处于开路状态。
这样便于用DAC做其他用途,用户可以用过这个跳线来加入自己的外围电路。
音频原理及放大电路图
凌阳音频压缩算法根据不同的压缩比分为以下几种:
SACM-A2000:
压缩比为8:
1,8:
1.25,8:
1.5
SACM-S480:
压缩比为80:
3,80:
4.5
SACM-S240:
压缩比为80:
1.5
按音质排序:
A2000>S480>S240
用凌阳CompressTool事先把所需要的语音信号录制好,本系统共包括十多个语音资源,整个语音信号经凌阳SACM_S480压缩算法压缩只占有13.2K存储空间,SPCE061A单片机具有32k闪存,使用内部flash即可满足要求。
凌阳SPCE061A单片机自带双通道DAC音频输出,DAC1、DAC2转换输出的模拟量电流信号分别通过AUD1和AUD2管脚输出,DAC输出为电流型输出,所以DAC输出经过SPY0030音频放大,以驱动喇叭放音,放大电路如图19(只列出了DAC1,DAC2类似),这为单片机的音频设计提供了极大方便。
在它们后面接一个简单的音频放大电路和喇叭即可实现语音播报功能,音频的具体功能主要通过程