语音识别机器人的设计—毕业论文.docx

上传人:小飞机 文档编号:1675621 上传时间:2022-12-13 格式:DOCX 页数:26 大小:371.53KB
返回 下载 相关 举报
语音识别机器人的设计—毕业论文.docx_第1页
第1页 / 共26页
语音识别机器人的设计—毕业论文.docx_第2页
第2页 / 共26页
语音识别机器人的设计—毕业论文.docx_第3页
第3页 / 共26页
语音识别机器人的设计—毕业论文.docx_第4页
第4页 / 共26页
语音识别机器人的设计—毕业论文.docx_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《语音识别机器人的设计—毕业论文.docx》由会员分享,可在线阅读,更多相关《语音识别机器人的设计—毕业论文.docx(26页珍藏版)》请在三一办公上搜索。

1、重庆邮电大学毕业论文(设计) 毕业论文(设计)题 目 语音识别机器人的设计 系 部 电子信息工程 专 业 电子信息工程 年级 06级 学生姓名 学 号 指导教师 语音识别机器人的设计【摘 要】 语音识别可划分为训练和识别两个过程。在第一阶段,语音识别系统对人类的语言进行学习,把学习内容组成语音库存储起来,在第二阶段就可以把当前输入的语音在语音库中查找相应的词义或语义。凌阳16位SPCE061A单片机内嵌32K字闪存,2K字SRAM,内置10位ADC、DAC,有多达14个的中断源。它的CPU内核采用16位具有DSP功能的微处理器芯片, 而且CPU可最高工作在49MHz的主频下,能够非常容易地、快

2、速地处理复杂的数字信号,因此与其他类型的单片机相比,在数字语音处理方面SPCE061A更具有优势。基于SPCE061A设计了一个具有语音识别功能的机器人。经过训练,训练人可使用各种命令让机器人完成许多有趣的动作,使得人机交互更具智能化。【关键词】SPCE061A单片机 语音识别 机器人The Design of the Speech Recognition Robot【Abstract】 The speech recognition is divided into two stages, namely, training and recognition. At the first stage,

3、 the speech recognition system learns about the human language and stores what it has learned in a speech database. Then at the next stage, the meaning of each inputted speech can immediately be found in the speech database. Sunplus 16-bit SPCE061ASCM is embedded with 32K word Flash and 2K word SRAM

4、, with built-in 10-bit ADC and DAC as well as more than 14 interrupt sources. The core of its CPU is a 16-bit microprocessor chip which has the function of DSP. Besides, the CPU can work with a frequency up to 49 MHz, and process complex digital signals easily and quickly. Therefore, compared with o

5、ther types of SCM, SPCE061A has more advantages in speech processing. Based on SPCE061A, a speech recognition robot has been designed. After training, the robot can complete many interesting actions according to the orders, which makes the human-computer interaction more intelligent.【Key words】SPCE0

6、61A SCM Speech Recognition Robot目 录绪论11 SPCE061A单片机11.1 SPCE061A简介11.2 芯片特性11.3 SPCE061A精简开发板22 所用语音算法22.1语音识别算法22.1.1 语音识别概述22.1.2 语音识别原理22.1.3 SPCE061A实现语音识别的步骤32.2 凌阳音频概述42.2.1音频压缩编码42.2.2 凌阳语音的播放、录制、合成和辨识52.2.3 常用的应用程序接口API的功能及应用53 系统总体设计方案84 系统的硬件设计94.1 SPCE061A最小系统94.2 SPCE061A的时钟104.2.1 时钟电路1

7、04.2.2 锁相环104.2.3 系统时钟114.3 电源模块134.4 语音录放134.4.1 录音134.4.2 放音144.5 机器人硬件驱动电路145 系统软件设计155.1 擦除FLASH模块165.2 位操作模块175.3 语音播放函数17参考文献20附录21致 谢2222绪论 目前制造业市场上,工业机器人具有相当大的市场潜力,要使工业机器人真正应用于生产线上的各个方面,满足人们日益增长的需求,就离不开高性能的语音识别控制系统。随着计算机软硬件技术、半导体技术、电子技术、通讯技术等的飞速发展人类已经进入后PC时代。 语音识别技术得到了迅猛发展, 支持语音识别的各种产品纷纷面世。人

