听话小精灵智能玩具的开发.docx
《听话小精灵智能玩具的开发.docx》由会员分享,可在线阅读,更多相关《听话小精灵智能玩具的开发.docx(12页珍藏版)》请在冰豆网上搜索。
听话小精灵智能玩具的开发
听话小精灵智能玩具的开发
计算机科学与技术专业学生:
张瑜指导教师:
陈坚祯
摘要:
设计基于凌阳16位SPCE061A单片机,采用语音识别技术,设计完成了一款能够执行语音指令,并能够与人进行简单语音对话的交互式智能语音处理系统——听话小精灵智能玩具。
系统的设计主要包括硬件和软件两个方面,系统硬件部分基于凌阳SPCE061A精简开发板;而软件方面主要包括语音资源库的建立和系统的程序设计包括语音辨识和中断技术。
系统在事先通过训练之后能够实现唱歌、背诵唐诗、简单特定对话等交互功能,富含趣味性。
SPCE061A单片机还可按要求实现内部资源的更新具有较大的灵活性和软硬件可扩展性。
关键词:
语音识别;单片机;SPCE061A
1引言
随着全球经济和科技的迅猛发展,玩具市场的玩具也越来越智能化、人性化。
而且语音识别技术日趋成熟,使用语音识别技术便可以实现人与玩具的互动。
机器通过识别和理解把语音信号转变为相应的命令的技术为语音识别技术,通过语音命令人们能够对其进行操作。
语音识别技术和处理软硬件技术的快速发展,使得智能玩具的开发技术更加成熟。
凌阳公司提供的SPCE061A单片机具有十六位单片机的所有特征,又有语音处理技术方面的独特优势,所以设计以凌阳SPCE061A精简开发板为控制核心实现了智能玩具听话小精灵的设计。
2设计技术基础
2.1硬件平台
SPCE061A精简开发板,是以凌阳16位SPCE061A单片机为核心的精简开发-仿真-实验板,其体积小、集成度高、性价比极高、资源丰富、可靠性好且易于扩展。
它将各功能部件模块化地集成在一个芯片里,内部采用总线结构,减少了各功能部件之间的连线。
其处理速度较高,能够快速地处理复杂的数字信号,且中断处理能力较强。
SPCE061A含2K字的SRAM和32K字闪存容量。
闪存在CPU正常运行状态下均可通过程序擦除或写入,可用来存储程序与数据。
SPCE061A单片机为音频输出提供两个DAC通道:
DAC1和DAC2,分别经由DAC1和DAC2引脚输出。
61单片机的A/D转换器有8个通道,其中有1个是MIC-IN输入,它专门用于语音信号采样。
还含2路10位精度的D/A只需要外接功放LM386电路,即可完成语音的播放。
硬件框图如图2-1所示:
图2-1SPCE061A结构图
2.2软件开发环境
μ’nSPIDE是凌阳公司提供的一种支持16位系列单片机的集成开发环境。
它既支持C语言、汇编语言又支持C语言和汇编混合编程,而且还提供了语音录放、识别的库函数。
μ’nSPIDE集项目管理、程序编辑、编译、链接、调试和仿真等功能为一体。
此外,它所提供的软件仿真功能,可以在不连接仿真板的情况下模拟硬件的各项功能来调试程序,它大大降低了开发难度。
开发界面如图2-2所示:
图2-2μ’nSPIDE开发界面
2.3听话小精灵音频资源系统
2.3.1语音录制及语音压缩分类
玩具的开发,首先是语音资源的建立,第一步便是语音文件的录制,用Windowsxp自带的录音机进行语音的录制,录制时wav文件的属性必须为“8K16位单声道”。
凌阳音频压缩算法根据不同的压缩比分为以下几种,如表2-1所示:
表2-1语音压缩算法分类
音频压缩算法
压缩比
资料采样率
语音质量
SACM-A2000
8:
1,8:
1.25,8:
1.5
16KHz
好
SACM-S480
80:
3,80:
4.5
16KHz
中
SACM-S240
80:
1.5
16KHz
差
2.3.2语音压缩工具
录制的语音资源内存较大,而61板内存小。
所以必须对语音进行压缩。
凌阳公司专门提供了一款语音压缩工具CompressTool(如图2-3所示),这是一款界面简单、操作方便、实用的语音压缩软件,其压缩比较大,压缩格式多样,而且语音压缩后的效果比较好。
图2-3语音压缩工具CompressTool
2.4语音识别原理
小精灵的语音识别由特定人语音识别SD(speakerdependent)技术实现,分为训练和识别两个阶段,借助于凌阳提供的API语音函数来实现。
语音的识别取材于凌阳语音库bsrv222SDL.lib及相关头文件,如bsrSD.h等。
语音辨识原理参看图2-4:
图2-4语音辨识原理框图
2.5语音处理函数库
凌阳公司提供了一系列的音频函数库,函数库是由一组或多组函数集组成的文件。
函数库是二进制文件,程序代码是不可见的。
在使用函数库时,只有被使用的函数集才会真正与工程连接,而函数库中的其他函数集不会占用硬件资源。
函数库组织结构如图2-5所示:
图2-5函数库组织结构图
设计所用的Sacmv26e.lib函数库包括语音录制、播放函数集;语音识别函数库bsrv222SDL.lib则包括包含特定人语音训练、识别,语音特征模型的导入、导出函数函数集。
3听话小精灵系统硬件设计及实现
3.1SPCE061A小精灵硬件系统
SPCE061A最小系统中,包括SPCE061A芯片外围的基本模块,有:
晶振输入模块、锁相环外围电路、复位电路、指示灯等,有关SPCE061A单片机的最小系统的各个模块都做在61板当中。
最小系统如图3-1所示:
图3-1SPCE061A最小系统图
3.2听话小精灵系统硬件外围设备
(1)电源模块
SPCE061A的内核供电为3.3V,而I/O端口可接3.3V也可以接5V,所以在电源模块中有一个端口电平可选择。
图3-2电源电路原理图
(2)键盘输入模块
键盘输入电路如图3-3所示,当有键按下时对应的IO口被拉到低电平,SPCE061A处理后做相应操作。
图3-3键盘输入电路图
(3)音频输出模块
SPCE061A内置2路10位精度的D/A转换器,只需要外接功放电路即可完成语音的播放。
音频输出电路图如图3-4所示:
图3-4音频输出电路图
(4)麦克模块
麦克采来的语音信号经AGC(自动增益控制放大)后进入MIC-IN通道进行A/D转换。
麦克输入电路原理图如图3-5所示:
图3-5麦克输入电路原理图
4听话小精灵系统软件设计及实现
4.1播放语音的设计及录制
播放语音的建立包括语音的录制、处理以及压缩。
语音资源的录制和处理,力求语音简短、清晰。
语音压缩时选用SACM_S480的格式进行压缩。
压缩后生成xx*.48k文件将会通过μ’nSPIDE以资源文件的形式导入闪存。
4.2软件项目的建立
4.2.1新建项目的步骤
单击File下拉菜单New弹出对话框(如图4-1所示)。
选Project标签并在File的文本框中键入项目名称。
在Location下的文本框中输入存取路径或利用该文本框右端的浏览按钮设定项目的存储位置。
最后点击OK按钮,完成项目建立。
图4-1新建项目界面图
4.2.2在项目中新建文件
在项目下,点击菜单File下拉菜单New弹出对话框如图4-2所示,点击SPIDECFile,在File下的文本框内键入文件名称,单击OK;点击SPIDEASMFile、SPIDEHFile同样方法建立汇编文件和头文件。
图4-2新建文件界面图
4.2.3在项目中添加资源文件
添加资源文件:
单击Project菜单AddtoProject选项中的Files或Resources子项,激活AddFiles对话框,如图4-3所示。
其中Files是用来添加函数或函数库文件,如:
bsrSD.asm、bsrv222SDL.lib等;而Resources是用来添加语音资源文件,如:
1.48k。
图4-3文件的添加
4.3训练模块的设计
4.3.1初始化RAM
语音命令的特征模型被保存在SPCE061A的内部RAM中,如果所需的RAM存储空间被旧的特征模型数据占满,那么新建的特征模型将无法保存,此时利用intBSR_DeleteSD-Group(0)函数删除RAM空间中所有的特征模型,释放RAM空间。
图4-4训练部分流程图
4.3.2调用训练模块
训练过程即提取语音样本的特征参数过程,通过调用intBSR_Train(intCommandID,intTraindMode)函数来进行训练,训练部分流程图如下图4-4所示:
4.4语音播放
语音播放模块主要用来完成语音播放,用语音播放电路,通过软件编程来实现此部分功能。
采用凌阳压缩算法中SACM_S480的自动播放,自动播放流程见图4-5:
图4-5SACM_S480自动方式主程序流程图
4.5语音识别模块
语音识别模块主要用来完成语音辨识,采用语音识别电路,通过软件编程来实现此部分功能。
语音识别的流程和函数调用如图4-6:
图4-6语音识别函数调用图
4.6中断服务模块
中断采用汇编语言进行编写,ASM:
_BSR_InitRecognizer在中断FIQ_TimerA时调用,并通过中断将语音信号送DAC通道播放。
当主程序调用此函数时,辨识器便打开FIQ_TimerA中断,并开始将采样的语音数据填入辨识器的数据队列中。
语音识别中断流程图如图4-7所示:
图4-7语音识别中断流程图
5听话小精灵系统运行训练与测试
5.1程序的下载
程序编写好之后,通过编译(Build)运行确定没有错误之后就可以下载到61板上面进行调试了,通过EZ-PROBE线来进行程序的烧写和在线调试。
点击菜单Project—﹥SeleteBody,或者点击
图标按钮,打开对话框如图5-1所示:
图5-1SeleteBody对话框
将设置SeleteBody属性为如图5-1所示。
点击下载按钮
(Download)或者按F8进行下载,下载时μ’nSPIDE界面如图5-2所示:
图5-2程序下载时μ’nSPIDE界面
5.2程序的在线调试及运行
下载完成之后,IDE便进入了调试状态,采用断点调试的方法进行调试,通过View菜单中的下拉菜单列表可以选择打开所要调试的窗口,调试窗口主要用来显示有关的调试信息。
通过调试运行就能知道程序是否正确,是否符合设计要求。
通过EZ-Probe下载线可以在线运行,选择运行(快捷键全速运行F5,单步运行F10),程序在线运行调试时对61板进行训练、识别,当运行成功就表明设计成功。
结束语
SPCE061A是一款集成度很高的语音识别系统级芯片。
本设计基于此芯片实现了非特定人声语音识别的系统的设计,设计完成的听话小精灵实现了唱儿歌、背唐诗、完成简单对话和英语学习等功能达到了预期的目的。
SPCE061A芯片所采用的面向特定说话人,小词汇量的语音识别系统具有较高的识别率与专用的语音处理芯片相比结构简单、成本低。
唯一的缺点就是指令功能和语音资源的更新受到硬件限制,需按要求手动完成。
设计
编程采用C和汇编语言混合编程来实现,集两种语言之优点于一体,它们的完美结合极大限度地简化了编程过程,给开发者带来了莫大的方便。
【参考文献】
[1]罗亚非等编著凌阳16位单片机应用基础[M].北京:
北京航空航天大学出版社,2003
[2]凌阳大学计划网站()
[3](美)里科著,徐波译.C和指针[M].北京:
人民邮电出版社,2008.4,58-448.
[4](美)福伊尔著,杨涛等译.C语言解惑[M].北京:
人民邮电出版社,2007.7,50-154.
[5](美)霍顿著,杨浩译.C语言入门经典(第4版)[M].北京:
清华大学出版社,2008.4,40-571
[6]戴建华.C语言开发技术详解[M].北京:
电子工业出版社,2009.6,45-541.
[7]雷思孝,李伯成,雷向莉.单片机原理及实用技术—凌阳16位单片机原理及应用[M].陕西:
西安电子科技大学出版社,2004.1
[8]王茜,姚娅川.基于SPCE061A单片机的语音识别系统开发[J].四川理工学院学报,2005.3,18
(1):
26-28
[9]薛钧义,张彦斌,虞鹤松等.凌阳十六位单片机原理及应用[M].北京:
北京航空航天大学出版社,2003,1:
17-48.
[10]王和顺,黄惟公,邓成中.基于SPCE061A的语音识别系统的研究[J].计算机工程与设计,2004,25(12):
2222-2223.
[11]杨帅,薛岚等.基于SPCE061A智能小车机器人语音辨识系统的研究[J].山西电子技术,2009,(4):
5-6.
TheDevelopmentofIntelligentToysofObedientElf
ComputerScience&TechnologySpecialtyStudent:
YuZhangTutor:
JianzhenChen
Abstract:
Designisbasedonsunplus16SPCE061A,usingvoicerecognitiontechnology,designamodeltoperformvoicecommands,andcancarryonthesimplevoiceconversationswithpeopleintheinteractiveintelligentspeechprocessingsystem,obedientlittlesmarttoys.Systemmainlyincludestwoaspectsofhardwareandsoftwaredesign,systemhardwarepartisbasedonsunplusSPCE061Astreamlinedevelopmentboard;Thevoicesoftwaremainlyincludestheestablishmentofarepositoryprogramdesignandsystemtechnologyincludingspeechrecognitionandinterrupt.Thesysteminadvanceafterthetrainingcanbeachievedtosing,recitetangpoetry,certainsimpledialogueinteractioncapabilities,richininterest.SPCE061Acanalsoimplementinternalresourcesasrequiredupdatehasgreatflexibilityandextensibilityofsoftwareandhardware.
Keywords:
Speechrecognition;Singlechipmicrocomputer;SPCE061A
(本资料素材和资料部分来自网络,仅供参考。
请预览后才下载,期待您的好评与关注!
)