Q博士语音识别机器人制作_第1页
Q博士语音识别机器人制作_第2页
Q博士语音识别机器人制作_第3页
Q博士语音识别机器人制作_第4页
Q博士语音识别机器人制作_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、语音识别机器人制作编辑:robotain 来源:网络 2009-12-06 发表评论 方案简介说明书1 方案概述语音识别机器人可以充分发挥学生的创新能力,增加学生的动手实践能力,增加学生学习单片机的兴趣爱好。本方案以SPCE061A 单片机为核心,改装市场上的玩具机器人,使改装后的机器人具有语音识别能力,根据识别的语音完成跳舞等动作,这也是智能机器人的一个方面。1.1 设计要求利用SPCE061A 单片机、机器人机体(包括2 个用于走路的电机、1 个用于头部旋转的电机、1 个用于加速1 个用于弹射的电机等),要求语音识别机器人具有下述功能:1. 通过语音命令对其进行控制。2. 两种跳舞模式。3

2、. 走步功能、转向功能、转头功能。4. 发射飞盘功能。1.2 技术要求1. 要求语音识别机器人可以识别15 条命令。2. 要求语音识别机器人具有2 种跳舞模式。2 方案设计简介2.1 硬件框图系统以SPCE061A 为核心,结合机器人机体,如下图所示。2.2 功能框图SPCE061A 应用方案SPCE061A 在语音识别机器人中的应用在现代社会机器人这个词语已经不再新鲜,而且形形色色的机器人出现在我们的日常生活中。为了提高广大单片机爱好者学习单片机的兴趣与爱好,凌阳科技 大学计划教育推广中心推出了应用SPCE061A 控制的兴趣产品语音识别机器人,本文对语音识别机器人的软硬件制作进行介绍。1

3、引言为了提高广大单片机爱好者学习单片机的兴趣,凌阳科技大学计划教育推广中心推出了应用SPCE061A 作为主控制器,外加电机驱动电路制作的语音识别机器人。该机器人采用特定人语音识别对机器人进行控制,可以完成向前走、倒退、左转、右转、跳两首舞曲、向 左瞄准、向右瞄准、发射、连续发射等功能。该语音识别机器人可以大大提高在校学生学习单片机的兴趣。2 设计要求2.1 设计要求利用SPCE061A 单片机、机器人机体(包括2 个用于走路的电机、1 个用于头部旋转的电机、1个用于加速1 个用于弹射的电机等),要求语音识别机器人具有下述功能:通过语音命令对其进行控制。两种跳舞模式。走步功能、转向功能、转头功

4、能。发射飞盘功能。2.2 技术要求要求智能机器人可以识别15 条命令。要求智能机器人具有2 种跳舞模式。模组特性简介3.1 SPCE061A 特性简介SPCE061A 是凌阳科技研发生产的性价比很高的一款十六位单片机,使用它可以非常方便灵活的实现语音的录放系统,该芯片拥有8 路10 位精度的ADC,其中一路为音频转换通道,并且内置有自动增益电路。这为实现语音录入提供了方便的硬件条件。两路10 精度的DAC,只需要外接功放(SPY0030A)即可完成语音的播放。另外凌阳十六位单片机具有易学易用的效率较高的一套指令系统和集成开发环境。在此 环境中,支持标准C 语言,可以实现C 语言与凌阳汇编语言的

5、互相调用,并且,提供了语音录放的库函数,只要了解库函数的使用,就会很容易完成语音录放,这些都为软件开发提供了方便的条 件:SPCE061A 片内还集成了一个ICE(在线仿真电路)接口,使得对该芯片的编程、仿真都变得非常方便,而ICE 接口不占用芯片上的硬件资源,结合凌阳科技提供的集成开发环境(unSP IDE)用户可以利用它对芯片进行真实的仿真;而程序的下载(烧写)也是通过该接口进行下载。下图为SPCE061A 单片机的内部结构框图:3.2 芯片特性简介SPCE061A 性能简介:z 16 位unSP 微处理器z 工作电压(CPU)VDD 为3.03.6V,(I/O)VDDH 为3.05.5V

6、z CPU 时钟:0.3249.152MHzz 内置2K 字SRAMz 内置32K 字FLASHz 可编程音频处理z 晶体振荡器z 系统处于备用状态下(时钟处于停止状态),耗电仅为2uA/3.6Vz 2 个16 位可编程定时器/计数器(可自动预置初始计数值)z 2 个10 位DAC(数/模转换)输出通道z 32 位通用可编程输入/输出通道z 14 个中断源可来自定时器A/B、时基、2 个外部时钟源输入和键唤醒z 具备触键唤醒的功能z 使用凌阳音频编码SACM_S480 可以播放压缩的语音资源z 锁相环PLL 振荡器提供系统时钟信号z 32768Hz 实时时钟z 7 通道10 位电压模/数转换器

