




已阅读5页,还剩67页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
陕西理工学院毕业设计论文本 科 毕 业 设 计 论 文题 目 基于语音识别技术的智能小车 学生姓名 学号 所在院(系) 机 械 工 程 学 院 专业班级 测控技术与仪器082班 指导教师 2012年 6 月 5 日本科毕业设计任务书 院(系) 机械工程学院 专业班级 测控技术与仪器(测控082) 学生姓名 张杰 一、毕业设计题目 基于语音识别技术的智能小车 二、毕业设计工作自_2011 _年_ 11_月_1 _日 起至_2012 _年 5 月_20_日止三、毕业设计进行地点: 陕西理工学院(北区)机械学院实验中心 四、毕业设计内容要求: 1、设计课题简介 随着数字信号处理技术的发展,语音识别技术日趋成熟。让人与机器进行语音交流,让机器明白人说什么,这是人们长期以来梦寐以求的事情。所以语音识别技术迅速普及到各个领域之中。用汉语语音识别技术驱动智能小车,就成为了普遍关注的问题。让小车完成对特定汉语语音进行识别,同时对非特定汉语语音识别系统给出较恰当的解决方案,是本次毕业设计的难点。要根据识别的语音对智能小车进行前进、后退、转弯、加减速、加大减小冲击扭矩等状态的切换;随着物联网技术的发展,多点监测和控制的应用极其广泛,搭建基于总线和组态软件的测控系统,实现对多个智能小车的监测和控制,都是本次毕业设计要解决的问题。 2、设计要求: (1)能根据对语音的识别,对智能车进行指定动作的驱动。 (2)系统性价比高,可靠性强。 (3)智能化程度高,人机交互友好。 3、工作任务: (1)了解并掌握语音识别技术的基本原理和实现方法。 (2)了解并掌握智能车控制的基本原理和实现方法。 (3)了解并掌握多地点总线的原理和实现方法。 (4)翻译约4000字符的相关英文资料。 (5)完成开题报告。 (6)论证方案,完成总体方案设计。 (7)完成各模块的原理图、程序的设计与仿真。 (8)完成系统的原理图并联调系统。 (9)完成毕业论文。 4、设计说明书格式要求: 设计说明书应包括:序言、目录、摘要(中英文)、关键词(中英文)、正文(含设计方案论证、设计计算说明等)、结束语和参考文献等内容,并按照封页、设计任务书、序言、目录、摘要、关键词、正文、结束语、参考文献和封底的顺序装订。 指 导 教 师 翟任何 系(教 研 室) 测控技术与仪器 系(教研室)主任签名 批准日期 2011-12-31 接受设计任务开始执行日期 学生签名 基于语音识别技术的智能小车(陕西理工学院机械工程学院测控技术与仪器专业082班级,陕西 汉中 723003)指导教师:【摘要】本文对语音识别技术的智能小车概况做了阐述。在硬件设计方面,主要以凌阳公司的SPCE061A单片机为控制核心,以全桥驱动控制电路板为辅,来控制小车的动作。在软件方面,利用C语言进行编程,进行语音的“训练”和“识别”。设计出具有如下功能的语音识别小车:能够根据语音命令来控制小车的前进、停止、倒退、拐弯。 论文首先对系统的方案进行论证,然后对各单元的硬件工作原理进行了阐述,同时完成了软件设计的介绍,以及语音识别小车的联调和操作说明。最后,针对非特定语音识别技术,提出了以LD3320专用语音芯片为核心的非特定语音识别系统的实现方案。【关键词】SPCE061A;LD3320;语音识别;全桥驱动;智能小车 Intelligent car based on the speech recognition technologyZhang jie(Grade08,class2,Testing and Monitoring Technology and Instrumentation,School of Mechanics,shaan xi university of technology ,han zhong ,723003 shaanxi)Tutor:zhai Ren heAbstract: This article gived a detail to the Speech recognition of Intelligent car. In the hardware design, the design used the Sunpluss SPCE061A as the control of core,and supplemented by the full-bridge driver of the car control circuit board to control the cars movements.On the software, we used C language programming for voice training and recognition. It has the following features: According to recorded voice commands to control the car to go, stop, return, and turn.First of all, this paper confirmed the system of program, and then described the units hardware and the working principle of the situation. At the same time, completed the introduction of the software design, voice recognition cars alignment and operating instructions. Finally, For non-specific speech recognition technology, elaborating the Implementation of non-specific by the LD3320 special voice chip as the core speech recognition system. This article gived the implementation of non-specific speech recognition system.Key words: SPCE061A, LD3320, Speech Recognition, Full-bridge driver, Intelligent car.目 录1绪论11.1 引言11.2 国内外研究状况21.3 存在的不足或有待解决的问题21.4 课题的目的任务和要求32方案设计42.1 系统方案选择42.2 系统方案设计63系统模块设计83.1 SPCE061A介绍83.1.1 SPCE061A最小系统及电源电路93.1.2 SPCE061A强大的语音功能113.2 SPCE061A的语音输入、播放模块133.2.1 MIC输入133.2.2 语音播放143.3 SPCEO61A的语音识别模块163.3.1 SPCEO61A的语音训练173.3.2 SPCEO61A的语音识别203.4 STC10LO8XE单片机模块223.5 M-LD3320非特定语音识别模块233.5.1 M-LD3320模块233.5.2 LD3320的非特定语音识别253.6 小车的H桥路控制模块293.6.1 小车电机的控制原理303.6.2 小车的动作子程序314系统联调与分析总结374.1 系统联调374.1.1 硬件连接374.1.2 软件调试及代码下载384.1.3 训练小车384.1.4 声控小车384.1.5 重新训练384.2 调试分析总结39结束语41致谢42参考文献43外文翻译44附录52附录A 小车实物图52附录B 程序代码53II1绪论1.1 引言语音识别技术就是让机器通过识别和理解过程把语音信号转变为相应的文本或命令的高技术。概括的说,语音识别技术可以分为两类:一是对特定发音者的模式识别,使用者使用前需要进行简单的训练;二是对非特定发音者的模式识别,使用者无需训练即可使用,并可以进行识别,任何人皆可随时使用此技术。语音识别技术不仅包括语音的录制和播放,还涉及语音的压缩编码和解码,语音的识别等各种处理技术。以往做这方面的设计,一般有两个途径:一种方案是单片机扩展设计,另一种就是借助于专门的语音处理芯片。普通的单片机往往不能实现这么复杂的过程和算法,即使勉强实现也要加很多的外围器件。专门的语音处理芯片也比较多,例如ISD系列、PM50系列等,但是专门的语音处理芯片功能比较单一,但想在语音之外的其他方面应用基本是不可能的。而语音识别技术在这近五年来已经有很大的进步,最新的语音识别技术可以辨别90%以上的人类说出的字。如今,微电子技术的高速发展,许多单片机内部集成有语音识别模块,例如DSP,SPCE061A等,这为实现语音控制功能提供了极大的方便。在工业生产与生活中,智能小车作为最常用的行走机构得到了广泛的应用。而语音识别小车即运用语音技术引导系统是基于移动小车平台上,实现对小车运动的控制。语音识别技术就是让小车通过识别和理解过程把语音信号转变为相应的文本或命令的一种技术,其根本目的是研究出一种具有听觉功能的机器,这种小车能直接接受人的语音,理解人的意图,并做出相应的反应。把这种具有语音信息处理能力的设备纳入人的语音交互对象,使之像人一样具备听、说、写功能,能对语音做出理解和反应,并在交互方式上不受时间和地点的限制,这是研究语音识别的重大意义。本课题是研究的语音小车在运动中受语音控制,需要解决的是语音识别技术问题,它可运用于工业控制领域、航空航天领域等等。它可替代人们繁重的劳动(如采掘、喷漆、焊接等),大大提高了劳动生产率,减轻了人们的劳动强度。此外,它在高温、低温、深水、宇宙、放射性和其他有毒、污染的环境条件下进行操作,日益出现它的优越性。1.2 国内外研究状况随着语音处理技术的发展,语音识别系统的实用性将进一步提高。国外已有多种基于语音识别产品的应用,基于特定任务和环境的听写机也已经进入应用阶段。许多发达国家,如美国、日本、韩国以IBM、APPLE、AT&T、Micr0Soft等著名公司都看好语音一识别的应用前景,为语音识别系统的实用化投以巨资,语音识别技术实用化进程大大加速。21世纪初期的成果主要集中于实现机器(计算机)的同声传译系统以及多环境背景下的语音识别技术。我国在语音识别技术领域发展进步很快,在近五到十年内语音识别系统的应用将更加广泛。各种各样的语音识别系统产品将出现在市场上,如凌阳智能语音识别机器人,提高了语音信息处理速度,可以快速对语音进行应答。采用了先进的非特定人语音识别技术,对口音和噪声不敏感。更加入了独有的噪声检测技术,当环境噪声很大时,能给用户相应的提示;并且加入了可信度评估和拒识技术,对于命令以外的语音或者干扰声音可以拒识。在语音交流的过程中,抗噪音能力得到了很大的提高。随着语音识别技术与机器人技术的进一步结合,未来高智能的人机交流将不是梦想。但在短期内还不可能造出具有和人相比拟的语音识别系统,要建成这样一个系统仍然是人类面临的一个大的挑战,我们只能一步步朝着改进语音识别系统的方向前进。1.3 存在的不足或有待解决的问题声控技术虽然是一项比较先进的技术,但不可否认的是,声控技术在无限传输时的合成的质量不是很好,它尚需进一步提高,因为无线环境中的背景噪音太大了,当然还有其他方面的因素影响着声控功能的发挥,具体来说表现在以下几个方面:(1) 时效型。从发出指令到执行指令,有一段延迟时间,虽已降低到尽可能的小,但还是很明显。可行的方法就是改用高效的DSP芯片,这在经费上和时间上都是不允许的。(2) 对环境的适应。如果环境噪声很大,或偶尔出现较大的噪声,则会出现误识。这个不足之处还没有很有效的解决方案。(3) 多人识别。各人的发音不尽相同,因此该系统还限于单人识别。若要做多人识别,则识别的时效性会降低,即有很大的延迟。另外,多人识别,也没有较为有效、成熟的算法供参考。1.4 课题的目的任务和要求语音识别技术的智能小车顾名思义就是要实现语音识别和语音控制对小车系统进行全方位控制。小车不仅具有前进、后退、左转、右转停车等基本功能,而且配合语音识别和语音控制,实现语音控制功能。本次设计将展现一种基于具有语音功能的单片机控制小车,它具有机动性强,控制灵敏,语音识别,语音控制等优点。主要是采用单片机语音识别及控制技术、定时功能、脉冲功能和中断功能对小车加以控制。基于语音识别技术的智能小车研究只是其中很小的一点,但其成功实现将是语音识别及控制中前进的一步,对后续的研究有很多的帮助。目前, 特定人语音识别技术已发展到一定的成熟阶段, 并出现了一些实用化的产品,人们更多地将重点转向了非特定人识别上。因而,针对非特定语音识别技术,本文提出了非特定语音识别系统的设计与实现方案。2方案设计2.1 系统方案选择方案一: 采用MCS-51系列中的80C51单片机。以80C51为控制核心,利用声控传感器和专门的语音处理芯片,并采用桥式驱动电路来实现对小车的前进转向进行控制,并能够做出应答的功能。80C51 是一款八位单片机,应用范围广,价格便宜是其最大优点。但由于80C51单片机的闪存(FLASH)只有8K,且无法内置DAC电路,必须通过外围电路实现。另外,语音识别是一门新兴的技术,不止包括语音的录制和播放,还包括语音的压缩,编码和解码和语音的识别,这些都要进行大量的计算, 如果用80C51来实现,需要扩展语音识别模块和语音播放模块,这样必然造成端口的资源紧张,而其实现起来比较困难且效率很低。实现该方案结构如图 2.1所示。IOMCS_51 IO接口扩展模块 接口总线语音播报模块电机驱动模块语音识别模块图 2.1 采用MCS-51系列单片机实现语音控制小车方案二:采用以TMS320VC5402这款DSP芯片为语音处理系统的核心部分来实现语音控制方案。其主要优点包括:采用改进的哈佛结构,带有专用硬件逻辑CPU(40位算术逻辑单元(ALU),包括1个40位桶形移位器和二个40位累加器;一个1717乘法器和一个40位专用加法器,允许16位带或不带符号的乘法),片内存储器(八个辅助寄存器及一个软件栈),片内外专用的指令集,允许使用业界最先进的定点DSP C语言编译器。最重要的是其运算处理速度的高效,可以快速处理大量的语音数据,实时性好,但费用价格昂贵。该方案如图2.2所示。音频信号放大及A/D转换DSP芯片方向控制桥路方向电机驱动电机驱动控制桥路D/A转换及音频信号放大语音信号SPK图2.2 基于TMS320VC5402的语音识别小车方案三:采用SPCE061A实现语音控制小车方案,由于SPCE061A内部集成有语音识别和语音播放功能模块,所以只需要扩展基本的MIC和语音功放即可,另外凌阳SPCE061A单片机提供32个I/O口,一片SPCE061A单片机即可实现所有功能,这为设计过程提供了极大方便。该方案结构如图 2.3所示。 MIC输入模块SPCE061A电机驱动模块语音输出模块图 2.3 基于SPCE061A的语音控制小车实现方案比较以上三种方案可见,方案一应用范围广价格便宜但系统复杂且难以实现语音控制;方案二中TMS320VC5402这款DSP芯片虽然有强大的数据处理功能,但要完成语音识别功能,软件上实现起来比较复杂且价格昂贵;方案三应用范围一般价格略高,但凌阳SPCE061A单片机内部集成了D/A和A/D转换模块,重要的是SPCE061A单片机其具有语音识别的特色功能,拥有语音功能SPI函数库,软件易于编写,且能很好实现语音控制且可以使整个设计具备系统简洁,结构清晰简单,外围设备少,易于操作;因此,选择方案三。2.2 系统方案设计 根据设计任务要求,本次设计在特定语音识别系统的基础上同时增加了非特定语音识别部分,非特定语音部分主要由51单片机和M-LD330专用的非特定语音识别模块组成,该系统的结构框图如图 2.4所示。并口凌阳SPCE06lA单片机片滤波KEYMIC电机驱动控制板驱动电机SPK非特定人的语音M-LD330专用的非特定语音识别模块51单片机特定人的语音功放方向电机特定语音识别部分非特定语音识别部分图 2.4 系统结构框图系统组成主要包括以下五部分:车体部分、SPCE061A精简开发板、51单片机部分、M-LD3320专用语音模块、电机驱动控制板。车体部分:小车车体主要为两个电机驱动装置,分前轮(方向驱动)和后轮(动力驱动)。在车体的下面有一个可以安装4节AA电池的电池盒,整个小车的电源就是由它来提供的。在小车的底部有一个小开关,它负责控制整个小车的电源开通与关断。SPCE061A精简开发板:凌阳SPCE061A单片机具有语音识别的特色功能,其内部集成有ADC、DAC、AGC等电路,以及兼有DSP芯片功能。图中的语音输入部分 MIC_ IN、按键输入 KEY、声音输出部分的功率放大环节等已经做到了精简开发板SPCE061A板上,在硬件上为我们使用提供了很大的方便。凌阳SPCE061A单片机在软件设计上,拥有针对语音播报、语音识别的语音函数库,这对使用者在编写语音识别的代码时程序能够非常容易。51单片机部分:51单片机选用STC10LO8XE芯片,使51单片机的并口与LD3320芯片连接通信,同时接收来自LD3320芯片触发信号进行分析处理,进而控制小车的运行状态。M-LD3320专用非特定语音识别模块:该模块将LD3320 非特定语音芯片芯片与周围必要的容阻件集成在一块PCB上,将LD3320的芯片管脚通过2*20的排针引出。可以直接将自己的主控MCU 的管脚连接到M-LD3320模块的排针上,同时给M-LD3320模块提供3.3V 电源和合适的晶振信号,就可以在主控MCU中编写程序运行LD3320的语音识别功能。在电机的驱动方面,采用全桥驱动技术来设计小车的控制电路板,负责将来自61SPCE061A板的控制信号转化为能够驱动电动机的信号,主要利用四个 I/O端口分为两组分别实现两个电机的正转、反转和停三态运行。3系统模块设计本章首先对基于特定语音识别技术的智能小车的各个功能模块进行阐述说明,该系统主要围绕以SPCE061A单片机为控制核心,通过电机驱动H桥路来控制控制小车的动作状态。并且对非特定语音识别技术原理作简单的介绍,并重点阐述实现非特定语音识别技术的方案。该方案是以嵌入式微处理器为核心,外围加非特定人语音识别芯片及相关电路构成。该方案的非特定语音识别芯片选用ICRoute公司的LD3320芯片。3.1 SPCE061A介绍SPCE061A 是凌阳科技研发生产的性价比很高的一款十六位单片机,该芯片带有硬件乘法器,能够实现乘法运算、内积运算等复杂的运算。它不仅运算能力强,而且处理速度快,单周期最高可以达到49MHz。该芯片拥有 8 路 10 位精度的 ADC,其中一路为音频转换通道,MIC_ADC通道带有AGC自动增益环节,能够很轻松的将语音信号采集到芯片内部。两路 10 位精度的 DAC,只需要外接功放(SPY0030A)即可完成语音的播放。SPCE061A的硬件内部结构如图3.1所示。另外,凌阳十六位单片机具有一套易学易用的指令系统和集成开发环境,在此环境中,它支持标准 C语言编程,也支持 C 语言与汇编语言的互相调用。并且提供了语音录放的库函数,只要了解库函数的使用,就可以很容易的完成语音的录放、识别等功能,这些都为软件开发提供了方便的条件。图3.1 SPCE061A内部结构图SPCE061A特性简介: u 16 位nSP 微处理器:16位加法运算、16x16位硬件乘法、DSP的内积滤波运算u CPU时钟:0.32MHz至49.152MHz;u 内置 2K字 SRAM;u 内置 32K闪存 ROM;u 可编程音频处理;u 2 个 16 位可编程定时器/计数器(可自动预置初始计数值);u 2 个 10 位 DAC(数-模转换)输出通道;u 7 通道 10 位电压模-数转换器(ADC)和单通道声音模-数转换器; u 32 位通用可编程输入/输出端口;u 14 个中断源可来自定时器 A/B及时基,2 个外部时钟源输入,键唤醒;u 具备触键唤醒的功能;u 32768Hz 实时时钟; u 声音模-数转换器输入通道内置麦克风放大器和自动增益控制(AGC)功能; u 具备串行设备接口;u 低电压复位(LVR)功和低电压监测(LVD)功能; u 内置在线仿真板。3.1.1 SPCE061A最小系统及电源电路1. SPCE061A最小系统SPCE061A最小系统模块系统接线如图3.2所示,在OSCO、OSCI端接上32768HZ的晶振及谐振电容,在锁相环压控振荡器的阻容输入VCP端接上相应的电容电阻后即可工作。复位电路采用的是按键式复位模式,由一个按键和一个电阻及电容构成。其它不用的电源端和地端接上0.1uF的去耦电容提高抗干扰能力。而在SPCE061A开发板上除了具备单片机最小系统电路外,还包括有电源电路、复位电路、ICE 电路、音频电路(含 MIC 输入部分和 DAC 音频输出部分)等,“SPCE061A板”可以采用电池供电。SPCE061A开发板在硬件方面为实现语音识别控制小车提供了极大的方便,本次设计直接利用SPCE061A开发板来搭建整个系统,就能实现语音识别小车的基本功能。图3.2 SPCE061A最小系统原理图2. 电源电路凌阳SPCE061A单片机内核电源电压要求为3.3V,设计中外接的电池盒电源通过SPY0029(相当于一般3.3V稳压器,SPY0029A的最高输入电压为7V。)稳压到3.3V,为整个单片机内核供电,如图3.3所示。而控制板直接采用电池盒供电VCC。图中两个二极管,是为了防止误将电源接反造成不必要损失而设置的,在操作过程中千万不要将电源接反,因为反向电压超过一定的值,二极管将会被损坏,达不到保护的目的。后面的零电阻及其电源、地分成不同的几路是为了减少电磁干扰设置的。图中的VDDH3为SPCE061A的I/O电平参考,如果该点接 SPCE061A的51脚,可使 I/O输出高电平为 3.3V;VDDP为PLL锁相环电源, 接SPCE061A的7脚;VDD和VDDA分别为数字电源与模拟电源,分别接SPCE061A的15脚和36脚; AVSS1是模拟地,接SPCE061A的24脚;VSS是数字地,接SPCE061A的38脚;AVSS2接音频输出电路的AVSS2。图3.3 电源电路图3.1.2 SPCE061A强大的语音功能SPCE061A具有DSP功能、语音特色的凌阳十六位单片机开发系统,不需任何外围器件就可以完成语音录、放、识别等功能。在本次设计中,关键地问题之一在于人声的A/D转换存储与识别,SPCE061A提供了语音输入压缩以及辨识的先进技术。(1) SPCE061A的语音压缩存储将经A/D转换后的数据压缩存储,SPCEO61A单片机的16位DSP有很强的信息处理能力,最高时钟频率达49.152 MHz,具备运算速度高等优势。这些为语音的录放、合成及辨识提供了条件。凌阳压缩算法中DVR可用于录、放音。语音的编码、存储、解码处理是通过操作麦克风输人所生成的WAVE文件完成的,但在这个环节上会出现的一个问题为其占用的存储空间很大,对SPCEO61A单片机的32K FLASH来说想要存储大量的信息显然是不可能的,而SPCE061A提出了解决方法:SACMV26LIB。该库将A/D、编码、解码、存储及D/A做成相应的模块,对于每个模块都有其应用程序接口API,所以只需了解每个模块所要实现的功能及其参数的内容,然后调用该API函数即可实现相应功能。在进行A/D转换之前,从MIN_IN输入的模拟信号要经过滤波器和放大器,AGC功能将通过MIC_IN通道输入的模拟信号放大值控制在一定范围内,然后放大信号经采样-保持模块送入比较器参与A/D转换。(2) SPCE061A的语音辨识语音辨识是一种以语音模型为指令基础的控制方式,语音模型的质量直接影响辨识操作的速度和准确率。凌阳语音识别主要有以下两种:1) 特定发音人识别SD(speaker dependent) SD是指语音样板由单个人训练,也只能识别训练人的语音命令,而他人的命令识别率较低或几乎不能识别。2) 非特定发音人识别SI(speaker independent) SI是指语音样板由不同年龄、不同性别、不同口音的人进行训练,可以识别一群人的命令。特定发音人识别SD具体步骤是经过两次语音采集,即训练和发布指令。系统经复杂的函数操作将发布指令与预先训练的语音模型进行比对,如与语音模型相匹配,则输出控制信号。具体原理如图3.4所示。声学模式调练语音模型复杂声学语音条件下的语音输入语音匹配语音处理识别结果理解结束语音模式训练语音模型图 3.4 语音辨识原理简图凌阳16位微处理器的SPCE061A核心实现与计算机连接采用有线方案,并将预先设计的小车控制程序烧写到SPCE061A单片机,以识别各种语音指令。系统的处理过程为:当向控制器发出语音命令时,声波通过MIC输入,将相应的信号传递到SPCE061A处理芯片,在芯片中通过相关的程序与预先训练好的语音模型进行比较、识别及处理,根据识别的结果进行判断、转换,然后发出相应的控制指令来控制小车的行走状态。使用特定人语音辨识的语音样板由单个人训练和识别处理组成,如图3.5所示。图 3.5 语音辨识流程值得注意的是,凌阳SPCEO61A在接收到控制语音指令后,并不是直接用其进行辨识。为了提辨识的正确率,语音信号要经过语音识别电路,将语音信号经过滤波器降噪、加重等处理后进行预测、量化等一系列操作进行模数转换,以数字形式进行过零次数能量相关函数等方法进行匹配运算,输出辨识结果。其具体步骤如图3.6所示。语音消除噪声并预加重滤波器组PARCOR线性预测系数过零次数能量相关函数等模式匹配词典输出识别结果图 3.6 语音识别电路结构3.2 SPCE061A的语音输入、播放模块本次设计采用凌阳SPCE061A的语音识别功能来控制小车的运动状态,涉及到语音的输入和播报,凌阳SPCE061A芯片在硬件上提供了极大的方便。SPCE061A是凌阳研发生产的一款十六位单片机,该芯片具有语音功能,可以容易地实现语音的录放,因为该芯片拥有8路10位精度的ADC(模数转换电路),其中一路为音频转换通道,并且内置有自动增益电路。在硬件上完全可以满足语音录入功能的要求,另外芯片有2路10位精度的DAC(数模转换电路),只需要外接功放(SPY0030A)即可完成语音的播放。采用SPCE061A能很容易的实现语音功能。3.2.1 MIC输入凌阳 SPCE061A利用麦克风的指令输入系统,SPCE061A内置由D/A转换器 DAC和逐次逼近寄存器SAR组成的逐次逼近式8通道10位A/D转换器,以及采样/保持电路。其中7个通道(IOA0-IOA6)用于将模拟量信号(电压信号)转换为数字量信号,可以直接通过引线输人;另外一个通道(Line_Inl-Line_ln7)只用于语音输人,即通过内置自动增益控制放大器的麦克风通道(MIC-In)输人,是语音采集专用通道,也可设置为普通A/D输入。在使用SPCE061A的语音训练和声音控制的时候,需要使用MIC输入电路将语音信号接收,并传送至SPCE061A进行处理。为提高输入的声音质量,MIC输入电路还应具备一定的滤波降噪功能。电路中的型滤波器就能很好的实现这个功能,同时使入电路可以实现自动增益(AGC)控制。其中MK1是语音的MIC输入端,如图3.7所示。图3.7 MIC输入电路3.2.2 语音播放在对小车发出语音指令后凌阳SPCEO61A将人发出的指令与训练时的音频进行辨识后确定指令,车上控制器接收到相应指令后,设置动作标志位,返回回应数据,同时控制电机,使小车做出向前向后转弯的动作。SPCE061A接收到响应数据后,为了知道小车已经响应了语音指令,便采用语音播报当前小车的响应。在硬件方面,SPCE061A内接2路10位精度DAC,只需要外接功放电路即可完成语音的播放。图中的SPY0030是凌阳的一款音频放大芯片,可以工作在2.4V6V范围内,最大输出功率可达700mV。在它们后面接一个简单的音频放大电路和喇叭即可实现语音播报功能。 音频输出电路如图3.8所示。图3.8 音频输出电路图在软件方面,语音播放程序很多函数都是有函数库提供,所以语音播放函数比较简单,其分为两部分,一是播放流程控制(如图3.9),一是中断播放服务程序(如图3.10)。YN开始调用语音播放初始化函数调用语音播放准备播放函数判断语音播放是否结束调用语音播放系统服务函数清看门狗停止播放返回图 3.9 语音播报流程图NNYNYNY寄存器入栈保护判断是不是TMA_FIQ中断?判断是不是TMB_FIQ中断?清fosc/1204_FIQ中断标志寄存器出栈中断返回清中断标志清中断标志调用F_FIQ_Service_SACM_S480图3.10 中断播放服务流程图该程序如下/=/ 语法格式:void PlaySnd(unsigned SndIndex,unsigned DAC_Channel);/ 实现功能:语音播放函数/ 参数:SndIndex-播放语音资源索引号/DAC_Channel-播放声道选择/ 返回值:无/=void PlaySnd(unsigned SndIndex,unsigned DAC_Channel)BSR_StopRecognizer( );/停止识别器SACM_S480_Initial(1);/初始化为自动播放SACM_S480_Play(SndIndex, DAC_Channel, 3);/开始播放一段语音while(SACM_S480_Status( )&0x0001)!= 0)/是否播放完毕?SACM_S480_ServiceLoop( );/解码并填充队列*P_Watchdog_Clear=0x0001;/清看门狗SACM_S480_Stop( );/停止播放BSR_InitRecognizer(BSR_MIC);/初始化识别器3.3 SPCEO61A的语音识别模块语音识别主要分为“训练”和“识别”两个阶段。在训练阶段,单片机对采集到的语音样本进行分析处理,从中提取出语音特征信息,建立一个特征模型;在识别阶段,单片机对采集到的语音样本也进行类似的分析处理,提取出语音的特征信息,然后将这个特征信息模型与已有的特征模型进行对比,如果二者达到了一定的匹配度,则输入的语音被识别。语音识别的具体流程如图 3.11 所示:图3.11 语音识别流程说明框图3.3.1 SPCEO61A的语音训练 当程序检测到训练标志位 BS_Flag 内容为 0xffff,就会要求操作者对它进行训练操作,训练操作的过程如图 3.12所示:训练采用两次训练获取结果的方式,以训练名字为例:小车首先会提示:“给我取个名字吧”,这时你可以告诉它一个名字(比如 Jack);然后它会提示:“请再说一遍”,这时再次告诉它名字(Jack),如果两次的声音差别不大,小车就能够成功的建立模型,名称训练成功;如果没能够成功的建立模型,小车会告知失败的原因并要求重新训练。成功训练名称后会给出下一条待训练指令提示音:前进,参照名称训练方式训练前进指令。依次训练小车的名称前进指令倒车指令左转指令右转指令,全部训练成功子程序返回,训练结束。开始训练训练名称成功否?训练前进指令成功否?训练后退指令成功否?训练左转指令成功否?训练右转指令成功否?播报成功提示训练结束是i是i是i是i是i否i否i否i否i否i图 3.12 训练流程图下面是训练部分的子程序,在训练时如果训练不成功 TrainWord()返回值不为 0,要求重复训练,只有当训练成功,TrainWord()返回 0,进行下一条指令训练。该程序如下:/=/ 语法格式:int TrainWord(int WordID,int SndID);/ 实现功能:训练一条指令/ 参数:WordID-指令编码/SndID-指令提示音索引号/ 返回值:无/=int TrainWord(unsigned int WordID,unsigned int SndID) int Result;PlaySnd(SndID,3);/引导训练,播放指令对应动作while(1)Result = BSR_Train(WordID,BSR_TRAIN_TWICE);/训练两次,获得训练结果if(Result=0)break;switch(Result)case -1:/没有检测出声音PlaySnd(S_NOVOICE,3);return -1;case -2: /需要训练第二次PlaySnd(S_AGAIN,3);break;case -3:/环境太吵PlaySnd(S_NOISY,3);return -3;case -4:/数据库满 return -4;case -5: /检测出声音不同PlaySnd(S_CMDDIFF,3);return -5;case -6: /序号错误return -6;default:break;return 0;/=/ 语法格式:void TrainSD( );/ 实现功能:训练函数/ 参数:无/ 返回值:无/=Void TranSD( ) while(TrainWord (NAME_ID,S_NAME)!=0); /训练名称while(TrainWord (COMMAND_GO_ID,S_ACT1!=0); /训练第1个动作while(TrainWord(COMMAND_BACK_ID,S_ACT2)!=0);/训练第2个动作while(TrainWord(COMMAND_LEFT_ID,S_ACT3)!=0);/训练第3个动作while(TrainWord(COMMAND_RIGHT_ID,S_ACT4)!=0);/训练第4个动作3.3.2 SPCEO61A的语音识别 语音识别流程如图 3.13所示:首先获取辨识器的辨识结果,判断是否有语音触发,如果有语音触发则会返回识别结果的ID号,ID号对应名称或者对应不同的动作。如果 ID 号为名称,则结束运动(如果当前在运动状态),进入待命状态,等待下一次的指令触发;如果 ID 号为动作,则语音告知将要执行的动作,并执行该动作。Y Switch(Res)N语音识别前进指令语音触发倒车指令左转指令右转指令名字?前进倒车左转右转小车返回图3.13 语音识别部分流程图该程序如下:/=/ 语法格式:void BSR(void);/ 实现功能:辨识子函数/ 参数:无/ 返回值:无/=void BSR(void)int Result;/辨识结果寄存Result = BSR_GetResult( );/获得识别结果if(Result0)/有语音触发?*P_IOB_Data=0x0000;/临时停车switch(Result)case NAME_ID:/识别出名称命令Stop( );/停车待命break;case COMMAND_GO_ID:/识别出第一条命令GoAhead( );/执行动作一:直走break;case COMMAND_BACK_ID:/识别出第二条命令BackUp( );/执行动作二:倒车break;case COMMAND_LEFT_ID:/识别出第三条命令TurnLeft( );/执行动作三:左转break;case COMMAND_RIGHT_ID:/识别出第四条命令TurnRight( );/执行动作四:右转break;default:break;3.4 STC10LO8XE单片机模块本文的主控制器选用的是STC10LO8XE单片机,如图3.14所示。 STC10LO8XE工作电压为3.3V到5.5V,拥有8K的FLASH,512字节的SRAM,含有异步串行接口,40个IO接口,因此足以满足主控制系统对资源的需要;而且是高速、低功耗、超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。内部集成高可靠复位电路,针对高速通信,智能控制,强干扰场合。图3.14 STC10L08XE 构成的主控芯片STC10LO8XE单片机在非特定语音识别部分扮演主控芯片的作用,它不仅要LD3320非特定语音芯片通信,同时还要控制小车的运行状态。在非特定语音识别过程中,需要把程序代码烧录到STC10LO8XE单片机中,然后STC10LO8XE单片机通过I/O口读/写LD3320非特定语音芯片的寄存器来设置LD3320的工作状态。3.5 M-LD3320非特定语音识别模块3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 彩礼钱归还合同范本
- 销售合同范本图解
- 租空场地合同范本
- 夫妻之间借钱合同范本
- 冰箱电机转让合同范本
- 雨篷采购合同范本
- 场地玩具租赁合同范本
- 保安公司疫情合同范本
- 医院后勤岗位合同范本
- 电信bot业务合同范本
- 国家生物安全法课件
- 2025年04月广东省特种设备检测研究院东莞检测院招考笔试历年典型考题(历年真题考点)解题思路附带答案详解
- 老年人生命教育
- 租车合同免责协议模板
- 院感相关法律法规知识培训
- 《化妆品生产工艺验证指南》
- T-CPHA 36-2024 煤炭矿石码头露天堆场堆料机洒水系统技术要求
- 绿色简约实拍杨善洲介绍
- 手术室护理术中低体温预防
- 高血压科普健康宣教课件
- 2025年上半年内蒙古森工集团公开招聘工勤技能人员605名易考易错模拟试题(共500题)试卷后附参考答案
评论
0/150
提交评论