8、类实现了语音命令控制空调、电视、灯光、自动窗帘等的使用,让人们的生活“随音所欲”,更加舒适,更加便捷。基于凌阳16位SPCE061A单片机设计了一个具有语音识别功能的机器人。在经过训练后使机器人对训练人的命令做出应答,完成跳两首舞曲、走步、转向、转头、发射飞盘等动作。1 SPCE061A单片机本系统采用凌阳16位SPCE061A单片机作为控制中心,对输入的语音指令进行识别和处理,从而驱动机器人不同部位的直流电机,做出前进、后退、左传、右转等不同动作。1.1 SPCE061A简介SPCE061A是凌阳科技研发生产的性价比很高的一款16位单片机,使用它可以非常方便灵活的实现语音的录放系统,该芯片拥

9、有八路10位精度的ADC,其中一路为音频转换通道,并且内置有自动增益电路,用于录音。两路10精度DAC,只需外接功放(SPY0030A)即可完成放音。凌阳16位单片机所拥的一套指令系统和集成开发环境具有易学易用、效率高等特点。在集成开发环境中,支持标准C语言编程,并可以实现C语言与凌阳汇编语言的相互调用,语音的录放只需调用相应的库函数就可实现。 SPCE061A片内还集成了一个ICE(在线仿真电路)接口,使得对芯片的编程和仿真变得非常方便,而且ICE接口不占用芯片上的硬件资源,结合凌阳科技提供的集成开发环境(unSP IDE)可以对芯片进行仿真;而程序的下载(烧写)也是通过该接口进行下载。1.

10、2 芯片特性SPCE061A 性能简介1:(1) 16位微处理器(2) 工作电压(CPU)VDD 为3.03.6V,(I/O)VDDH 为3.05.5V(3) CPU 时钟:0.3249.152MHz(4) 内置2K字SRAM(5) 内置32K字FLASH(6) 可编程音频处理(7) 晶体振荡器(8) 系统处于备用状态下(时钟处于停止状态),耗电仅为2uA/3.6V(9) 2个16 位可编程定时器/计数器(可自动预置初始计数值)(10) 2个10 位 DAC(数/模转换)输出通道(11) 32位通用可编程输入/输出通道(12) 14个中断源可来自定时器 A/B、时基、2个外部时钟源输入和键唤醒

11、(13) 具备键唤醒的功能(14) 使用凌阳音频编码SACM_S480可以播放压缩的语音资源(15) 锁相环PLL振荡器提供系统时钟信号(16) 32768Hz实时时钟(17) 7通道10位电压模/数转换器(ADC)和单通道声音模/数转换器(18) 声音模/数转换器输入通道内置麦克风放大器,并具有自动增益控制(AGC)功能(19) 具备串行设备接口(SIO)(20) 具备低电压复位(LVR)功能和低电压检测(LVD)功能(21) 内置ICE(在线仿真电路)接口(22) 具有 WatchDog 功能1.3 SPCE061A精简开发板SPCE061A精简开发板(简称61板),是以凌阳16位SPCE

12、061A单片机为核心的精简开发、仿真实验板。61板除了具备单片机最小系统电路外,还包括电源电路、音频电路(含MIC输入部分和DAC音频输出部分)、复位电路等。61板上有调试器接口(Probe接口)以及下载线接口(EZ_Probe接口),分别可接凌阳科技的在线调试器、简易下载器。实现程序的下载、在线仿真调试只需配合unSP IDE使用。2 所用语音算法2.1语音识别算法2.1.1 语音识别概述根据对说话人的依赖程度,分为:(1) 特定人语音识别(SD):只能辨认特定使用者的语音,训练使用。(2) 非特定人语音识别(SI):可辨认任何人的语音,无须训练。根据对说话方式的要求,分为:(1) 孤立词识

13、别:每次只能识别单个词汇。(2) 连续语音识别:用者以正常语速说话,即可识别其中的语句。 2.1.2 语音识别原理特征提取,抽取反应语音本质的特征参数,形成特征矢量序列。语音模型库,从一个或多个讲话者多次重复讲话中提取的语音参数模板。匹配检测,把输入语音的特征参数与语音模型库进行比较分析,得到识别结果。语音识别原理参看图 2-1,如下:图 2-1 语音识别原理2.1.3 SPCE061A实现语音识别的步骤SPCE061A实现语音识别的步骤,分为训练部分与识别部分,以及在训练、识别过程中中断的情况,参看图 2-2,如下:图 2-2 SPCE061A实现语音识别2.2 凌阳音频概述我们所说的音频是