7、(ADC)和单通道声音模/数转换器z 声音模/数转换器输入通道内置麦克风放大器,并具有自动增益控制(AGC)功能z 具备串行设备接口z 具备低电压复位功能和低电压检测功能z 内置在线仿真电路接口z 具有WatchDog 功能3.3 SPCE061A 精简开发板SPCE061A 精简开发板(简称61 板),是以凌阳16 位单片机SPCE061A 为核心的精简开发仿真实验板,大小相当于一张扑克牌,是“凌阳科技大学计划”专为大学生、电子爱好者等进行电子实习、课程设计、毕业设计、电子制作及 电子竞赛所设计的,也可作为单片机项目初期研发使用。61 板除了具备单片机最小系统电路外,还包括有电源电路、音频电

8、路(含MIC 输入部分和DAC 音频输出部分)、复位电路等,采用电池供电,方便学生随身携带!使学生在掌握软件的同时,熟悉单片机硬件的设计制作,锻炼学生的动手能力,也为单片机 学习者和开发者创造了一个良好的学习条件和开发新产品的机会!61 板上有调试器接口(Probe 接口)以及下载线(EZ_Probe)接口,分别可接凌阳科技的在线调试器、简易下载线,配合unSP IDE,可方便地在板上实现程序的下载、在线仿真调试。61 板上的主要功能模块如下:SPCE061A 单片机最小系统外围电路模块;电源输入模块;音频电路(包含MIC 输入、DAC 音频功放输出)模块;按键模块;I/O 端口接口模块;调试

9、、下载接口模块;下图为61 板的实物图:3.4 机器人模组简介3.4.1 机器人驱动电路图机器人驱动电路图如所示:机器人驱动电路采用功率较大的三极管搭成H 桥来驱动电机,可以实现电机的正向旋转与电机的反向旋转。这些电机包括2 个用于走路的电机与一个头部转向的电机。另外用了一个三极管驱动单向旋转的电机,包括加速电机与发射电机,驱动电路比较简单。3.4.2 主要功能通过语音命令对其进行控制;可以跳两首舞曲;走步功能、转向功能、转头功能;发射飞盘功能;3.4.3 机器人实物图3.4.4 注意事项机器人在发射飞盘时不要面向人,避免受伤机器人要轻拿轻放应该避免摔打在安装电池时注意正负极,否则容易烧坏机器

10、人电机或主控制板4 系统总体方案介绍用61 板来控制机器人,使用了IOB7-IOB15 资源,另外使用了扬声器。如图 4-1 所示:61 板与机器人连线图,如图 4-2 所示:系统主要由61 板与机器人驱动电路构成。61 板作为整个系统的主控板,驱动电路驱动电机。在主控板61 板的控制下完成各个动作。另外增加了特定人语音识别的功能,通过命令来控制机器人,使机器人智能化。5 系统的硬件设计5.1 SPCE061A 周边模块5.1.1 SPCE061A 最小系统SPCE061A 最小系统当中,包括SPCE061A 芯片外围的基本模块,有:晶振输入模块(OSC)、锁相环外围电路(PLL)、复位电路(

11、RESET)、指示灯(LED)等,如下图所示。本系统,有关SPCE061A 单片机的最小系统的各个模块都做在61 板当中,读者可以查阅61 板的电路原理图。5.1.2 电源模块SPCE061A 的内核供电为3.3V,而I/O 端口可接3.3V 也可以接5V,所以在电源模块(61 板上)中有一个端口电平选择跳线,如图中的J5,下图为61 板上的电源模块图。由于本系统需要的端口高电平为5V,所以图图 5-2 当中的J5 跳线需要跳到1 和2 上。5.1.3 放音模块交通灯换向时有语音提示。放音利用的是SPCE061A 内部的DAC,电路如图 5-3 所示。图中的SPY0030是凌阳公司的产品。和L

12、M386 相比,SPY0030 还是比较有优势的,比如LM386 工作电压需在4V 以上,而SPY0030 仅需2.4V (两颗电池)即可工作;LM386 输出功率100mW 以下,SPY0030 约700mW。其他特性请参考SPY0030 的数据手册。5.1.4 机器人硬件驱动电路机器人硬件原理图如图 5-4 所示:机器人驱动电路采用功率较大的三极管搭成H 桥来驱动电机,可以实现电机的正向旋转与电机的反向旋转。这些电机包括2 个用于走路的电机与一个头部转向的电机。另外用了一个三极管驱动单向旋转的电机,包括加速电机与发射电机,驱动电路比较简单。6 所用语音算法介绍6.1 语音识别算法简介6.1

