您好,欢迎来到爱够旅游网。
搜索
您的当前位置:首页基于SPCE061A语音单片机的智能小车的控制

基于SPCE061A语音单片机的智能小车的控制

来源:爱够旅游网
浙江科技学院学报,第19卷第1期,2007年3月

JournalofZhejiangUniversityofScienceandTechnologyVol.19No.1,Mar.2007

基于SPCE061A语音单片机的智能小车的控制张震宇,王 华,于爱华(浙江科技学院自动化与电气工程学院,杭州310023)

摘 要:介绍一种智能小车控制系统的设计。该系统方案以SPCE061A单片机为基础,实现对智能小车的语音控制。文中给出了系统的硬件构成,简述了SPCE061A单片机的内部资源,分析了语音识别的基本原理,从软件设计角度具体阐述了特定人语音识别在智能小车上的实现过程。实验表明这种应用是成功的。关键词:单片机;SPCE061A;智能小车;语音识别

中图分类号:TP391    文献标识码:A   文章编号:167128798(2007)0120027204

ControlofIntelligentToyCarBasedonSpeechMCUSPCE061A

ZHANGZhen2yu,WANGHua,YUAi2hua

(SchoolofAutomationandElectricalEngineering,ZhejiangUniversityofScienceandTechnology,Hangzhou310023,China)

Abstract:AcontrolsystemfortheintelligenttoycarisdesignedwithSPCE061AMCU.Thecarisundercontrolofspeechcommand.Thehardwarestructureofthesystemisintroduced,andtheinternalresourcesofSPCE061Aarepresented.Meanwhilethebasicprincipleofspeechrecognitionisanalyzed.Therealizationprocedureofspeakerdependentrecognitioninthecarisdiscussedfromtheaspectofsoft2waredesign.Theapplicationisdemonstratedsuccessfulthroughexperiments.

Keywords:MCU;SPCE061A;intelligenttoycar;speechrecognition

  随着电子技术和自动控制技术等的快速发展,消

费类电子产品行业发展迅猛。以玩具市场为例,其内在结构比重正发生重大变化:传统玩具的市场比重正在逐步缩小,高科技含量的电子玩具、智能玩具则蒸蒸日上,电子互动式、智能化玩具已经成为玩具行业发展的主流。我国是玩具生产和出口大国,但在高科技玩具的发展方面和国外的差距很大,因此,及时投入精力广泛开展这方面的研究,无论对技术创新应用,还是社会经济发展,都有巨大的现实意义。

语音识别及交互能大大增加玩具使用的乐趣,

收稿日期:2006211214

基金项目:浙江省高校青年教师资助计划项目(200412)

