资源描述:
《基于语音辨识自动数学出题系统--系统功能控制【毕业论文】》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
本科毕业设计(20届)基于语音辨识自动数学出题系统--系统功能控制 摘要单片机技术日渐成熟,由于它体积小,能耗低,性价比高的特点,其应用范围也日渐广泛,诸如生产设备的控制,高端电子设备处理芯片,日常生活用品的一些简单面板控制等等都与单片机相关。近年来,随着我国国民素质的不断提高,家长们越来越重视孩子的教育问题。本出题系统适用于少年儿童进行算术训练来提高他们的计算能力。当然,在此基础上,通过丰富出题方式,改进考核模式,激发孩子们的学习积极性,提高他们的反应力及心算的能力。对于孩子们来说,出题器更应该是一个玩具而不是一个加重他们负担的学习工具。因此,它应该具有友好的界面和游戏般的测试模式,让孩子们开开心心地学习。这才是出题器应有的作用。虽然不可能超越高端电子产品,但是至少也能体现它应有的价值。本系统能根据用户的不同设置给出不同级别、不同运算法则的算术题,同时进行语音播报,待用户输入答案,并按下确定键之后,系统对答案进行纠错,播报相应的语音,而且系统还提供了显示答案的功能,另外,本系统还集成了语音识别模块,用户可以通过设定相应操作的语音命令,然后通过语音命令来进行部分功能操作。关键词:SPCE061A单片机;语音识别;语音播报 AbstractMicroprogrammedControlUnit(MCU)technologymatures,becauseithastheadvantagesofsmallsize,lowpowerconsumption,cost-effectivefeatures.Ithasbeenusedinincreasinglywiderange,suchascontrolofproductionequipment,high-endelectronicschip,thesimplecontrolpanelofourdailynecessitiesdigitalequipment,etc.Theyareassociatedwithit.Withournationalqualityenhancesunceasingly,parentspaymoreandmoreattentiontochildren'seducationinrecentyears.Thissystemissuitableforthechildrentoarithmetictraining,thenimprovetheircomputingability.Onthisbasis,throughrichthewayofputtingquestions,improvetheassessmentmode,thustoinspirechildren'sstudyenthusiasm,andimprovetheirreactandmentalability.Forchildren,thesystemshouldbeatoyratherthanatoolwhichenhancestheirburden.Therefore,itshouldhavefriendlyinterface,testmodeshouldlikegames,soastoletchildrenlearnhappily.Itshouldplayitsduerole.Althoughitisimpossibletosurpasshigh-endelectronicsproducts,buttheycanreflectitsvalueatleast.Accordingtodifferentsetsofusersthesystemcanputquestionsoutindifferentlevelsanddifferentarithmeticoperator,simultaneouslyspeechbroadcast.Waitingusertoinputanswers,andpressokbutton,thensystemwillchecktheuser'sanswertotherightanswer,andbroadcaststhecorrespondingspeech.Systemalsoprovidesthefunctiondisplaytherightanswer.Inaddition,thesystemhasintegratedvoicerecognitionmodule,usercansetthecorrespondingoperationofvoicecommands.Thenusevoicecommandstopartialfunctionaloperation.KeyWords:SPCE061AMCU;SpeechRecognition;Speechbroadcast 目录1 引言-1-1.1语音识别与单片机-1-1.1.1语音识别技术-1-1.1.2单片机技术-1-1.2数学出题器的发展概况-2-1.3本文研究的主要内容-2-2 总体设计-3-2.1数学出题器的主要功能-3-2.2基于不同控制芯片的数学出题器的设计-3-2.2.1基于DSP芯片的设计-3-2.2.2基于专业语音芯片的设计-4-2.2.3基于凌阳16位单片机芯片的设计-4-2.3各种芯片方案优缺点分析-5-2.4芯片方案选择-6-3 硬件设计-7-3.1SPCE061A芯片结构-7-3.2SPCE061A外围电路-7-3.2.1晶振电路与复位电路-7-3.2.2语音输出模块-9-3.2.3语音输入模块-10-3.34×4键盘简介-11-3.4显示模块-12-3.4.1LCD1602液晶简介-12-3.4.2SPG12063YS2液晶简介-13-3.5外部存储器模块-14-4 软件设计-16-4.1软件开发工具-16-4.2软件流程图-17-4.2.1主程序-17-4.2.2按键识别子程序-18-4.2.3语音识别子程序-19-4.2.4操作子程序-20-5 制作和调试-24-5.1硬件制作和调试-24-5.2软件的调试-25-6 结论-26-致谢-27-参考文献-28-附录1系统实物图-29-附录2系统原理图-30-附录3毕业设计作品的说明-31- 1 引言1.1语音识别与单片机1.1.1语音识别技术现在,随着科技的不断进步,生活品质的不断提高,人们对于各种技术的要求也在不断增加。这里涉及到很多方面,比如,在很多情况下,不一定很适合用我们的手去控制一台设备,但是普通操作无法让人能同时做两件事,当你专注于一件事时,另一件就得不到很好的关注,这问题最显著的体现在驾车方面[1]。语音识别技术正是解决该问题的最有效的方式。语音识别技术是一门交叉性的学科,它涉及到多门学科,因此具有一定的难度,简单的说,语音识别技术就是通过微处理器的处理、识别,把语音信号转变成相应的文本或命令的技术。语音的处理和识别过程与人对语音的处理和识别基本上是一致的,如今基于统计模式识别的基本理论是主流的语音识别技术。以上是语音识别技术的概念。当然,随着技术的不断进步,该技术的作用也不会仅仅只局限与当前的运用,尤其是现代计算机、通信等技术的逐步融合,传统的通信网络和计算机网络的基础上,语音识别技术定会有更加广泛的应用[2]。1.1.2单片机技术除了语音识别技术,单片机也是一个这个时代的人们不能缺少的东西。即使你从来没有发现过它的存在,但是你的生活离不开它。各种仪表器件,嵌入式系统控制,机器人控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,车辆的安全保障系统,各种各样的电子产品和玩具等等,这些都需要用到单片机。因为其具有体积小、功耗低、性价比高、使用方便等优点而在各方面的应用中拥有得天独厚的优势。单片机也一直都在进步,可处理的数据字长也越来越多,处理速度越来越快,功耗也越来越小。因此,基于单片机的系统还是有着一定的开发前景。本课题采用的是凌阳16位SPCE061A单片机[3] 。它除了具有一般微处理器所具备的功能外,还具有很强的DSP运算能力,并且它工作电压低的同时,还能以较高的系统工作频率工作,因此能使单片机可以快速处理复杂的数字语音信号。片内集成了具有自动增益控制功能的麦克风输入方式以及DAC音频输出功能,只需要通过一些简单的外围电路就能使用,另外,凌阳公司还提供强大的集成开发环境,其本身包含丰富的C函数库和语音处理函数库,因此非常适合数字语音和语音识别产品的开发。1.2数学出题器的发展概况数学出题器本身并不是一个新生的事物,常应用于少年儿童的早教和基础算术学习提高方面。对少年儿童而言,它是学习工具,也是一个玩具,他们能从答题中温习知识,锻炼大脑的反应速度,最重要的是能从答题中得到信心和快乐,属于一种寓教于乐的教学方式,因为有乐趣,儿童会更加愿意主动去使用它,在快乐中学习。所以,数学出题器的发展应从出题方式,系统附加功能,优化界面和外观等方面努力,从而提高其趣味性。数学出题器更应该是一个玩具而不是一个加重他们负担的学习工具,它应该具有友好的界面和游戏般的测试模式,让孩子们开开心心地学习,这才是它应有的作用。虽然不可能超越高端电子产品,但是至少要体现它应有的价值。1.3本文研究的主要内容本文主要研究的是基于语音辨识自动数学出题系统,它是一个基于16位凌阳单片机的自动算术出题器,并且能通过语音命令对系统进行操作[4][5]。本系统主要有以下模块:单片机控制模块、键盘模块、显示模块、语音播放模块、语音识别模块。本系统的主要功能:用户通过按出题键或使用相应的语音命令,系统自动更具用户先前的设定出题,并进行语音播报,然后用户可以通过数字键输入答案,也可使用答案键或相应语音命令直接获取答案,亦可按确定按钮进行答案校对。 2 总体设计2.1数学出题器的主要功能该数学出题器主要是具备适合儿童使用的自动出题功能,该出题功能拥有多个级别,不同运算法则两个出题规则,也可进行题目的语音播报,显示答案,校对答案,删除已输入内容等功能,如若时间充裕,还可添加其他功能,以丰富系统。此外,该出题器能根据语音识别出题,调整难度,调整预算法则,显示答案等。2.2基于不同控制芯片的数学出题器的设计2.2.1基于DSP芯片的设计数字信号处理芯片(DSP)是一种能进行实时处理数字信号的微处理器件,它具有体积小,速度快,功耗低,稳定性好,精度高,可嵌入性等优点,它可以满足实时的识别和处理语音信号[6],框图如图2-1。图2-1基于DSP芯片的系统总体框图 语音模块工作是语音信号通过ADC得到数字信号,然后送入DPS芯片,芯片将其与FLASH内存放的训练样本进行比对,得出结果,执行相应的操作。SDRAM用于程序的执行和数据暂存。其他模块工作是按键盘输入指令给DSP芯片,DSP芯片根据用户需求出题,在显示端显示相应的结果,语音模块可以代替部分键盘操作。2.2.2基于专业语音芯片的设计RSC-4x系列是新一代嵌入是语音识别处理器集成电路,其特点为外围电路简单,集成度高,功耗低,无掉电分险,使用方便等优点。由RSC-4x系列芯片以及少量的元器件作为外部电路即可构成完整的语音识别系统[7],如图2-2。图2-2基于语音芯片的系统总体框图RSC-4x系列芯片支持SENSORY7.0语音识别技术,该技术是该系列芯片硬件电路得到了充分利用,其硬件包括一个带双向直接处理器的向量处理器、10位DA转换器、16位AD转换器、主晶振锁相环、带自动增益控制的麦克风前置放大器、低电池干扰的PWM扬声器驱动电路、两个独立的计时器加单独的看门狗电路、4个比较器输入及24个I/O口。其识别微处理器内嵌入一套先进的精确识别算术算法,增强了识别率。外部存储器总线为20位地址线和8位数据线,具有强大的外部拓展能力,也无需通过ROM来保证代码的安全,还提高了识别速率,降低了干扰[8]。2.2.3基于凌阳16位单片机芯片的设计凌阳16位单片机芯片是有凌阳科技公司生成的一款极具性价比的芯片,它属于系统级芯片,而且用户使用方便,外围电路简单,很容易就能实现语音信号的输入和输出功能,尤其是在语音识别方面,它有现成的函数可以直接调用[9]。另外其CPU最高时钟可达49 MHz,速度之快,可想而知。另外,该款芯片还具有体积小、集成度高、易扩展、可靠性高、功耗低、中断处理能力强等特点,能够很方便地完成普通单片机的功能,尤其适应于数字语音拨报和识别等应用领域,是数字语音识别与语音信号处理的理想产品。基于凌阳16位单片机的系统总体框图如下图2-3。该系统主要是由SPCE061A单片机及必要的外部电路,语音识别模块,显示模块,语音输出模块组成,外围电路比较简单。图2-3基于凌阳单片机的系统总体框图2.3各种芯片方案优缺点分析基于DSP芯片设计:优点:运算速度快,集成度高,稳定性好,精度高,具可编程性,可嵌入性;缺点:价格较一般单片机贵,高频时钟会产生高频干扰,功率消耗较大,DSP技术更新过快,开发和调试工具不尽完善。基于专业语音芯片设计:优点:价格便宜,集成度高,功耗低,外围电路简单,无掉电分险,使用方便;缺点:作为批量生产的产品芯片,软件维护难度比较大。基于凌阳16位单片机芯片的设计:优点: 体积小、集成度高、易扩展、可靠性高、功耗低、中断处理能力强,具备强大的内置库函数,编程便捷,价格便宜,善于处理语音信号;缺点:扩展性比较一般。2.4芯片方案选择由于凌阳16位单片机具有强大的语音处理能力和丰富的库函数,并且有大量的例程,如此能极大的减少系统实现的难度,所以本系统选用凌阳16位单片机SPCE061A作为系统控制芯片。 3 硬件设计3.1SPCE061A芯片结构SPCE061A型单片机组成和内部结构,如图3-1所示。其主要功能模块有并行口I/O端口、模/数转换ADC、数/模转换DAC、存储器RAM&FLASH、定时器/计数器T/C(脉宽调制输出PWM)、WatchDog、异步串行通信口UART、指令寄存器IR、设备串行口SIO、低电压检测LVD(低电压复位)等。图3-2为芯片的最小系统[10]。图3-1SPCE061A芯片结构图并行I/OADCDACT/CSIOIRµ’nSPTM内核低电压检测&低电压复位RAM&FLASH串行口WatchDogPWM输出3.2SPCE061A外围电路3.2.1晶振电路与复位电路1晶振电路16位单片机晶振电路采用晶体振荡器,外接晶振采用32768Hz,图3-3为晶振电路的原理图。 图3-2SPCE061A最小系统图图3-3晶振电路原理图2锁相环振荡器及复位电路(1)锁相环振荡器PLL电路的作用是将系统提供的实时时钟的基频(32768Hz)进行倍频,系统默认的PLL自激振荡频率为24.576MHz。系统时钟的信号源为PLL振荡器,原理图如图3-4。(2)复位电路 复位是对芯片内部的硬件初始化,如图3-5。芯片本身也具有上电复位功能,即通电就自动复位,另外,还具有外部复位电路,即在引脚6上外加一个低电平就可令其复位。图3-4琐相环电路图图3-5复位电路图3.2.2语音输出模块SPCE061A内置2路10位精度的DAC,只需要外接功放电路即可完成语音的播放。图3-6是使用凌阳公司生产的SPY0030作为功放的音频输出电路图。它的详细说明可以参见SPY0030datasheet。图3-7使用的是LM386作为功放。和LM386相比,SPY0030还具有下述优势的,比如LM386工作电压需在4V以上,SPY0030仅需2.4V即可工作(两颗电池即可工作);LM386输出功率100mW以下,SPY0030约700mW。因此本系统采用SPY0030作为语音播放的功率放大器[11]。图3-6采用SPY0030的语音输出电路图 图3-7采用LM386的语音输出电路图3.2.3语音输入模块采用一般的麦克风驱动电路,如图3-8中,采用9014作为前端低频放大器,输出需要接到模数转换电路,才能得到数字信号。图3-8采用9014的语音输入电路图SPCE061A提供了内置的麦克风放大器和自动增益控制电路,可以用很少的外围电路实现语音输入功能。如图3-9所示,MICN、MICP连接到单片机内部一个运算放大器的正负输入端,因此MIC两个引脚的电压差可以被改运放放大,在经过单片机内部的自动增益放大后送入数模转换器,生成数字量的音频电压值。SPCE061A内置8个通道10位ADC,其中一个通道MIC_In用于语音信号输入。其余7个通道用于电压等模拟信号转换为数字信号[12]。根据以上的分析,采用凌阳单片机在解决语音输入输出方面具有较大优势,可以大大减少硬件和软件的实现难度。因此本人计划采用凌阳单片机来实现该模块[13]。 图3-9采用凌阳单片机的语音输入电路图3.34×4键盘简介4×4的行列式键盘,即键盘排列为4行、4列,共16个按键,4×4键盘的电路图如图3-10所示,分别定义这16个按键盘为KEY1~16。图3-104×4键盘电路图图中C1~C4为4×4键盘的列扫描线,L1~L4为4×4键盘的行扫描线,行列式键盘的操作一般完成两个任务,一是检测是否有键被按下,二是识别被按下的键是哪一个。一般会采用行列扫描法,可以同时完成上述两项任务。基本的扫描原理是: 先使行扫描线输出高电平,然后读取列扫描线的状态,得到与按键横向位置对应的4位列码;如果是有键被按下时,则对应的列扫描线必然会被读回高电平,如果是无键盘按下时,则读取的列码必定全是0(低电平)。这也就可以判断有无按键的按下了。一旦检测到有键按下时,还需要有一个延时的消除抖动的操作,以消除按键时带有的抖动信号;一般延时在15ms左右即可。延时后,如还能检测到有按键按下,则可确定当前是有键按下,可进入获取键值的操作。当需要获取键值时,可以先使所有行扫描线置高电平,列扫描线置低电平,然后读取列扫描线的状态,将其取反,得到列码;接着再讲所有列扫描线置高电平,行扫描线置低电平,读取行扫描线状态,将其去反,得到行码,最后将处于高位的码左移4位,并与低位码相与,即可得到相应键盘码。3.4显示模块3.4.1LCD1602液晶简介LCD1602液晶是一款很常用,也很易用的字符液晶。可以显示2行每行16个字符,对比度可调、黄绿色背光。电源范围4.5V-5.5V。图3-11LCD1602液晶平面图1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。因为1602识别的是ASCII码,试验可以用ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如'A’。图3-11为LCD1602的平面图,图3-12为LCD1602的电路图。 图3-12LCD1602电路图3.4.2SPG12063YS2液晶简介SPG12063YS2液晶是带驱动电路SPLC501的128*64点阵式LCD。它适用于各类仪器,小型设备的显示领域,内置128个16*8点ASCII字符集,最重要的是,该款液晶支持汉字显示,内置了8192个16*16点汉字,可以显示8×4个16×16点阵的汉字。值得一提的是,它功耗低,工作电压低。开发人员可以利用其灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。图3-13为SPG12063YS2的平面图,图3-14为SPG12063YS2的电路图。图3-13SPG12063YS2液晶平面图 图3-14SPG12063YS2电路图对上述2种方案进行比较,由于1602可显示的内容太少,无法满足整个程序的设计要求,SPG12063YS2在界面及显示上更具优势,并具备中文显示,用它显示能使界面更友好。因此,本人准备采用SPG12063YS2实现系统的显示模块。3.5外部存储器模块SPR4096内嵌512K*8位高性能FLASH存储器同时内嵌4K*8位SRAM。芯片具有BMI(BusMemoryInterface)并行接口总线与SIF(SerialInterface)串行接口总线。模组采用由凌阳公司提供的SPR模组,其工作原理图如图3-15所示。图3-15SPR4096工作原理图 SPR模组的主要功能是通过由凌阳公司提供的ResWriter工具对SPR4096存储器进行擦除、写入以及校验,同时预留10Pin排线,可以与单片机连接组成外扩存储器的系统。系统采用外部存储器芯片,是因为在系统使用了语音识别模块之后,占用了32KFlash空间里的31K,而语音资料大小约为13K,并且改文件大小已经压缩到最小,还是不可能与程序一起下载至单片机中,所以需要外部存储器来扩展存储空间。 4 软件设计4.1软件开发工具我使用由凌阳公司所提供的开发工具unSPIDE集成开发环境,该开发环境包含如下功能:程序编写:在开发环境里录入程序。编译程序:负责把程序翻译成机器码。程序下载:把机器码下载到仿真板或开发系统上。除此之外,还可以组织多个程序文件形成一个系统开发的项目,这样更有利于一些大型系统的开发和各功能模块的模块化。同时它还结合16位单片机提供各类存储器等的数据查看,使用户能随时查看程序运行过程。unSPIDE集成开发环境如图4-1所示。图4-1IDE集成开发环境集成开发环境IDE具有友好的交互界面、下拉菜单、快捷键和快速访问命令列表等,使编程、调试工作方便且高效。除此之外,它还提供一些软件模拟的功能,旨在没有硬件的情况下也可以提供用户完成一些简单程序调试。集成开发环境可使用C语言或汇编语言对单片机进行编程。本设计采用C语言。 4.2软件流程图4.2.1主程序主程序流程,如图4-2。图4-2主程序流程图//===================================================================//主程序部分主要代码,负责初始化,循环调用按键识别、语音识别子程序//===================================================================intmain(){inti;for(i=0;i<0x3fff;i++)*P_Watchdog_Clear=0x0001;LCDINIT();//LCD显示初始化Key_InitIO();//按键初始化while(1){KeyDeal();//按键识别子程序SpeechRec();//语音识别子程序 *P_Watchdog_Clear=0x0001;}*P_Watchdog_Clear=0x0001;}4.2.2按键识别子程序按键识别子程序流程,如图4-3。图4-3按键识别子程序流程图//===================================================================//按键识别程序部分主要代码//===================================================================voidKeyDeal(void){unsignedintt;t=KeyScan();//全键盘扫描if(t!=0)//若返回非零,则有键按下KeyValue=GetKey(t);//获取键值if(t!=0)//继续判断按键是否处于按下状态{swhitch_key();//按键处理while(KeyScan())//等待按键释放*P_Watchdog_Clear=0x0001; }}4.2.3语音识别子程序语音识别子程序流程,如图4-4。图4-4语音识别子程序流程图//===================================================================//语音识别子程序//===================================================================intSpeechRec(void){SpeechRec_Result=BSR_GetResult();//获得识别结果if(SpeechRec_Result>0){switch(SpeechRec_Result){case.......//识别出是第几条命令break;....... default:break;}SpeechRec_Result=0;}}4.2.4操作子程序操作子程序主要包括两部分,一部分是键盘响应,主要处理从键盘上获得的操作命令,响应0~9按键,出题按键、答案按键、难度按键、确认输入按键、运算符号按键;另一部分是语音识别响应,主要处理语音命令,响应出题、答案、难度等命令。·出题子程序该子程序主要负责生成随机数,并且根据不同难度取不同位数,并包含了题目的显示和播报,并在内部计算出了正确答案。//===================================================================//出题子程序//===================================================================voidstart(void){clr_result();seed1();srand(seed);randtemp[0]=rand();//rand()产生0~32767randtemp[1]=rand();randnum[0]=randtemp[0]%9000+1000;//取4位随机数(小于10000)randnum[1]=randtemp[1]%9000+1000;count1=0;//count1记录输入位数answer=0; switch(DifFlag){.......//根据难度(DifFlag)的不同出题,并播报声音Case4://难度4,即三位数与二位数的运算{FirData=randnum[0]/10;//取3位数SecData=randnum[1]/100;//取2位数yusuan();//计算结果num1bit[0]=FirData%10;//将两个数各个位拆分num1bit[1]=FirData/10%10;num1bit[2]=FirData/100%10;num2bit[0]=SecData%10;num2bit[1]=SecData/10%10;.......//显示第一个数fuhaobit=32;//设定符号显示位置showfuhao();//显示符号.......//显示第二个数LCD501_PutChar(64,20,61);//显示等号showbit=64;//设定输入数字显示位置.......//播放百位数.......//播放“百”.......//播放十位数.......//十位不为0,播放“十”.......//个位不为0,播放个位数bobaofuhao();//播放符号PlaySnd_Auto(num2bit[1],3);//播放第二个数的十位PlaySnd_Auto(10,3);//播放“十”if(num2bit[0]!=0)PlaySnd_Auto(num2bit[0],3);//播放个位break; }.......//其他难度}}该程序中,根据难度和运算符号的不同,系统列出不同位数的两个常数供用户计算,关系表如表4-1所示。表4-1难度级别与数字位数的关系表难度级别加减乘除0*#**#*1**#***#*2***#****#*3**#****#**4***#**5***#***6****#****:表示一位数字;#:表示运算符号·播放符号子程序此程序,将运算符号用变量waveflag替代,这方法同样运用在计算答案的程序中,使用变量替代,简化了出题子程序的流程,否则将不得不在出题程序中运用多个switch将难度和运算符号区分。//===================================================================//播报符号子程序//===================================================================voidbobaofuhao(void){switch(waveflag)//显示符号{case0:PlaySnd_Auto(14,3);break;case1:PlaySnd_Auto(15,3);break;case2:PlaySnd_Auto(16,3);break; case3:PlaySnd_Auto(17,3);break;default:break;}} 5 制作和调试5.1硬件制作和调试本系统PCB板图使用Protel99SE完成。PCB的制作过程比较复杂,尤其是焊盘、布线等方面需要注意的事项很多,所以制作难度大。布线方面,布线拐角处角度应尽可能大于90度,不使用90度以下的拐角,也尽量少用90度拐角,走线尽量走在焊接面,特别是通孔工艺的PCB。同是地址线或者数据线,走线长度差异不要太大,否则短线部分要人为走弯线作补偿。完成布线后,紧接着就是对各个部分存在不合理的地方进行一些调整,然后敷铜。在进行PCB制板时,设计的好坏直接影响电路板抗干扰能力的强弱。为了保证实物板的可靠性,在进行设计时,应注意一般原则:尽量加粗电源线宽度,减少环路电阻。地线应该尽量加粗,如果很细,接地电位就会随电流的变化而变化,如此会致使电子设备的定时信号电平不稳,抗噪声性能就会变坏。在考虑布线之前,要特别注意封装与实际相符合。图5-1出题系统的PCB板图 5.2软件的调试在实物制作的时候,硬件的连接还是算比较简单的,难点在于软件的编写与调试,而在整个软件设计过程中,碰到的主要问题是语音识别模块,以及语音播报模块的调试。碰到如上所述的难点主要原因在于语音识别模块本身代码,直接占用了绝大多数Flash空间,如此导致整个系统所需的语音资源不能完全存入Flash空间,而产生空间不足的问题。我首先是采用压缩语音资源的方式,将资源压缩到所支持的最小格式,但是由于语音资源数量较多,就算是文件压缩到最小,还是无法写入单片机。之后我的想法是通过扩展外部存储器,将所有语音资源放入其中,这样改动就能根本性地解决Flash容量不足的问题。这样改动还需要配合外部存储器模块,我采用的芯片是SPR4096,其包含512KBFlash。另外,语音播放子程序也得进行修改,使其播放外部存储器内的语音资源。在测试时还发现,出题时第一个题目总是同一个,该模块主要是采用伪随机数实现,通过查阅资料和老师的帮助,才发现这种实现方式的缺点就是第一次随机产生的数字都是相同的,因此,我的想法是在主程序初始化时就调用一次随机数,以保证第二次随机数不相同。本设计包含比较多的模块,所以编程调试难度比较大,但是经过查阅资料和老师指导,终于还是基本实现原来预定的目标。 6 结论系统能自动数学出题,并且根据用户定义的不同,可选择不同运算法则和算术难度,当其出题时会显示于LCD上,并且自动播报题目,识别到用户输入数字时,它也能播报当前输入的数字,因此,该系统能够从听觉及视觉两方面帮助儿童进行数学早教,完成答案输入后,按下确认按钮,系统将会自动将用户答案与正确答案进行比对,播报声音。除了上述这些功能,它还有能识别几个简单的语音命令,方便用户通过语音命令使用系统的一些功能,例如出题、答案、级别等命令。不过它也存在一些不足的地方。作为早教类工具,非常重要的一点就是外观上要满足儿童,本次设计系统并未考虑外观。界面显示没有太多吸引用户,特别是吸引孩子感兴趣的地方,很难满足大部分儿童的要求。系统基本出题功能也还需进一步完善,增加一些练习及考核的模式,扩充系统功能。另外,在语音功能方面可能还需进一步改进,来加强其实用性、便利性。另外,在科技日益进步的今天,如此单一的出题功能是远远不够的,还需要考虑加入更多主流的功能,如此才能符合时代要求。本课题从开始到结束经历了几个月的时间。在这段时间,我学到了很多东西,收获很大。毕业设计较以往的课程设计,难度大了很多,基本上很多知识点都需要重新复习,用到了C语言编程、凌阳单片机等等课程中所学到的知识。如此经历,让我从更加综合、整体的角度对所学过的知识进行了理解。这次的毕业设计,虽然存在些不足的地方还有待改进,但还是基本达到了导师在任务书上所提出的要求。 参考文献[1]ZimingQi,TomMoir.AnAdaptiveWienerFilterforAutomaticSpeechRecognitioninaCarEnvironmentwithNon-StationaryNoise[C].SmartSensorsandSensingTechnology,Berlin:SpringerBerlinHeidelberg,2008,7:299.[2]MichaelW.Frandsen,SusanneZ.Riehemann,KristinPrecoda.IraqCommandFlexTrans:ASpeechTranslationSystemandFlexibleFramework[C].TarekSobh.InnovationsandAdvancesinComputerSciencesandEngineering,Netherland:SpringerNetherlands,2010,3:531~532.[3]张震宇,王华.基于凌阳单片机的语音识别技术及应用[EB/OL],[2009-9-10].http://www.elecfans.com/soft/softdown.asp?softid=45845.[4]李昌禄.基于单片机平台下的语音识别技术应用方式研究[D].天津:天津大学,2009.[5]陈慧.凌阳SPCE061A语音功能在自动售货机中的应用研究[J].华东交通大学学报,2010,2,27(1):63.[6]沈平.基于嵌入系统的语音控制器的研制[D].湖北:湖北工业大学,2006.[7]胡宾.嵌入式语音识别技术的研究[D].武汉:武汉理工大学,2006.[8]王坤,张文科.基于单片机与语音芯片的语音系统设计[J].科技信息,2009,6:177.[9]英锋,冯玉芬.基于SPCE061A的语音识别系统的设计[J].微计算机信息,2008,6,24(6-2):121~122.[10]刘萌,赵建平,刘秋霞,郝玲艳.基于凌阳SPCE061A的语音识别系统设计[J].微型电脑应用,2007,23(6):30~31.[11]李晓白,秦红磊,朱俊杰,潘涌泽.凌阳16位单片机C语言开发[M].北京:北京航空航天大学出版社,2006,9.[12]王炳锡,屈丹,彭煊.实用语音识别基础[M].北京:国防工业出版社,2005,1.[13]吴黎明等.语音信号及单片机处理[M].北京:科学出版社,2007,3. 附录1系统实物图 附录2系统原理图 附录3毕业设计作品的说明一、作品名称基于语音辨识自动数学出题系统二、作品功能1、数学出题2、即时显示并播报输入的题目3、能正确显示和播报题目答案4、具备识别一些语音命令的能力三、运行环境硬件环境:SPCE061A软件环境:unSPIDE四、操作步骤1、通过键盘设定运算法则、难度级别,若未训练语音命令,则会首先训练。2、按下出题按钮或说出“出题”命令,系统自动按照用户要求出题。3、键盘输入答案五、注意事项运算结果得数不能超过九位