14、指频率在20Hz20KHz的声音信号,分为:波形声音、语音和音乐三种,其中波形声音就是自然界中所有的声音,是声音数字化的基础。语音也可以表示为波形声音,但波形声音表示不出语言、语音学的内涵。语音是对讲话声音的一次抽象,是语言的载体,是人类社会特有的一种信息系统,是社会交际工具的符号。音乐与语音相对更规范一些,是符号化了的声音。但音乐不能对所有的声音进行符号化。为了让数字计算机更加便利处理音频信号,需要将模拟的(连续的)声音波形数字化(离散化),该过程主要包括采样和量化两个方面。数字音频的质量取决于:采样频率和量化位数这两个重要参数。此外,声道的数目、相应的音频设备也是影响音频质量的原因。语音处

15、理技术是建立在语言学和数字信号处理基础之上的综合学科,其过程大致可以分为A/D采样输入、编码处理、存储、解码处理和D/A等。如今,要实现语音处理有多种渠道,可以选用专用语音芯片也可以选用单片机,二者区别参看表 21,如下:表 21 语音处理器件性能对照表2所选器件音质语音播放长度和段落价格专用语音芯片好受限制较高单片机由AD、DA精度、压缩算法等决定由存储空间决定有优势SPCE061A单片机具有八路10位ADC和两路10位DAC,两个16位可编程定时器/计数器,内置MIC放大器和自动增益控制(AGC)电路,CPU时钟主频最高达49MHz且具有DSP功能,有能力执行复杂压缩算法。所以在选择具有语

16、音处理功能单片机时,SPCE061A单片机可谓是上上之选。SPCE061A将A/D、编码算法、解码算法、存储及D/A做成相应的模块,每个模块都有其应用程序接口API,要实现语音处理,只用了解每个模块所要实现的功能及参数的内容,然后调用该API函数即可。不同音频质量等级的编码技术标准(频响)参看表 22,如下:表 22 音频质量等级编码技术标准2信号类型频率范围(Hz)采样率(KHz)量化精度(位)电话话音200340088宽带音频(AM质量)5070001616调频广播(FM质量)2015K37.816高质量音频(CD 质量)2020K44.116凌阳音频压缩算法处理的语音信号的范围是200H

17、z3.4KHz的电话话音。2.2.1音频压缩编码2.2.1.1 音频压缩编码基础音频压缩编码中的数据量:(采样频率量化位数)/(字节数)声道数目压缩编码的目的,通过对资料的压缩,达到高效率存储和转换资料的结果,即在保证一定声音质量的条件下,以最小的资料率来表达和传送声音信息。压缩编码的必要性,未经压缩编码的音频资料量很大,用来传输或存储是不容易实现的。所以要通过对信号趋势的预测和冗余信息处理,进行资料的压缩,这样就可以使我们用较少的资源建立更多的信息。常见的几种音频压缩编码:(1) 波形编码2,将时间域信号直接变换为数字代码,尽量真实地还原波形。波形编码的基本原理是在时间轴上对模拟语音按一定的

18、速率抽样,然后将幅度样本分层量化,并用代码表示。译码是其反过程,将收到的数字序列经过译码和滤波恢复成模拟信号。(2) 参数编码2,参数编码又称为声源编码,是将信源信号在频率域或其它正交变换域提取特征参数,并将其变换成数字代码进行传输。译码为其反过程,将收到的数字序列经变换恢复特征参量,再根据特征参量重建语音信号。具体说,参数编码是通过对语音信号特征参数的提取和编码,尽量保持语音信号的可懂性,而还原后的波形可能与原波形差别很大。(3) 混合编码2,将波形编码和参数编码组合起来,克服了原有波形编码和参数编码的弱点,结合各自的长处,尽量保持波形编码的高质量和参数编码的低速率。2.2.1.2 压缩分类

19、压缩分为无损压缩和有损压缩。无损压缩一般指磁盘文件,压缩比低,一般为:2:14:1;有损压缩是指音/视频文件,压缩比可高达100:1。凌阳音频压缩算法根据不同的压缩比分为以下几种:SACM-A2000、SACM-S480、SACM-S240。三者区别参看表 23,如下:表 23 凌阳语音压缩算法区别2凌阳音频压缩算法编码方式编码率(bps)压缩比音质SACM_A2000波形编码16K, 20K, 24K8:1, 8:1.25, 8:1.5好SACM_S480混合编码4.8K, 7.2K80:3, 80:1.5中SACM_S240参数编码2.4K80:1.5差2.2.2 凌阳语音的播放、录制、合

