基于凌阳单片机的语音机器人研究

时间:2022-09-23 08:10:51

基于凌阳单片机的语音机器人研究

【摘 要】本文利用了16位SPCE061A凌阳单片机的强大的DSP功能,实现了特定发音人识别功能。介绍了实现语音机器人系统的主要组成部分,以及软件实现和硬件配置。希望可以通过广大机器人爱好者的研究,可以是机器人技术广泛发展。

【关键词】凌阳单片机;语音识别;机器人

0.引言

在当今中国技术快速发展的情况下,机器智能化已经越来越普遍。但是我们可以发现,虽然机器人的数量在急剧增加,可是机器人技术却发展地愈加平缓。现如今,机器人大部分都是由发令人发出指令,机器人进行执行,执行过程以及结果具体如何发令人并不能得到很好的反馈。由此我们可以知道,人和机器人的通信总是单向的。就以往的机器人来看,人和机器的语音通信有两种情况:一种是,人进行发令,机器人完成相关指令;另一种是,机器人讲话,而人听话。这就是我们所谓的“人工耳朵”和“人工嘴巴”。而现在,我们就是要利用凌阳单片机强大的语音控制模块来实现机器人与人类之间的双向交流,将“人工耳朵”和“人工嘴巴”结合起来,真正地实现机器人的智能化。

对于语音辨识主要有以下两种:

(1)特定发音人识别SD(Speaker Dependent):是指语音样板由单个人训练,也只能识别训练人的语音命令,而他人的命令识别率较低或几乎不能识别。

(2)非特定发音人识别SI(Speaker Independent):是指语音样板由不同年龄,不同性别,不同口音的人进行训练,可以识别一群人的命令。

我们将标准模式的存储空间称为“词库”,而把标准模式称为“词条”或“样板”。

而我们所说的建立词库,也就是将待识别的命令进行频谱分析,提取特征参数作为识别的标准模式。

识别过程首先要滤掉输入噪音并进行预加重处理来提升高频分量,接着找出语音的特征参数作为未知模式与预先存储的标准模式进行比较,当输入的未知模式和标准模式的特征一致时,机器进行识别,并且输出识别结果。我们的方案采取特定人识别方式,将训练的标准样板存于FLASH中,第一次使用时要进行训练,以后就可以识别此人语音信息。

现如今,很多人都自己制作语音识别模块和单片机配合来实现各种机器的语音功能,但是我们发现,凌阳单片机本身就具有很强大的语音模块,直接就可以通过编写程序实现我们所需要的语音辨识。

1.系统总体方案介绍

一般来说,机器人都是靠自身动力和控制能力来实现各种功能的一种机器,它一般由执行机构、驱动装置、检测装置和控制系统和复杂机械等组成,通过输入的电信号,转化为输出的线、角位移量,通过数值、语言等对机器人进行示教,使机器人根据示教后的信息进行作业,并以此来达到指令发出人所需要的某种目的。

本系统是以凌阳微控制器SPCE061A为核心,我们的设计方案如下:

1.1主控设备

选用SPCE061A单片机作为控制器的处理器,加上电路及模块,构成最小系统,完成语音辨识的控制功能。

1.2监视设备

选用传感器,监测周围环境的障碍物以及温度等。

1.3电源模块

选用适当芯片,给电路以及单片机供电。

这样,本系统基本能实现与人之间的双向对话,并且可以根据人的指令进行简单作业,以及能够躲避周围环境中的障碍物以及高温物体等。

2.系统软件实现

系统软件的实现是设计本系统的重中之重,凌阳SPCE061A具有DSP功能等优势,为语音的播放、录放、合成和辨识提供了强有力的条件。凌阳61板拥有SACM_A2000、SACM_S400、SACM_S240等压缩算法,我们的程序中采用SACM_S400算法。这种算法存储容量大,音质介于SACM_A2000与SACM_S240之间,适合于语音播放。

编写程序如下:

int main()

{

int Result, PlayFlag;

//……………初始化…………………………………

BSR_DeleteSDGroup(0);// 初始化存储器RAM

//……………调用训练模块…………………………

while(TrainWord(NAME_ID,0) != 0) ; //训练第一条命令

while(TrainWord(COMMAND_ONE_ID,1) != 0) ; //训练第二条命令

while(TrainWord(COMMAND_TWO_ID,2) != 0) ; //训练第三条命令

//……………辨识部分………………………………

BSR_InitRecognizer(BSR_MIC);//辨识器初始化

BSR_EnableCPUIndicator();

PlaySnd (S_START);// 播放开始辨识的提示音

while(1)

{

Result = BSR_GetResult();

if(res > 0) //识别出命令

{

if(gActivated)

{

switch(res)

{

case NAME_ID:

PlaySnd (S_ANSWER_ONE);

break;

case COMMAND_ONE_ID:

PlayFlag = 1;

PlaySnd(S_ANSWER_TWO);

PlayFlag = 0;

gActivated = 0;

break;

case COMMAND_TWO_ID:

PlaySnd (S_ANSWER_THREE);

gActivated = 0;

}

}

}

}

3.系统硬件介绍

3.1主控设备

SPCE061A里内嵌16位32K字的闪存FLASH ROM,2K字SRAM,CPU时钟最高可达49M,带有8通道10位模—数转换输入功能,较高的处理速度使SPCE061A能够非常容易地,快速地处理复杂的数字信号。同时,休眠状态下耗电小于2 A,具有低点压复位/监测功能,因此特别适用于长期不间断工作的数字语音处理领域。我们所使用的凌阳最小系统板,这样为我们的硬件设计省去了很大的时间。作为语音机器人,外置扬声器是不可缺少的部分,它可以很好的进行任务反馈与实现高音报警的作用。

3.2监视设备

监视设备包括红外微波探测器,温度传感器等,通过这些传感器的监测,单片机的控制,可是实现机器人躲避高温,障碍物,报警的功能。

3.3电源模块

电源设计使用给我们大家耳熟能详的LM2940和LD1117芯片,在此就在给出电路图。使用LM2940稳压至5V给凌阳单片机SPCE061A的I/O口以及其他电路供电,5V电源再经LD1117降压至3V给凌阳单片机供电。

3.4行走设计

本机器人设计模型比较简单,机器人的行走由两个舵机进行控制,通过舵机的转动,来实现一步一步向前走,一个舵机负责“抬脚”,一个舵机负责“迈步”。

4.结束语

本文简单介绍了基于凌阳16位单片机SPCE061A语音辨识机器人。当今机器人在单片机技术以及控制技术等的基础上,加入了语音控制模块,既方便了指令人发出指令,又丰富了机器人的本身功能。我们设计出来的机器人可以实现与人之间的双向对话,可以根据发令人的指令进行简单作业,并且能够躲避周围环境中的障碍物以及高温物体等。我相信,随着科学技术的发展和人们对于机器人技术兴趣的增加,机器人技术发展会越来越快,也会在家庭服务,教学等方面崭露头角。 [科]

【参考文献】

[1]罗亚非等.凌阳16位单片机应用基础.北京航空航天大学出版社.

[2]洪应,宋国富. 凌阳16位单片机使用技术教程.中国铁道出版社.

上一篇:高职院校学生干部队伍管理工作创新与实践 下一篇:对一种高强度移动通信安全机制的分析与改进