




已阅读5页,还剩52页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本科毕业设计(论文)基于语音控制的智能小车设计学 院 信息工程学院 专 业 测控技术与仪器 (计算机测控方向) 年级班别 2013级(1)班 学 号 2017年 5 月基于语音控制的智能小车设计李帅璋信息工程学院 摘 要现代社会电子产业高速发展使自动化成为广大民众的日常话题,越来越普及的语音控制系统在生活中随处可见,随着时间的推移,自动化与语音控制系统的结合也必将进入商用阶段。本文将设计一种通过无线语音控制系统模拟的未来智能语音小车,展示智能语音小车的软件、硬件设计原理。智能语音小车使用凌阳公司推出的SPCE061A 16位单片机作为主控中心,其中不仅拥有完整的系统电路,另外包含了供电、声音和复位电路等,配合其语音播放以及语音识别的特色,通过训练的语音指令命令小车使其前进、倒退、左转、右转,另外小车还支持重新语音训练。SPCE061A 16位单片机具有低电压、低功耗、高性价比等特点,配合其开发环境IDE即可完成小车的总体设计方案,其中包含了语音播放、语音识别、驱动等,最终成为一辆智能的语音控制小车。该系统是以特定人嵌入式语音识别系统为主。通过实验测试表明,在外界的环境噪音较小并且发令者发音清晰的情况下,该小车可以对经过训练后的语音指令做出动作,并且性能稳定。最后将会介绍IDE集成开发环境的功能,开发操作方法,以及如何使用小车。该设计在软硬件的角度具有前瞻性,具体说明了未来智能语音小车的发展方向,具有推广价值。关键词:SPCE061A,无线语音控制,语音识别,单片机,智能小车AbstractModern society The rapid development of the electronics industry makes automation become the daily topic of the general public. The increasingly popular voice control system can be seen everywhere in life. With the passage of time, the combination of automation and voice control system will enter the commercial stage. This article will introduce a wireless voice control system simulation of the future of intelligent voice car, display intelligent voice car software, hardware design principles. Intelligent voice car using Sunplus SPCE061A 16-bit microcontroller as the main control center, which not only has a complete system circuit, including the power supply, sound and reset circuit, with its voice playback and voice recognition features, through training Voice command command car to make it forward, back, turn left, turn right, another car also supports re-voice training. SPCE061A 16-bit microcontroller with low voltage, low power consumption, cost-effective features, with its development environment IDE can complete the overall design of the car, which includes voice playback, voice recognition, drive, etc., and ultimately become a smart voice Control the car. Experiments show that the car can be trained on the voice commands after training, and the performance is stable when the ambient noise is small and the sender is clear. The design of the hardware and software in the perspective of a forward-looking, specifically the future direction of the development of intelligent voice car, with the promotion of value.Key words:SPCE061A,Wireless voice control,Speech Recognition,Single chip,Smart car 目 录1 绪论11.1 题目背景及目的11.2 国内外研究状况11.3 题目研究内容22 语音识别小车的硬件总体方案32.1 设计要求32.2 SPCE061A总述32.2.1 SPCE061A特点32.2.2 SPCE061A性能42.2.3 SPCE061A的结构42.2.4 引脚排列52.3 SPCE061A最小系统62.4 61板硬件框图及简要说明72.4.1 61板接口说明82.4.2 61板的检测102.5 系统总体方案122.5.1 系统硬件方案132.5.2 系统控制方案142.6 车体部分介绍142.7 小车的行走原理152.8 控制板原理图152.9 全桥驱动原理162.9.1 动力驱动电路172.9.2 方向控制电路183 语音识别系统的软件设计203.1 语音识别系统203.2 语音识别系统的硬件组成203.3 语音信号的预处理213.4 特征参数提取213.5 矢量量化技术223.6 模板训练方法及匹配方法223.7 系统软件总体程序流程223.8 语音识别的层次结构及流程243.8.1 训练子程序253.8.2 语音识别子程序263.8.3 动作子程序273.8.4 中断子程序293.8.5 系统开发环境IDE及ISP工具293.9 程序中需要说明的问题304 智能语音小车的测试324.1 连接硬件324.2 代码下载324.3 训练小车334.4 声控小车344.5 重新训练344.6 语音识别测试结果35结论36参考文献37致谢38附录A39 1 绪论1.1 题目背景及目的现代社会电子技术发展迅猛,自动化也随之崛起,在语音识别已成为大众日常生活中的一部分时,预见未来的汽车也将发展成为音控驾驶。音控驾驶不仅仅需要收录的声音清晰,还需要压缩、编码、识别准确并解码,这些有关语音识别的技术如今发展还不够完善。就目前所有的成品设计来看,仅有的两种方案都有自身的缺点。使用单一的单片机往往不能实现如此复杂的功能,外加扩展则需要更多的器件,如此仅能实现基本功能,效果并不理想。第二种解决方案就是使用专为语音识别功能所开发的核心芯片,此类芯片现在市面上较多,如 ISD 、 PM50 等系列都是可以实现基本功能的芯片,缺点在于这些专为语音识别所开发的芯片功能单一,想要加入拓展比较困难,实现语音外的功能工作量更大。 本课题主要设计一辆基于语音控制的智能小车,有一定的实用价值。通过设计一个功能完善、具有实用性且代表未来发展趋势的智能语音小车系统,大学期间所学的相关主要课程可以得到全面的训练,同时发挥自身的特长。课题的综合性及难易程度适中,创新性主要体现在对有车一族的需求及安全分析上。系统的主要功能包括:语音识别功能;语音训练功能;语音控制小车功能。语音控制小车功能包括控制小车前进、后退、左转、右转功能。语音功能会在未来发展得越来越成熟,具有一定的前瞻性。1.2 国内外研究状况第一个高性能的非特定人、大词汇量连续语音识别系统Sphinx的出现,语音识别在这一时期走向深入,显著特征是HMM(Hidden Markov Model)模型和人工神经元网络(ANN)在语音识别中的成功应用。HMM模型的广泛应用应归功于AT&TBell实验室Rabiner等科学家的努力,他们把原本艰涩的HMM纯数学模型工程化,从而为更多研究者了解和认识,从而使统计方法成为了语音识别的主流。我国语音识别技术的研究水平基本上与国外同步,在汉语语音识别技术上还有自己的优势和特点,并达到国际先进水平。清华大学电子工程系语音技术与专用芯片设计课题组研发的非特定人汉语数码串连续语音识别系统的识别精度,达到94.8%(不定长数字串)和96.8%(定长数字串)。在有5%的拒识率情况下,系统识别率可以达到96.9%(不定长数字串)和98.7%(定长数字串),这是目前国际最好的识别结果之一,其性能已经接近实用水平。1.3 题目研究内容研究的主要内容为:分析课题研究的社会意义、经济价值、所处背景、发展现状以及今后的方向,并且对语音信号的识别特点进行论述,根据语音信号的声学特点建立语音信息的理想处理模型,此外,研究语音识别的系统原理,对模式识别的结构理论方法进行深入探究。设计系统软硬件,并介绍集成开发环境IDE。车体系统采用SPCE061A 16位单片机作为主控中心,将MIC作为输入模块输入声音信号,声音信号转换为电信号再输入到单片机处理声音的专用ADC通道,在增益AGC放大后,通过若干次的声音训练,将A/D转换后的数字信号声音模型存储到32K的Flash中。需要使用时,外界再次输入语音命令后,声音信号会再次通过该通道去和存储在Flash中的声音模型做对比,系统判断达到了一定的相似值后会认定为识别成功,返回相应的函数值判断命令,然后对外界语音回馈并驱动小车电机来让小车行动,根据判断的命令来控制小车的行驶状态,该过程中小车的语音回馈体现了一定的人机交互功能。2 语音识别小车的硬件总体方案2.1 设计要求利用SPCE061A单片机和智能小车控制电路板,实现下述功能:1、可以通过简单的I/O操作实现小车的前进、后退、左转、右转功能。2、配合SPCE061A语音特色,利用系统的语音播放和语音识别资源,实现语音控制功能。3、通过开发板的MIC实现人机交互对小车进行语音训练。2.2 SPCE061A总述SPCE061A是继nSP系列产品SPCE500A等之后凌阳科技推出的又一款16位结构的微控制器。与SPCE500A不同的是,在存储器资源方面考虑到用户的较少资源的需求以及便于程序调试等功能,SPCE061A里只内嵌了32K的闪存(Flash)。较高的处理速度使该单片机能够非常容易地、快速地处理复杂的数字信号。因此,与SPCE500A相比,以nSP为核心的SPCE061A微控制器是适用于数字语音识别应用领域产品的一种最经济的选择。2.2.1 SPCE061A特点1、体积小、集成度高、可靠性好且易于扩展。把各功能部件模块化地集成在一个芯片里,内部采用总线结构,因而减少了各功能部件之间的连线,提高了其可靠性和抗干扰能力。另外,模块化的结构易于系统扩展,以适应不同用户的需求。2、具有较强的中断处理能力。中断系统支持10个中断向量及10余个中断源,适合实时应用领域。3、高性能、高性价比。片内带有高寻址能力的ROM、静态RAM和多功能的I/O口。另外,nSP的指令系统提供具有较高运算速度的16位16位的乘法运算指令和内积运算指令,为其应用增添了DSP功能,使得nSP家族运用在复杂的数字信号处理方面既很便利,又比专用的DSP芯片廉价。4、功能强、效率高的指令系统。指令系统的指令格式紧凑,执行迅速,并且其指令结构提供了对高级语言的支持,这可以大大缩短产品的开发时间。5、低功耗、低电压,采用CMOS制造工艺,同时增加了软件激发的弱振方式、空闲方式和掉电方式,极大地降低了其功耗。另外,nSP家族的工作电压范围大,能在低电压供电时正常工作,且能用电池供电,这对于其在野外作业等领域中的应用具有特殊的意义。2.2.2 SPCE061A性能16位nSP微处理器、工作电压(CPU) VDD为2.43.6V ,(I/O) VDDH为2.45.5V、CPU时钟:0.32MHz49.152MHz、内置2K字SRAM、内置32K Flash、可编程音频处理、晶体振荡器、系统处于备用状态下(时钟处于停止状态),耗电仅为2A3.6V、2个16位可编程定时器/计数器(可自动预置初始计数值)、2个10位DAC(数-模转换)输出通道、32位通用可编程输入/输出端口、4个中断源可来自定时器A/B,2个外部时钟源输入、具备触键唤醒的功能、使用凌阳音频编码SACM_S240方式(2.4K位/秒),能容纳210秒的语音数据、锁相环PLL振荡器提供系统时钟信号、32768Hz实时时钟、7通道10位电压模-数转换器(ADC)和单通道声音模-数转换器、声音模-数转换器输入通道内置麦克风放大器和自动增益控制(AGC)功能、具备串行设备接口、具有低电压复位(LVR)功能和低电压监测(LVD)功能、内置在线仿真电路ICE(In- Circuit Emulator)接口、具有保密能力、具有WatchDog功能。2.2.3 SPCE061A的结构 SPCE061A的结构如下图2.1所示。图2.1 SPCE061A的结构SPCE061A主要包括输入/输出端口、定时器/计数器、数/模转换、模/数转换、串行设备输入输出、通用异步串行接口、低电压监测和复位等部分,并且内置在线仿真电路ICE接口,较高的处理速度使其能够快速的处理复杂的数字信号。2.2.4 引脚排列SPCE061A有两种封装片,排列如下图2.2所示,第一种为80个引脚,LQFP80封装,第二种为84个引脚,PLCC84封装形式。(a)LQFP80封装(b)PLCC84封装图2.2 SPCE061A的两种封装排列图2.3 SPCE061A最小系统 最小系统接线如下图2.3所示,在OSC0、OSC1端接上晶振及谐振电容,在锁相环压控振荡器的阻容输入VCP端接上相应的电容电阻后即可工作,其它不用的电源端和地端接上0.1F的去藕电容提高抗干扰能力。图2.3 SPCE061A最小系统原理图2.4 61板硬件框图及简要说明框图如图2.4所示,文字说明如表2.1所示。表2.1 框图说明POWER 5v&3.3V供电电路 PLL 锁向环外部电路 Power电源指示灯 Sleep睡眠指示灯 RESET 复位电路 K4 复位按键 PROBE 在线调试器串行5pinS5 EZ_PROBE和PROBE切换的3PIN单排针 J3 2pin喇叭插针 EZ_PROBE 下载线的5pin接口 DAC 一路音频输出电路 MIC 麦克风输入电路 OSC 32768晶振电路 VRT A/D转换外部参考电压输入接口 R/C 其他外围电阻电容 K1K3 扩展的按键:接IOA0IOA2 PORTA/B32个I/O口 SPCE061A 61板核心:16位微处理器 图2.4 61板硬件框图2.4.1 61板接口说明 61板接口说明如下图2.5所示。图2.5 61板接口1、输入/输出(I/O)接口61板将SPCE061A的32个I/O口全部引出:IOA0IOA15,IOB0IOB15,对应的SPCE061A引脚为:A口,4148、53、5460;B口,51、8176、6864。而且该I/O口是可编程的,即可以设置为输入或输出。设置为输入时,分为悬浮输入或非悬浮输入,非悬浮输入又可以设置为上拉输入或是下拉输入;在5V情况下,上拉电阻为150K,下拉电阻为110K;设置为输出时,可以选择同相输出或者反相输出。2、音频输入/输出接口61板具有强大的语音处理功能,如图2.5所示,X1是语音的MIC输入端,自带自动增益(AGC)控制, J3是语音输出接口,一个2pin的插针外接喇叭,由DAC输出引脚21或22经语音集成放大器SPY0030A放大,然后输出,SPY0030A是凌阳的一款芯片,功能相当于LM386,但是比LM386音质好,它可以工作在2.46.0V范围内,最大输出功率可达700mW(LM386必须工作在4V以上,而且功率只有100mW)。3、在线调试器PROBE和EZ_PROBE接口图2.5中J4为PROBE的接口,该接口有5pin,我们就是通过它将PROBE与PC机连接起来进行调试、仿真和下载程序的。这样,就不需要再用仿真器和编程器了。图2.5中的J11是EZ_PROBE的接口,可以使用一根下载线用作程序的下载,一端连接PC机的25pin并口,另外一端接61板的5pin EZ_PROBE接口。 4、电源接口图2.5中J10是电源接口,61板的内核SPCE061A电压要求为3.3V,而I/O 端口的电压可以选择3.3V也可以选择5V。所以,在板子上具有两种工作电压:5V和3.3V。对应的引脚中15、36和7必须为3.3V, 对于I/O端口的电压51、52、75可以为3.3V也可以是5V,这两种电平的选择通过跳线J5来选择。61板的供电电源系统采用用户多种选择方式: (1)5V供电:用户可以用3节电池来供电,5V直流电压直接通过SPY0029(相当于一般3.3V稳压器)稳压到3.3V,为整个61板提供了5V和3.3V两种电平的电压。另外也可以直接外接5V的直流稳压源供电,5V电压再通过SPY0029稳压到3.3V。 (2)3.3V供电:可以提供直流3.3V电压为实验板进行供电,此时整个板子有3.3V电压,I/O端口电压此时只有一种选择。 需要注意的是由于SPY0029A最大输出电流为50mA,所以如果需要外接一些模组时要先考虑负载能力。 5、外部复位 复位是对61板内部的硬件初始化,61板本身具有上电复位功能,即通电就自动复位,另外,还具有外部复位电路,即在引脚6上外加一个低电平就可令其复位。如图2.5中的RESET按键。 2.4.2 61板的检测 主要测试部分:I/O口(A口作为输入,B口作为输出);睡眠功能(进入睡眠状态,绿色指示灯点亮);A/D转换输入(B口的低7位作为模拟电压源输出,对应A口的7个通道采样转换);MIC输入及语音输出(同时实现A/D和D/A转换功能)。 61板自检的具体操作步骤,如图2.6所示。图2.6 61板自检步骤1、连接电源,可以连接电池盒(3节),也可以直接接5V的稳压源。现象:当电源接通时,红色的发光二极管会点亮。同时会有语音提示:“欢迎进入自检模式”,此时因为还没有连线,所以会听到:“I/O测试失败”的警告,进行第二步的操作。2、用排线分别将IOA口的低8位和IOB口的低8位相连,IOA口的高8位和IOB口的高8位相连,然后按下RESET复位键。现象:当按下RESET复位键后,程序重新开始执行,语音提示“欢迎进入自检模式”,当听到语音提示“I/O测试成功”后,进行第三步操作。3、按K1键进行睡眠功能测试。现象:如果测试成功,会看到绿色的发光二极管闪亮一下,并有语音提示“睡眠测试成功”,否则提示“睡眠测试失败”,然后进行第四步操作。4、按下K2键进行A/D转换的测试。现象:语音提示:“A/D测试成功”,否则提示“A/D测试失败”,进入最后一步操作。5、拔掉第一步测试时的排线,并按下K3键测试MIC输入及D/A转换输出是否正常,如果在按下K3键后,喇叭发出啸叫声,用手按在MIC上可消除啸叫声。现象:可以在MIC上轻轻的拍几下,同时听是否有声音输出,如果有,则说明MIC输入和D/A转换输出部分正常。 以上操作,只有当I/O测试成功后,按键才会有效。 实体61板如图2.7所示。图2.7 61板实物图2.5 系统总体方案 采用SPCE061A实现语音控制小车方案,由于SPCE061A内部具有语音识别和语音播放功能,所以只需要扩展基本的MIC和语音功放即可,该方案结构如图2.8所示。图2.8 基于SPCE061A的语音控制小车实现方案2.5.1 系统硬件方案 系统组成主要包括以下两部分:SPCE061A精简开发板、语音小车控制电路板。 图中的语音输入部分MIC_ IN、按键输入KEY、声音输出部分的功率放大环节等已经做到了精简的61开发板上,为我们使用提供了很大的方便。在电机的驱动方面,采用L298N电机驱动模块及全桥驱动技术,利用四个I/O端口分为两组分别实现两个电机的正传、反转和停三态运行。系统的结构框图如图2.9所示,硬件模块连接图如图2.10所示。图2.9 系统结构图图2.10 硬件模块连线图2.5.2 系统控制方案 小车的运动控制采用语音控制和中断定时控制相结合,通过语音触发小车动作,在每一次动作触发的同时启动定时器,如果小车由于某些原因不能正常的接收语音指令,则只要定时时间到,中断服务程序会发出指令让小车停下来。 2.6 车体部分介绍系统的硬件方面,由于大部分的功能实现都是在61板上完成的,只有电机控制部分电路另外设计在一块独立的电路板上,我们称之为控制板。下面介绍小车的结构和运行原理以及控制电路板的结构和功能实现。 语音控制小车为三轮结构,双前轮单后轮配置。其中前面两个车轮由双电机控制,为小车提供动力,直行或左右单边启动来控制小车的前进、后退及转弯,在任何情况下双前轮始终保持中间位置。后面单个车轮为万向轮,可360度旋转,目的是为整个小车提供平衡。所以又称前面的轮子为驱动轮,后面的轮子为方向轮。2.7 小车的行走原理 前进:根据小车的整体结构,在任何情况下,前轮始终保持中间状态,此时双电机正转同时启动,即可完成前进动作。 后退:后退动作与前进动作正好相反,前轮仍然保持中间状态,此时双电机倒转同时启动,即可完成后退动作。左转:左边电机不转,右边电机正转,即可完成左转动作。右转:右边电机不转,左边电机正转,即可完成右转动作。2.8 控制板原理图 控制板主要包括:接口电路、电源电路和两路电机的驱动电路,控制板原理图如图2.11所示。 接口电路:接口电路负责将61板的I/O接口信号传送给控制电路板,I/O信号主要为控制电机需要的IOB8IOB11这四路信号,同时为了方便后续的开发和完善,预留了IOB12IOB15以及IOA8IOA15接口可以在这些接口上添加一些传感器。 电源部分:整个小车有4个电源信号:电池电源,控制板工作电源,61板工作电源,61板的I/O输出电源。系统供电由电池提供,控制板直接采用电池供电(VCC),然后经二极管D1后产生61板电源(VCC_61),通过61板的Vio 跳线产生61板的端口电源(V1)。二极管D1的作用:4节电池提供的电压VCC 最大可达到6V,D1可有效地降压,于此同时可以防止电源接反烧坏61 板。图2.11 控制板原理图2.9 全桥驱动原理 全桥驱动又称H桥驱动,H桥工作原理:H桥一共有四个臂,分别为B1B4,每个臂由一个开关控制,示例中为三极管Q1Q4。 如果让Q1、Q2导通Q3、Q4关断,如图2.12(a)所示,此时电流将会流经Q1、负载、Q2组成的回路,电机正转。如果让Q1、Q2关断Q3、Q4导通,如图2.12(b)所示,此时电流将会流经Q3、负载、Q4组成的回路,电机反转。如果让Q1、Q2关断Q3、Q4也关断,负载Load两端悬空,如图2.13(a)所示,此时电机停转。这样就实现了电机的正转、反转、停止三态控制。 如果让Q1、Q2导通Q3、Q4也导通,如图2.13(b)所示,那么电流将会流经Q1、Q4组成的回路以及Q2和Q3组成的回路,这时桥臂上会出现很大的短路电流。在实际应用时应注意避免出现桥臂短路的情况,因为这会给电路带来很大的危害,严重的会烧毁电路。 (a) (b)图2.12 全桥驱动原理1 (a) (b)图2.13 全桥驱动原理22.9.1 动力驱动电路 动力来源由两前轮实现,为小车的行动提供动力。如图2.14所示,驱动电路是一个全桥驱动电路,Q1、Q2、Q3、Q4四个三极管组成四个桥臂,Q1和Q4组成一组,Q2和Q3组成一组,Q5控制Q2、Q3的导通与断开,Q6控制Q1和Q4的导通与断开,并且Q5、Q6由IOB9和IOB8控制,这样就可以通过IOB8和IOB9控制四个桥臂的导通与断开,从而控制两个电机轮的运行状态,使之正转、反转或停转,进而控制小车的行动状态。 图2.14 动力驱动电路当IOB8为高电平、IOB9为低电平时Q1和Q4导通,Q2和Q3截止,电机正转,小车前进;反之当IOB8为低电平、IOB9为高电平时Q1和Q4截止,Q2和Q3导通,电机反转,小车后退;而当IOB8、IOB9同为低电平时Q1、Q2、Q3和Q4都截止,电机停转,小车停止运动。 注意:IOB8、IOB9不能同时为高电平,这样会造成驱动全桥短路现象。2.9.2 方向控制电路 方向控制由两前轮实现,包括左转和右转。方向控制电路也是一个全桥驱动电路,如图2.15所示,Q7、Q8、Q9、Q10四个三极管组成四个桥臂,Q7和Q10组成一组,Q8和Q9组成一组,Q11控制Q8、Q9的导通与断开,Q12控制Q7和Q10的导通与断开,并且Q11、Q12由IOB10和IOB11控制,这样就可以通过IOB10和IOB11控制单个前轮电机,进而控制小车的左转和右转。 图2.15 方向控制电路当IOB10为高电平、IOB11为低电平时Q8和Q9导通,Q7和Q10截止,前轮右电机正转,小车向左偏转;反之当IOB10为低电平、IOB11为高电平时Q8和Q9截止,Q7和Q10导通,前轮左电机正转,小车向右偏转;而当IOB10、IOB11同为低电平时Q8和Q9截止,Q7和Q10也截止,两个电机停转,保持停止。 注意:IOB10、IOB11不能同时为高电平,这样会造成驱动全桥短路现象。 电机驱动板如图2.16所示,双电机及电池盒如图2.17所示:图2.16 电机驱动板图2.17 小车双电机及电池盒193 语音识别系统的软件设计3.1 语音识别系统嵌入式语音识别系统都采用了模式匹配的原理。从图3.1中可以看出语音识别一般分为两个步骤。第一步是系统“学习”或“训练”阶段。这一阶段的任务是建立识别基本单元的声学模型以及进行文法分析的语言模型,即构建参考模式库。第二是“识别”或“测试”阶段。根据识别系统的类型选择能够满足要求的一种识别方法,采用语音分析方法分析出这种识别方法所需要的语音特征参数,按照一定的准则和测度与参考模式库中的模型进行比较,通过判决得出结果。图3.1 语音识别系统的结构原理3.2 语音识别系统的硬件组成嵌入式语音识别系统硬件框图如图3.2所示。在硬件系统中,前端滤波是为了消除干扰和可能造成混淆的成分。由于语音信号是较弱的信号,因此,要对输入的语音信号进行放大,为了使语音信号的放大值控制在一定的范围内,在硬件中设有自动增益控制AGC,而AID和D/A是进行语音信号数字化转换和语音播放不可缺少的部分,功放用于驱动扬声器进行语音的播放。RAM用于存储提取的语音特征参数,而语音提示部分可固化在ROM中或存储在Flash内,语音识别程序也被存储在ROM或Flash中。控制对象是根据此系统所应用的领域不同而有所区别。在设计时,根据对控制对象的不同,还要考虑相应的驱动电路。图3.2 嵌入式语音识别系统硬件框图如果构成的识别系统采用嵌入式的方式话,就需要一个完整的集成电路微型处理芯片来构成,把在PC系统中外部设备都集中到一块芯片上,还有要将软件系统也集中在一起。3.3 语音信号的预处理所谓语音信号的预处理就是信号还未进入到微型控制器中,对来自麦克风转换与放大电路中的音频信号采取预先的处理,这是整个识别系统处理电路的基础,在预处理中,电路设计的好不好,选择的处理方法是否正确,都关系到整个电动小车控制工程的质量。语音信号的预处理有采样和噪音去除、端点检测、预加重技术以及加窗和分帧处理。3.4 特征参数提取语音信号完成分帧处理和端点检测后,下一步就是特征参数的提取。电路的识别过程中,不可能按照语音信号的原始形状来进行,要通过想要的变换才能让系统能够正常的进行辨识,我们在变换的时候必须尽可能的反映出信号的原貌,也就是要能反应说话人的真实的情景,声音变化的频率、声音的强弱以及声音所反映出的节奏,如果能够表现说话人原本的说话背景,那就是最好的参数特性。语音特征参数可以是能量、基本频率、共振峰值等语音参数,目前在语音识别中较为常用的特征参数为线性预测倒谱系数(LPCC)与Mel倒谱系数(MFCC)。二者都是将语音从时域变换到谱域上,前者从人的发声模型角度出发,利用线性预测编码技术求倒谱系数,后者则构造人的听觉模型,以语音通过该模型(滤波器组)的输出为声学特征,直接通过离散傅里叶变换(DFT)进行变换。3.5 矢量量化技术由于每个识别词条提取的线性倒谱系数的数据很大,不能直接用于建立隐马尔可夫模型,所以要进行有效的数据压缩,因此采用矢量量化技术进行压缩,即将语音信息每一帧的特征参数构成10维空间中的一个矢量量化器,然后进行矢量量化。3.6 模板训练方法及匹配方法语音识别过程就是一个模板匹配的过程,模板训练的好坏直接关系到语音识别系统识别率的高低。为了得到一个良好的模板,往往需要有大量的原始语音数据来训练这个语音模型,特别是对于非特定人的语音识别系统来说。模板训练是按照一定的准则,从大量已知模型中获取表征该模式本质特征的模板参数,这些方法有偶然性训练法、鲁棒性训练法和聚类训练法。模板匹配方法有隐马尔科夫模型、动态时间归整和人工神经网络。目前在语音识别领域中,最典型的方法就是采用隐马尔可夫模型方法,先进行大量的训练形成模型,然后采用一定的搜索算法进行识别,采用隐马尔可夫模型HMM的Bam-Welch算法对HMM进行训练,采用前后向算法和Vterbi算法进行识别。而DTW是较早的一种模式匹配和模型训练技术,它应用动态规划方法成功解决了语音信号特征参数序列比较时经常不等的难题,在孤立词语音识别中获得了良好的性能。基于动态时间归整匹配的DTW算法从目前来看,可能是一个最为小巧的语音识别算法,系统开销小,识别速度快,在小词汇量的语音命令控制系统中是一个非常有效的算法。但是近年来,美国等先进国家又相继投入巨额资金,制定出研究计划,开展对脑功能和新型智能计算机的研究。神经网络是由大量处理单元(神经元、处理器件、光电器件等)广泛互联而成的网络。它是在现代神经科学研究成果的基础上提出来的,反映了人脑功能的基本特性,然而它不是人脑的真是描写,只是它的某种抽象、简化以及模拟。从这个意义上来讲,把它叫做人工神经网络更为适合。3.7 系统软件总体程序流程 系统的总体程序流程如图3.3所示。 图3.3 系统总体流程图共分为四大部分:初始化部分、训练部分、识别部分、重训操作。 初始化部分:初始化操作将 IOB8IOB11设置为输出端,用以控制电机,必要时还要有对应的输入端设置和PWM 端口设置等。 训练部分:训练部分完成的工作就是建立语音模型。程序一开始判断小车是否被训练过,如果没有训练过则要求对其进行训练,并且会在训练成功之后将训练的模型存储到Flash,在以后使用时不需要再次重新训练。重新训练:如果已经训练过会把存储在Flash中的模型调出来装载到辨识器中。 识别部分:在识别环节当中,如果辨识结果是名字,则为待命状态,然后等待动作命令。如果辨识结果为动作指令,小车会语音告知相应动作并执行该动作。重训操作:考虑到有重新训练的需求,设置了重新训练的按键(61板的KEY3按键),循环扫描该按键,一旦检测到此键按下,则将擦除训练标志位(0xe000单元),并等待复位。复位后,程序重新执行,当检测到训练标志位为0xffff时会要求重新对其进行训练。3.8 语音识别的层次结构及流程根据语音信号的特点,对语音通信系统的处理,首先要进行分层次处理,再分别对每个层进行具体的操作处理,最终实现对语音系统的模拟和识别。人类语音的通信过程揭示了人类产生语音理解的过程,如图3.4所示,由此可推,我们可按照通信系统中的分层概念,利用这种处理方式来设计出相应的语音系统。图3.4 人类语音的通信过程语音识别的具体流程如图3.5所示。图3.5 语音识别流程说明框图3.8.1 训练子程序当程序检测到训练标志位BS_Flag的内容为0xffff,就会要求操作者对它进行训练操作,训练操作的过程如图3.6所示:训练采用两次训练获取结果的方式,以训练名字为例,小车首先会提示:给我取个名字吧,这时你可以告诉它一个名字(比如小车 ),然后它会提示:请再说一遍,这时再次告诉它名字(小车),如果两次的声音差别不大,小车就能够成功的建立模型,名称训练成功;如果没能够成功的建立模型,小车会告知失败的原因并要求重新训练。成功训练名称后会给出下一条待训练指令提示音。依次训练小车的名称前进指令倒车指令左转指令右转指令,全部训练成功子程序返回,训练结束。图3.6 训练流程图下面是训练部分的子程序,在训练时如果训练不成功TrainWord()返回值不为0,要求重复训练,只有当训练成功,TrainWord()返回0,进行下一条指令训练。 void TrainSD() 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.8.2 语音识别子程序语音识别流程如图3.7所示:首先获取辨识器的辨识结果,判断是否有语音触发,如果有语音触发则会返回识别结果的ID号,ID号对应名称或者对应不同的动作。如果ID号为名称,则不运动,处于待命状态,等待下一次的指令触发;如果ID号为动作,则语音告知将要执行的动作,并执行该动作。图3.7 语音识别部分流程图3.8.3 动作子程序动作子程序包括:前进、倒车、左拐、右拐、停车子程序。 前进:void GoAhead() /前进 PlaySnd(S_ACT1,3); /语音提示 *P_IOB_Data=0x0100; /前进 *P_INT_Mask |= 0x0004; /开2Hz中断 _asm(int fiq,irq); uiTimecont = 0; /清定时器 倒车:void BackUp() /倒退 PlaySnd(S_ACT2,3); /语音提示 *P_IOB_Data=0x0200; /倒车 *P_INT_Mask |= 0x0004; /开2Hz中断 _asm(int fiq,irq); uiTimecont = 0; /清定时器 左转:void TurnLeft() /左转 PlaySnd(S_GJG,3); /播放提示音 *P_IOB_Data=0x0900; / Delay(); /延时 *P_IOB_Data=0x0500; / *P_INT_Mask |= 0x0004; /打开2Hz中断 _asm(int fiq,irq); /允许总中断 uiTimecont = 0; /清定时器 右转:void TurnLeft() /左转 PlaySnd(S_GJG,3); /播放提示音 *P_IOB_Data=0x0500; / Delay(); /延时 *P_IOB_Data=0x0900; /*P_INT_Mask |= 0x0004; /打开2Hz中断 _asm(int fiq,irq); /允许总中断 uiTimecont = 0; /清定时器 3.8.4 中断子程序 虽然已经有了前进、后退、左转和右转等语音控制指令,但是考虑环境的干扰因素,小车运行时的噪音影响和有效距离的限制,小车运行后可能接收不到语音指令而一直运行。为了防止出现这种情况,加入了时间控制,在启动小车运行的同时启动定时器,定时器时间到停止小车的运行,该定时器借助于2Hz 定时中断完成,图3.8所示为该程序的流程图。可以在程序中修改uiTimeset 参数来控制运行时间,当uiTimeset=2 时,运行时间为 1s,以此类推。图3.8 2Hz定时中断子函数3.8.5 系统开发环境IDE及ISP工具语音控制板配有单片机开发环境IDE。此工具在Windows环境下操作,支持标准C语言和汇编语言,集编译、编程、链接、调试和仿真于一体,应用方便简单易学。同时还提供大量的编程函数库,大大加快了软件开发的进程。集成开发环境IDE具有友好的交互界面、下拉菜单、快捷键和快速访问命令列表等,使编程、调试工作方便且高效。此外,它的软件仿真功能可以在不连接仿真板的情况下模拟硬件的各项功能来调试程序。目前SPCE061A开发板(简称61板)提供并口和USB口两种下载代码的方式,但是目前的新型计算机可能没有并口,大多数的笔记本电脑更是只有USB接口,虽然可以利用凌阳科技大学计划提供的USB-Probe进行调试,但价格较贵,这给广大爱好者下载程序带来了许多不便,为此凌阳科技大学计划推出了61板的ISP下载解决方案。要实现61板的ISP方式下载代码,需要软件和硬件两方面的支持。软件部分是需要将 ISP引导代码写入到61板的Flash中,该过程只需要进行一次,以后再使用ISP方式对 61板下载代码时就可以跳过此步骤;硬件部分主要是做计算机与61板的接口,连接完成后使用PC端工具便可实现ISP方式下载,此时只需要一根USB转接数据线即可。USB转串口器如图3.9所示:图3.9 USB转接器3.9 程序中需要说明的问题 在程序中有几个地方不易理解,需要特别说明一下: 1、小车有没有被训练过是怎么知道的? 在这里利用了一个特殊的Flash单元,语音模型存储区首单元(该示例程序中为0xe000单元)。当Flash在初始化以后,或者在擦除后为0xffff,在成功训练并存储后为0x0055(该值由辨识器自动生成)。这样就可以根据这个单元的值来判断是否经过训练。 2、为什么已经训练过的系统在重新运行时还要进行模型装载? 在首次训练完成之后,辨识器中保存着训练的模型,但是系统一旦复位辨识器中的模型就会丢失,所以在重新运行时必须把存储在Flash中的语音模型装载到辨识器(RAM)中去。4 智能语音小车的测试4.1 连接硬件 采用普通61板(排针在61板正面)控制板的J5焊接10PIN排针,用10PIN排线将61板的J7(IOBH)与控制板的J5连接,连接时注意方向。最后把喇叭接好,小车的硬件连接就完成了。此处我已将小车扬声器固定在车体上,如图4.1所示: 图4.1 小车扬声器4.2 代码下载硬件连接完成之后,检查无误,接下来就可以下载程序了。具体的步骤为: 1、打开集成开发环境,打开“Car_Demo.spj”文件,编译链接,如果看不到Car_Demo.spj,请在弹出的对话
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025股权质押合同范本
- 拿来主义的论证特点
- 2025年工业互联网平台网络隔离技术在网络安全技术应用优势中的应用报告
- 硅PU篮球场施工与运动场地标识系统安装合同
- 跨国公司员工劳动合同终止与国际转移合同
- 日本制造业出国劳务合同签订及法律风险防范
- 新能源行业2025碳减排路径研究报告:技术创新引领
- 知识产权贯标与风险防控一体化咨询服务合同
- 离异家庭子女抚养费追加及支付条件变更协议
- 2025年新能源行业绿色发展投资分析与发展前景报告
- 燃气热水器安全教育
- 五年(2020-2024)高考地理真题分类汇编专题02(地球运动)+原卷版
- 2024年山东省济南市中考语文试题卷(含答案)
- 【蚂蚁保】2024中国商业医疗险发展研究蓝皮书
- 工作生活平衡总结
- 装配式建筑装饰装修技术 课件 模块五 装配式隔墙
- 药事管理工作制度及操作规程
- JT-T-883-2014营运车辆行驶危险预警系统技术要求和试验方法
- 管理百年-知到答案、智慧树答案
- 五年级安全标志提醒你
- 脑死亡判定标准
评论
0/150
提交评论