20、成和辨识要完成语音的播放、录制、合成及辨识等工作,单片机需要强大的信息处理能力而凌阳16位SPCE061A单片机则是为此而开发的,其具有DSP功能,可处理大量信息,CPU最高时钟频率可达到49MHz,具备运算速度高的优点。凌阳压缩算法中SACM_A2000、SACM_S480、SACM_S240主要是用来放音,可用于语音提示,而DVR则用来录音。2.2.3 常用的应用程序接口API的功能及应用语音和音乐与我们的生活有着相当密切的关系,而单片机对语音的控制如录放音、合成机辨识也广泛应用在现实生活中。语音处理大致可以分为A/D、编码处理、存储、解码处理以及D/A等。然而,通过麦克风输入所生成的WA

21、VE文件,其占用的存储空间很大,对于单片机来说想要存储大量的信息显然很不可能实现的,而凌阳的SPCE061A所采用的解决办法即SACM_LIB,该库将A/D、编码、解码、存储及D/A做成相应的模块,对于每个模块都有其应用程序接口API,要实现某功能,用户只需了解每个模块所要实现的功能及其参数的内容,然后调用该API函数即可。语音识别API2介绍:BSR _Init Recognizer(int Audio Source);初始化识别器BSR _Train(int Word ID, int Train Mode);语音训练BSR _Delete SD Group(int SD Group No)

22、;清除内存BSR _Pause Recognizer();暂停识别,但不释放中断等资源BSR _Resume Recognizer();恢复被暂停的识别BSR _Get Recognizer Score();获得识别结果的可信度,返回值从-4096到4096,数值越大表示输入语音与特征模型的匹配度越高BSR _Enable CPU Indicator();开启CPU状态监测功能。开启该功能后,IOA0和IOA1将发出每16ms电平变化一次的方波BSR _Disable CPU Indicator();关闭CPU状态监测功能BSR _Export SD Word(int Command ID);

23、使用函数库时,会自动创建一个100 Word的数组BSR _SD Model100,可以把某条训练命令的特征模型数据导出到这个数组中BSR _Import SD Word(int Command ID);可以把BSR _SD Model数组中的数据导入为某条语音命令的特征模型unsigned int BSR _SD Model;配合BSR _Export SD Word(int Command ID)与BSR _Import SD Word(int Command ID)函数使用,此数组的作用相当于一个暂时的存储区SACM_480采用混合编码方式,压缩比比较大,存储容量大,音质介于A2000和

24、S240之间,适用于语音播放,如电子词典词库等,所以本文采用了该算法,以下就SACM_480算法具体介绍其API函数的格式、功能、参数、返回值、备注。其相关API函数如下所示:1) API格式2: C:int SACM_S480_Initial(int Init _Index)ASM:R1= Init _ IndexCall F_ SACM_ S480_Initial功能说明:SACM_480语音播放之前的初始化。参数: Init _ Index=0:手动方式 Init _ Index=1:自动方式。返回值: 0:语音模块初始化失败。 1:语音模块初始化成功。备注: 该函数用于对定时器、中断和

25、DAC等的初始化。2) API格式2: C:void SACM_S480_ServiceLoop(void) ASM:Call F_ SACM_S480_ServiceLoop功能说明:从资源中获取SACM_S480语音资料,并将其填入解码队列中。参数: 无返回值: 无备注: 播放语音文件中数据,当出现FF FF FFH数据时便停止播放。3) API格式2: C: int SACM_S480_Play(int Speech _Index, int Channel, int Ramp _Set)ASM:R1= Speech _IndexR2= ChannelR3= Ramp _SetCall S

26、ACM_S480_Play功能说明: 播放资源中SACM_480语音。参数: Speech _Index:语音索引号。Channel:1. 通过DAC1通道播放。2. 通过DAC2通道播放。3. 通过DAC1和DAC2双通道播放。Ramp _Set:0. 禁止音量增/减调节。1. 仅允许音量增调节。2. 仅允许音量减调节。3. 允许音量增/减调节。返回值: 无备注: SACM_S480的数据率有4.8Kbps7.2Kbps两种,可在同一模块的几种算法中自动选择一种。 Speech _Index是定义在resource.inc文件中资源表的偏移地址。 中断服务子程序中F_FIQ_Service_