13、.1 语音识别概述:根据对说话人的依赖程度,分为:z 特定人语音识别(SD):只能辨认特定使用者的语音,训练-使用z 非特定人语音识别(SI):可辨认任何人的语音,无须训练根据对说话方式的要求,分为:z 孤立词识别:每次只能识别单个词汇z 连续语音识别:用者以正常语速说话,即可识别其中的语句6.1.2 语音识别原理语音识别原理参看下图:6.1.3 SPCE061A 实现语音识别的步骤SPCE061A 实现语音识别的步骤,分为训练部分与识别部分,以及在训练、识别过程中中断的情况,参考下图:6.1.4 语音识别API 介绍BSR_InitRecognizer(int AudioSource);初始

14、化识别器BSR_Train(int WordID,int TrainMode);语音训练BSR_DeleteSDGroup(int SDGroupNo);清除内存BSR_PauseRecognizer()暂停识别,但不释放中断等资源BSR_ResumeRecognizer()恢复被暂停的识别BSR_GetRecognizerScore()获得识别结果的可信度,返回值从-4096 到4096,数值越大表示输入语音与特征模型的匹配度越高。BSR_EnableCPUIndicator()开启CPU 状态监测功能。开启该功能后,IOA0 和IOA1 将发出每16ms 电平变化一次的方波。BSR_Dis

15、ableCPUIndicator()关闭CPU 状态监测功能。BSR_ExportSDWord(int CommandID)使用函数库时,会自动创建一个100 Word 的数组BSR_SDModel100,可以把某条训练命令的特征模型数据导出到这个数组中。BSR_ImportSDWord(int CommandID)可以把BSR_SDModel 数组中的数据导入为某条语音命的特征模型。unsigned int BSR_SDModel;配合BSR_ExportSDWord(int CommandID)与BSR_ImportSDWord(int CommandID)函数使用,此数组的作用相当于一个

16、暂时的存储区。6.2 凌阳音频概述语音处理大致可以分为A/D 采样输入、编码处理、存储、解码处理以及D/A 等;SPCE061 解决方案:将A/D、编码算法、解码算法、存储及D/A 作成相应的模块,对于每个模块都有其应用程序接口API,用户只需了解每个模块所要实现的功能及其参数的内容,然后调用该API 函数即可实现语音处理功能。6.2.1 凌阳音频压缩算法的编码标准表 6-1 是不同音频质量等级的编码技术标准(频响):凌阳音频压缩算法处理的语音信号的范围是200Hz3.4KHz 的电话话音。6.2.2 压缩分类压缩分无损压缩和有损压缩。无损压缩一般指:磁盘文件,压缩比低:2:14:1。而有损压

17、缩则是指:音视频文件,压缩比可高达100:1。凌阳音频压缩算法根据不同的压缩比分为以下几种(具体可参见语音压缩工具一节内容):SACM-A2000:压缩比为8:,8:1.25,8:1.5SACM-S480: 压缩比为80:3,80:4.5SACM-S240: 压缩比为80:1.5按音质排序:A2000S480S2406.2.3 凌阳常用的音频形式和压缩算法1) 波形编码:sub-band 即SACM-A2000特点:高质量、高码率,适于高保真语音音乐。2) 参数编码:声码器(vocoder)模型表达,抽取参数与激励信号进行编码。如:SACM-S240。特点:压缩比大,计算量大,音质不高,廉价!

18、3) 混合编码:CELP 即SACM-S480特点:综合参数和波形编码之优点。 本方案采用该编码方式。除此之外,还具有FM 音乐合成方式即SACM-MS01。6.2.4 凌阳语音的播放、录制、合成和辨识凌阳的SPCE061A 是16 位单片机,具有DSP 功能,有很强的信息处理能力,最高时钟频率可达到49MHz,具备运算速度高的优势等等,这些都无疑为语音的播放、录放、合成及辨识提供了条件。凌阳压缩 算法中SACM_A2000、SACM_S480、SACM_S240 主要是用来放音,可用于语音提示,而DVR 则用来录放音。对于音乐合成MS01,该算法较繁琐,而且需要具备音乐理论、配器法及和声学知

19、识,所以对于特别爱好者可以到我们的网站去了解相关内容,这 里只给出它的API 函数介绍及程序代码的范例,仅供参考。6.2.5 常用的应用程序接口API 的功能介绍及应用表 6-2 所列出的是凌阳音频的几种算法。语音和音乐与我们的生活有着非常密切的关系,而单片机对语音的控制如录放音、合成及辨识也广泛应用在现实生活中。我们知道对于语音处理大致可以分为 A/D、编码处理、存储、解码处理以及D/A 等。然而,通过麦克风输入所生成的WAVE 文件,其占用的存储空间很大,对于单片机来说想要存储大量的信息显然是不可能的,而凌阳的SPCE061A 提出了解决的方法,即SACM-LIB,该库将A/D、编码、解码