并使玩具体现出一定的智能性,因此成为大部分电子玩具、智能玩具设计中使用的关键技术;若能同时有效地控制设计成本,这种类型的玩具必将表现出极高的性价比和极强的市场竞争力。当前,实现语音识别及交互可以利用单片机、数字信号处理器(DSP)或语音识别专用芯片来完成[1]。现有产品大部分以传统的单片机加上语音信号采集、输出转换等外围电路构成,结构上显得不够精简,性价比也不是很高,而DSP和语音识别专用芯片价格相对较高,不太适合在玩具中推广。若能采用新型SoC处

),男,浙江兰溪人,讲师,硕士,主要从事语音信号处理及应用研究。作者简介:张震宇(1976— 

28浙江科技学院学报第19卷

理器来实现,以更精简、紧凑的结构实现更高的性价比,则不失为一种值得尝试的做法。

笔者利用SPCE061A语音单片机对传统玩具小车实现了孤立词、小字表、特定发音人语音识别及交互的控制,用户可以用语音对小车进行控制,使其产生相应动作,且小车和控制者还具有一定的交互功能,体现了一定的智能性。如果能将它推广到其他消费类电子产品上,则必将产生一定的社会经济价值。

1 智能小车硬件系统

智能小车硬件主要由语音输入输出电路、SPCE061单片机、驱动电路及车体组成(图1)。SPCE061A单片机是整个系统的核心,通过识别用户输入的语音命令,输出合适的控制信号,并经驱动电路控制车体做出正确的动作;同时,通过输出特定提示音,在一定程度上使系统达到和用户交互的目的。

器来实现,使用时只需要外接1只三极管(如NPN8050)、2个电阻和1个电容,参见图3。这些功能,可以说是为该单片机能更好地应用于语音处理场合而量身定做的。事实上,凌阳公司为了尽可能地方便开发者和提高开发效率,特意设计了一种精简开发板———61板,供开发人员在开发设计的早期阶段使用。61板以SPCE061A单片机为控制核心,已自配必要的外围电路以及麦克风、扬声器各1只,按键3个,其本身就是一个完整的集仿真、调试、下载等功能为一体的系统[3],且价格非常实惠,可直接用于系统的初期开发。

图1 系统硬件框图

1.1 SPCE061A单片机及语音输入、输出部分

SPCE061A是凌阳(SUNPLUS)公司最新

图2 语音输入电路

设计的一款高性价比16位精简指令集(RISC)系统

级芯片(SoC),具有DSP功能,较高的处理速度(CPU最高时钟可达49.152MHz)使其能够快速地处理各种复杂的数字信号,非常适用于语音处理。此外,它抗干扰能力强,适合用于各种领域。同时配合凌阳公司免费提供的语音处理函数库,使得这种微控制器成为设计低成本语音识别系统的理想选择[2],因此,可称之为语音单片机。

作为片上系统型单片机,SPCE061A片内资源非常丰富,如ADC、DAC、定时器、锁相环、RAM、FLASH等,这里重点介绍和本系统直接相关的ADC和DAC。SPCE061A语音单片机片内集成有7通道10位电压A/D转换器和单通道声音A/D转换器,以及2个10位D/A转换输出通道。声音A/D转换器输入通道内置麦克风放大器并具有自动增益控制(AGC)功能,专门用于对输入的语音信号进行采样,并使进入该通道的模拟信号维持在最佳电平,使用时只需要在对应管脚上外接3个电阻和3个电容即可,参见图2;语音输出则由双通道10位D/A输出接口AUD1和AUD2外接功放和扬声

图3 语音输出电路

1.2 车体及驱动电路部分

车体为四轮结构,前面2只轮子控制方向,后面

2只轮子起驱动作用,分别由2台小功率直流电机(电压5V,电流200mA)控制。通过匹配这2台电机的转动方向,可实现小车的直线前进、倒车、左转、右转等动作,此外,通过PWM调速手段,还可实现小车加减速。由于功率小,电机的驱动采用三极管(NPN8050)实现,考虑到2台电机都需要正反转,于是均采用H桥驱动。方向电机H桥的4只三极管由SPCE061A单片机的I/O脚IOB8及IOB9控制,驱动电机H桥则由IOB10及IOB11控制。

第1期张震宇,等:基于SPCE061A语音单片机的智能小车的控制29

2 语音识别及交互的基本原理

语音识别过程本质上是一种模式识别过程,其基本原理如图4所示,主要有信号预处理、特征提取、语音模型库、模式匹配、后处理等几个环节[4]。首先是预处理,包括模/数转换、预加重、自动增益控制等处理过程,主要实现语音信号的数字化;然后对预处理后的语音信号进行特征提取,形成特征矢量序列;之后开始模式匹配,即将输入参数的特征参数同长时间训练得到的语音模型库进行比较分析,从而得到初步结果,目前使用最广泛的识别方法是统计模式识别法;最后,为了提高识别正确率,可考虑进行后处理,以提高系统的性能。识别结果若以语音播放的形式输出,则可告知用户系统的实时状况,达到交互的目的,实现真正的“人机对话”。

处理函数本身,从而大大节省了开发设计的时间。

从实现过程的时序来看,可将语音识别在智能小车上的实现过程分为4个主要阶段[4]。3.1 初始化

设计中,将训练的语音模型库样板数据存于SPCE061A的内部RAM中,由于RAM中数据掉

电后将丢失,因此,每次上电复位后都要重新进行训练,这样可保证训练的正确性,防止误命令。可用函数BSR_Delete_SDGroup(intSDGroupNo)实现,当SDGroupNo=0时表示选择RAM并开始初始化。若RAM擦除成功则返回“0”,否则返回“-1”。3.2 训 练

训练过程通过调用库函数BSR_Train(intWordID,intTrainMode)来完成。其中参数Word2ID为命令序号,范围0x100~0x105,并且对于每组

训练语句都是唯一的;参数TrainMode为训练次数,为1时表示要求使用者在应用之前训练1次;为0表示训练2次。为了增强可靠性,最好训练2次,只有2次命令相同时才成功。该函数有8种可能的返回值,其中“0”表示训练成功。

图4 语音识别过程基本原理示意

3.3 识 别

根据对发音者依赖程度的不同,语音识别技术

可分为特定发音人识别和非特定人语音识别。本文中应用于智能小车识别控制便是前者,之所以选择前者,主要是考虑到其相对较为简单,能得到很高的识别率,而且适合于在单片机平台上实现;后者算法设计复杂,数据计算量非常大,往往借助于DSP处理器或PC机平台来完成,发展还不成熟,若利用单片机来实现这种识别,则在硬件上会显得力不从心。

识别部分是整个过程的重点,这部分执行效果的优劣将直接影响到语音识别的准确性和及时性等指标。按执行顺序,可将识别分为4个环节。3.3.1 识别器初始化 用来定义语音输入来源,可通过调用函数BSR_InitRecognizer(intAudio2Source)完成,其中参数AudioSource为0时表示MIC语音输入,为1时表示LINE_IN模拟电压输

3 语音识别在智能小车实验平台上的实现

由于SPCE061A语音单片机片内资源高度集中,用户使用起来非常方便,涉及到必需的外围电路也非常简单,甚至可以直接采用61板作为前期开发的部分硬件平台,而把主要精力投入到软件设计上。因此,这里重点从软件设计的角度介绍该实现过程。

凌阳公司为了便于开发者利用SPCE061A芯片来设计语音系统,在其集成开发环境(IDE)中专门提供了API函数库,语音样本的训练、被识别语音数据的采集和相关处理以及识别结果的输出等都可以通过调用相应函数完成。对于开发难度相对较小的特定人语音识别系统,设计者完全可以将精力放在如何正确地进行函数调用上,而不必过于关心语音

入。当主程序调用该函数时,语音识别器便打开8kHz采样频率的FIQ_TMA中断,并开始将采样得到的语音数据填入语音识别器的数据队列中。3.3.2 启动实时监控 由函数BSR_EnableCPUIndi2cator(void)完成该功能,无参数、无返回值。通过调用相关的硬件资源对识别过程进行实时监控,保证识别能正常地执行,若识别正常则会产生一个16ms连续稳定的方波。

3.3.3 获取识别结果 由函数BSR_GetResult(void)完成语音识别,并返回语音识别结果。当识别成功时,返回命令的对应序号;无命令识别出来时,返回“0”;识别器未初始化,返回“-1”。3.3.4 停止识别 调用函数BSR_StopRecognizer(void),则停止语音识别,此时FIQ_TMA中断也将关闭。

30浙江科技学院学报第19卷

3.4 识别结果输出

识别结果的输出实现了交互功能,通过播放对应的提示音,告知发音者识别是否成功。可利用凌阳的压缩算法工具(CompressTool)把事先录制的3.wav文件压缩为一定格式,存放于工作目录,作为语音响应[5]。若需要播放,则通过调用相关API函数来完成。具体的播放等函数调用请参考文献[5]。3.5 软件设计流程图

软件设计工作的流程如图5、6所示。

图5 主程序流程

“boy”,小车识别成功后回复“yeah”的语音;后6条

命令分别是“forward”“、backward”“、left”“、right”、“accelerate”、“slowdown”,小车识别成功后同样会作出交互,回复“yeah”提示音。若由于各种因素某命令训练2次都失败,则提示“fail”,此时必须重新训练。训练工作完成后,就可以进入特定人识别过程了,用户必须首先发出触发命令“boy”,才能给出其余的命令。小车识别成功此触发命令后发出提示音并停车待命,此时用户可随机给出上述6条业已训练过的命令,小车识别成功后先语音回复,然后执行指定的动作。若用户希望小车停止运动,则只要再次呼叫其名“boy”即可。这样,小车通过语音控制,能够执行相应的动作并做出语音交互,体现出一定的智能性,可称之为基于语音识别控制的智能小车。

实验中获得的识别率在95%以上,实验过程中发现影响智能小车进行正确识别的主要因素有现场环境噪声的干扰、小车运行时电机噪音的干扰以及发音者距麦克风的有效距离等。在上述因素的干扰不是很强的情况下,系统体现出了较好的抗干扰性能,不会影响到识别的准确性。但在噪声过强或有效距离过长的情况下,识别效果明显变差,这是其局限性,也是有待以后努力改善之所在。

目前,小车训练成功并正确识别的命令数目为上述的7条,其中有单音节、双音节以及多音节命令。能够训练的命令数目及音节数主要取决于系统的存储容量大小,若希望训练更多的命令,则应外扩存储器芯片。考虑到整个实验系统的低成本,特别是SPCE061A语音单片机的低成本,整个系统的性价比还是很高的。因此,如果将这种技术推广应用到一些低成本的消费类电子产品上,则必将带来一定的社会价值和明显的经济效益。参考文献:

[1] 李晶皎.嵌入式语音技术及凌阳16位单片机应用

[M].北京:北京航空航天大学出版社,2003:628.[2] 罗亚非.凌阳16位单片机应用基础[M].北京:北京航

图6 中断服务程序流程

空航天大学出版社,2005:9210.

[3] 熊庆国.新型16位单片机SPCE061A及应用展望[J].

4 实验和结论

实验可分为训练和识别两个阶段,为保证效果,选择了无明显噪声的实验室环境。硬件连接、程序

下载等准备工作就绪后,可开始进行训练,实验中一共训练7条语音命令,第一条是训练名称,可理解为给智能小车取一个名字,实验中由特定发音者取名

现代电子技术,2003(8):55256,59.

[4] 王和顺,黄惟公,邓成中.基于SPCE061A的语音识别

系统的研究[J].计算机工程与设计,2004,25(12):

222222224.

[5] 张震宇,王华,于爱华.一种新的无刷直流电动机控制

系统[J].天津工业大学学报,2006,25(4):41243,47.

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- igbc.cn 版权所有 湘ICP备2023023988号-5

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务