27、SACM_S480必须放在TMA_FIQ中断向量上。4) API格式2: ASM:Call F_FIQ_Service_SACM_S480功能说明:用作SACM_S480语音背景程序的中断服务子程序。通过前台子程序(自动方式的SACM_S480_ServiceLoop及手动方式SACM_S480_Decode)进行语音信息编码,然后将其送入DAC通道播放。参数: 无返回值:无备注:SACM_S480语音背景子程序只有汇编指令形式,且应该将此子程序安置在TMA_FIQ中断源上。3 系统总体设计方案用61板来控制机器人,使用了I0B7-IOB15资源,另外使用了扬声器,参看图 3-1,如下:图 3

28、-1 系统的总体框图61板与机器人连接图,参看图 3-2,如下:图 3-2 61板与机器人连接图系统主要由61板与机器人驱动电路组成。整个系统的主控板是61板,用来驱动电路驱动电机。在主控板61板的控制下完成跳两首舞曲、走步、转向、转头、发射飞盘等动作。另外为了使机器人智能化,增添了特定人语音识别的功能,通过各种命令的使用来操作机器人。 4 系统的硬件设计4.1 SPCE061A最小系统SPCE061A最小系统中,含有SPCE061A芯片外围的基本模块,其主要由晶体输入模块(OSC)、锁相环外围电路(PLL)、复位电路(RESET)、指示灯(LED)等组成,参看图 4-1。在OSC32O、OS

29、C32I端口接上晶体振荡器和谐振电容,在VCOIN端口接上相对应的电容和电阻后即可工作。在其他不用的VDD端口和GND端口也不能悬空应该接上0.1uF的耦合电容以提高抗干扰能力。图 4-1 SPCE061A最小系统4.2 SPCE061A的时钟凌阳16位SPCE061A单片机最高CPU时钟频率(CPUCLK)可达到49.152MHz,为数字信号处理奠定了坚实的基础。而取得CPU时钟频率(CPUCLK)的过程大致可分为三个阶段。第一阶段,先通过晶体振荡电路得到了一个32768Hz的实时频率(RTC)。第二阶段,锁相环对实时频率(RTC)进行倍频,得到系统时钟频率Fosc。第三阶段,对系统时钟频率

30、Fosc进行分频,最终得到CPU时钟频率(CPUCLK)。其过程参看图 4-2,如下:图 4-2 SPCE061A的时钟4.2.1 时钟电路日常生活中的钟表、实时时钟延时以及其他与时间相关产品所采用的是32768Hz的实时时钟。在SPCE061A时钟电路中使用的是晶体振荡器,采用频率为32768Hz外接晶体,SPCE061A时钟电路的连线图可参看图 4-3。图 4-3 SPCE061A时钟电路连接图4.2.2 锁相环锁相环(Phase Lock Loop)是将32768Hz的实时时钟(RTC)进行倍频,调整至49.152MHz、40.96MHz、32.768MHz、24.576MHz或20.4

31、80MHz的系统时钟Fosc参看图 4-4,如下:图 4-4 PLL倍频电路框图SPCE061A片内集成了PLL电路,要使芯片内PLL电路正常工作只需外接简单的电路即可,参看图 4-5,如下:图 4-5 PLL外围电路4.2.3 系统时钟将经过PLL电路倍频得到的系统时钟频率Fosc,对其分频便可得到CPU时钟频率(CPUCLK),参看图 4-6。可以通过对P_SystemClock单元的编程完成对系统时钟频率Fosc和CPU时钟频率(CPUCLK)的定义。32768Hz RTC 振荡器有两种工作方式3:强振模式和自动弱振模式。处于强振模式时,RTC 振荡器始终运行在高耗能的状态下。处于自动弱

32、振模式时,系统在上电复位(power on reset) 后的前 7.5 秒内处于强振模式,然后自动切换到弱振模式以降低功耗。图 4-6 分频电路框图在 SPCE061A 内,P_SystemClock单元(参看表 41)控制着系统时钟频率Fosc和 CPU 时钟频率(CPUCLK)。第 02 位用来控制CPUCLK(参看表 42)。第 57 位用来控制Fosc(参看表 43)。Fosc的预设值为24.576MHz,上电复位或系统从备用状态(睡眠状态)被唤醒后,CPUCLK的预设值为Fosc/8。另外,在睡眠状态(即b2b0同时被置为1)下,通过设置该单元的第 4 位可以打开或关闭32768H