20、、存储及D/A 作成相应的模块,对于每个模块都有其应用程序接口API,所以您只需了解每个模块所要实现的功能及其参数的内容,然后调用该API 函数即可实现该功能,例如在程序中插入语音提示,或连续播放一段语音或音乐,也可以根据自己需要的空间或使用范围选择适合自己的算法。以下就SACM- S480 算法具体介绍其API 函数的格式、功能、参数、返回值、备注。(其它算法可以见附录)该压缩算法压缩比较大80:3, 存储容量大,音质介于A2000 和S240 之间,适用于语音播放, 如“文曲星”词库等,所以我们这个方案就采用了该算法。(只介绍程序中用到的函数,其他API 函数参考凌阳科技大学计划网站)其相

21、关API 函数如下所示:1)【API 格式】C:int SACM_S480_Initial(int Init_Index)ASM:R1= Init_IndexCall F_ SACM_ S480_Initial【功能说明】 SACM_S480 语音播放之前的初始化。【参数】 Init_Index=0 表示手动方式;Init_Index=1 则表示自动方式。【返回值】 0:代表语音模块初始化失败1:代表初始化成功。【备注】 该函数用于对定时器、中断和DAC 等的初始化。2) 【API 格式】 C:void SACM_S480_ServiceLoop(void)ASM:Call F_ SACM_S

22、480_ServiceLoop【功能说明】 从资源中获取SACM_S480 语音资料,并将其填入解码队列中。【参数】 无。【返回值】 无。【备注】 播放语音文件中数据,当出现FF FF FFH 数据时便停止播放。3) 【API 格式】C:int SACM_S480_Play(int Speech_Index, int Channel, int Ramp_Set);ASM:R1= Speech _IndexR2= ChannelR3= Ramp_SetCall SACM_S480_Play【功能说明】 播放资源中SACM_S480 语音。【参数】 Speech _Index 表示语音索引号。Ch

23、annel:1.通过DAC1 通道播放;2.通过DAC2 通道播放;3.通过DAC1 和DAC2 双通道播放。Ramp_Set:0.禁止音量增/减调节;1.仅允许音量增调节;2.仅允许音量减调节;3.允许音量增/减调节。【返回值】 无。【备注】 SACM_S480 的数据率有4.8Kbps7.2Kbps 三种,可在同一模块的几种算法中自动选择一种。Speech_Index 是定义在resource.inc 文件中资源表(T_SACM_S480_SpeechTable)的偏移地址。中断服务子程序中F_FIQ_Service_ SACM_S480 必须放在TMA_FIQ 中断向量上(参见SPCE

24、的中断系统)。函数允许TimerA 以所选的的数据采样率(计数溢出)中断。4)【API 格式】ASM:Call F_FIQ_Service_ SACM_S480【功能说明】用作SACM_S480 语音背景程序的中断服务子程序。通过前台子程序(自动方式的SACM_S480_ServiceLoop 及手动方式的SACM_S480_Decode)对语音资料进行解码,然后将其送入DAC通道播放。【参数】 无。【返回值】 无。【备注】SACM_S480 语音背景子程序只有汇编指令形式,且应将此子程序安置在TMA_FIQ 中断源上。7 系统软件设计在主函数中调用相关函数完成特定人语音的训练,然后再训练成功

25、后进行语音识别,根据识别的命令执行相关的操作。程序流程图如图 7-1 所示:判断是否为第一次下载根据FLASH 中的标志位来进行判断。将训练好的语音模型导出存储到FLASH中使用库函数BSR_ExportSDWord(uiCommandID);进行操作,然后再调用读写FLASH 中的函数进行。在进行语音识别时,首先读取FLASH 将语音模型取得,然后调用BSR_ImportSDWord(uiCommandID);函数将语音资源载入内存。在识别出命令后,执行相关动作,相关动 作操作就是操作电机的正向或反向旋转同时配合延时与播放声音组合起来形成不同的动作。7.1 擦除Flash 模块在程序中按照操

26、作SPCE061A 的flash 的步骤擦写flash,在程序中写成3 个函数用于操作flash,如下:F_FlashWrite1Word()语法:void F_FlashWrite1Word(int addr,int Value)描述:写一个字到FLASH 中参数:1、被写数据的存储地址2、被写数据返回:无F_FlashWrite()语法:F_FlashWrite(int sector,int &num,int size)描述:顺序写多个字参数:1、被写数据的起始地址2、被写数据3、写数据的数量返回:无F_FlashErase()语法:void F_FlashErase(sector)描述:擦除256 字节参数:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论