33、z 实时时钟。表 41 设置P_SystemClock单元3b15-b8b7-b5b4b3b2b1b0-PLL频率选择32768Hz睡眠状态32768Hz方式选择CPU时钟选择1:在睡眠状态下,32768Hz时钟仍处于工作状态(预设)0:在睡眠状态下,32768Hz时钟被关闭1:32768Hz时钟处于强振模式0:32768Hz时钟处于自动弱振模式(预设) 表 42 CPU时钟频率(CPUCLK)选择3b2b1b0CPUCLK000Fosc001Fosc/2010Fosc/4011Fosc/8100Fosc/16101Fosc/32110Fosc/64111停止(睡眠状态)表 43 PLL频率(

34、Fosc)选择3b7b6b5Fosc00024.576MHz00120.48MHz01032.768MHz01140.96MHz1-49.152MHz4.3 电源模块电源输入端口是61板的能源供应中心,整块板子的电源都是由此提供进去,可采用电池或稳压电源提供5V输入,并且必须至少保证电流在50mA以上,否则会造成系统无法倍频和下载出错。SPCE061A的内核供电为3.3V,由于I/O端口可接3.3V也可以接5V,所以在电源模块中有一个端口电平选择跳线J5用于选择端口电压,电源模块参看图 4-7,如下:图 4-7 电源模块由于此系统需要的端口高电平为5V,所以图 4-7当中的J5跳线需要跳到1和

35、2上。4.4 语音录放录音过程,将输入的语音信号(模拟信号)作A/D转换,转换成数字信号,编码后存入存储器中。放音过程与录音相反,先将数据从存储器中取出并解码,然后作D/A转换成语音信号。4.4.1 录音使用A/D转化器的7个通道将模拟信号转换成数字信号,可以直接通过引线输入。另外1个通道是只用于语音输入,即通过内置有自动增益控制放大器的麦克风通道(MIC-IN)输入,它专门用于对语音信号的采样,首先语音信号经MIC转换成电信号,由隔直电容隔断直流成分,然后输入至SPCE061A内部前置放大器。SPCE061A内部自动增益控制(AGC)电路能随时跟踪、监测前置放大器输出的音频信号电平,当输入信

36、号增大时,AGC电路自动减小放大器的增益。当输入信号减小时,AGC电路自动增大放大器的增益,可使进入A/D的信号保持在最佳电平,又可使削弱减至最小。SPCE061A的A/D转换范围是整个输入范围,即最大的模拟信号输入电压范围0VAVdd.非法的A/D模拟信号将影响转换电路的工作范围,从而降低ADC的性能。由于Line _in通道和IOA0IOA6共用引脚,所以尽量选择其他非IOA0IOA6的引脚,因为非法IO信号会造成电压不稳最终影响ADC的性能。ADC的最大输入电压由P_ ADC_ Ctrl(写)的第7位和第8位的值决定。第7位VEXTREF控制着ADC的参考电压,即AVdd/外部参考电压。

37、第8位V2VREFB控制着2V电压源是否起作用。如果起作用,用户可向VEXTREF引脚输入2V电压。此反馈回路把ADC的最高参考电压设置为2V。如果被指定的参考电压源的值不超过AVdd,它还可以被当作ADC的最高参考电压。A/D转换器对输入的音频信号进行8kHz采样,并按照凌阳音频编码格式进行编码,每秒将占用16kBits的存储器空间。系统扩展了一块容量为1Mbits的SRAM存储器HM628128A来存储语音数据。4.4.2 放音将HM628128A中存储的语音数据顺序取出,解码后,以8kHz的速率进行D/A转换输出,语音数据经电容滤波恢复成原始语音波形,最后用三极管驱动扬声器放音。SPCE

38、061A音频输出共有两个DAC通道,DAC1和DAC2输出的模拟电信号通过DAC1和DAC2引脚输出。DAC的输出范围是0x00000xFFFF。DAC1和DAC2的输出数据应写入P_DAC1和P_DAC2单元。上电复位以后,两个DAC均被自动打开,此时会消耗少量的电流(几个毫安)。如若不需要,尽量关闭DAC输出(将P_DAC_Ctrl单元的第一位置为1)。而且DAC的直流电压必须保持平稳地变化,否则可能由于电压的突变引起扬声器产生杂音。为减缓电压的变化幅度,从而输出高质量的音频数据可以采用ramp up/down技术。其应用条件是:被唤醒/上电复位后首次使用DAC时,上电复位功能应在被关闭/

39、进入睡眠状态之前。放音利用的是SPCE061A内部的DAC,电路参看图 4-8。图中的SPY0030是凌阳公司的产品。和LM386相比,在工作电压上,LM386需在4V以上,而SPY0030仅需2.4V(两节电池)即可工作;在输出功率上,LM386仅在100mW以上,而SPY0030可达700mW。图 4-8 放音模块电路4.5 机器人硬件驱动电路机器人硬件原理参看图 4-9,如下:左右腿、脖子电机驱动加速度、发射电机驱动图 4-9 机器人驱动电路原理图机器人驱动电路采用功率较大的三极管搭成H桥来驱动电机从而实现电机的正向旋转与电机的反向旋转,本系统中使用H桥4驱动的电机包括两个用于走路的电机

40、与一个头部转向的电机。同时用了一个三极管驱动单向旋转的电机,如加速电机与发射电机。5 系统软件设计完成特定人语音的训练可在主函数中调用相关函数,然后在训练成功后进行语音识别,再根据识别的命令执行相关的操作。程序流程参看图 5-1。根据FLASH中的标志位判断是否为第一次下载。使用BSR _Export SD Word(uiCommand ID) 函数将训练好的语音模型导出存储到FLASH中,用于操作。在语音识别中,首先读取FLASH取得语音模型,然后调用BSR _Import SD Word(uiCommand ID)函数将语音资源载入内存。在识别出命令后,执行相关动作,操作电机的正向或反向旋

41、转,同时配合延时与播放声音组合起来形成不同的动作。图 5-1 程序流程图与中断流程图5.1 擦除FLASH模块在程序中按照操作SPCE061A的flash的步骤擦写flash,在程序中写成3个函数用于操作flash,如下:F _ Flash Write1Word()3语法:void F_FlashWrite1Word(int addr, int Value)描述:写一个字到FLASH中参数:1、被写数据的存储地址2、被写数据返回:无F _ Flash Write()3语法:F _Flash Write(int sector, int & num, int size)描述:顺序写多个字参数:1、

42、被写数据的起始地址2、被写数据3、写数据的数量返回:无F _ Flash Erase()3语法:void F _ Flash Erase(sector)描述:擦除256字节参数:擦除页的起始地址返回:无5.2 位操作模块由于SPCE061A没有位操作指令,而在程序控制电机的时候需要经常操作某一位,为了方便程序的编写,增强可读性,编写位操作模块函数void Set _ IOB _Bit(unsigned int, unsigned int, unsigned int, unsigned int, unsigned int)1,参数依次为IO的位、Dir、Attrib、Data、Buffer例如操

43、作IOB11为同向低电平输出为Set _ IOB _Bit(11,1,1,0,0)5.3 语音播放函数在本系统的软件设计当中,将语音播放的程序设计为语音播放模块,以便于调用:语音播放程序分为两部分,第一部分是播放流程控制,参看图 5-2;第二部分是中端播放服务程序,参看图 5-3,如下:图 5-2 SACM_480自动播放流程图图 5-3 中断服务程序流程图结论语音处理技术本身就是一门理论性强、实用面广而且难度较大的综合学科。而开发出具有语音功能的单片机也是相当困难的。凌阳unsp系列16位单片机,就是适应这种需求而设计的。凌阳SPCE061A实现语音识别其独特之处在于:硬件电路简单,因为SP

44、CE061A是一款专门为语音信号处理设计的单片机,麦克风和喇叭可以直接接入,接放大电路可不用外接。具有一套高效的指令系统,软件编程容易,有相应的API函数,可直接调用。参考文献1 凌阳科技大学计划.凌阳单片机在大学生电子竞赛中的应用.北京:北京航空航天大学出版社,2005:7-82 赵定远 马洪江.16位单片机及语音嵌入式系统.北京:中国水利出版社,2006:237-2493 罗亚非. 凌阳16位单片机应用基础.北京:北京航空航天大学出版社,2005:33-344 李晓静 罗永革 佘建强 刘珂璐.基于AMT直流电机的H桥驱动电路硬件研制.湖北汽车工业学院学报,2007(3);22-255 薛均义 张彦斌凌阳16位单片机原理及应用.北京:北京航空航天大学出版社,2003

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号