具有语音识别功能的ZigBee传感器网络设计

来源:本站
导读:目前正在解读《具有语音识别功能的ZigBee传感器网络设计》的相关信息,《具有语音识别功能的ZigBee传感器网络设计》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《具有语音识别功能的ZigBee传感器网络设计》的详细说明。
简介:语音识别技术的无线网络化测控技术是目前研究的一个方向,将语音识别、无线网络和测控技术融合,实现无线网络化语音控制系统,具有良好的实用价值和广阔的应用前景。

1语音识别

具有语音识别的过程可归结为模式识别和匹配,通过对语音信号进行预处理和分析计算,抽取出所需的语音特征,并以此建立语音识别所需的模板。当对语音进行识别时,需要将系统中存放的语音模板与输入的语音信号的特征进行比较,并根据一定的算法和策略找出一系列最优的与输入的语音匹配的模板,最后输出识别结果。语音识别系统采用的是模式匹配的原理,系统的一般结构如图1所示。

具有语音识别功能的ZigBee传感器网络设计

图1语音识别系统的一般结构

2系统硬件设计

系统硬件结构可分为语音识别模块、ZigBee模块、继电器控制模块三部分。图2为总体硬件结构图。

具有语音识别功能的ZigBee传感器网络设计

图2系统总体硬件结构

2.1语音识别模块

语音识别模块由凌阳SPCE061A语音处理芯片以及语音输入电路、语音输出电路、电源电路等模块组成。语音识别模块实现对语音命令的识别,并将识别结果发送至ZigBee数传模块。语音输入与输出电路如图3、图4所示。

具有语音识别功能的ZigBee传感器网络设计

语音识别电路输出的语音资源需要事先在PC机上录制成WAV文件格式或者由TTS软件生成,该WAV格式的文件必须在单通道、8 KB/s、16位的条件下录制,然后把生成的WAV文件经过压缩编码后添加到程序中,并随程序一起下载到SPCE061A单片机内存中。根据语音识别过程的需要,有选择性地输出不同的语音。需要输出的语音资源经D/A转换后,由SPY0030(语音集成放大器)放大信号,最后通过喇叭输出(J3处外接喇叭)。通过调节电位器R1的大小可以控制输出语音的音量。

2.2ZigBee模块

ZigBee无线模块由CC2430芯片、供电电路、天线、数据下载口组成,具体电路如图5所示。

具有语音识别功能的ZigBee传感器网络设计

图5 ZigBee通信模块电路

CC2430芯片具有完整的压控振荡器,并把许多电路功能都直接集中到了芯片中,所以整个ZigBee模块电路非常简单,只需晶振、天线及少量的外围电路就可以使ZigBee无线模块正常工作,减少外围电路可以使无线系统工作的更加稳定。

3系统软件

设计采用模块化设计思想在μnSP IDE和IAR编译器环境下,完成语音芯片SPCE061A和射频芯片CC2430的软件编译和调试,进而实现语音识别功能以及无线通信功能,并使SPCE061A和射频芯片CC2430可以协同工作。语音识别就是要对发音者发出的语音与语音模板中的模板进行匹配,确定发音者发出的语音指令,并根据所识别的命令作出相应的命令。对于本系统而言,需要识别的是特定人的语音识别,所以本系统没有把语音模板写入程序中,需要发音者自行对语音模块进行语音训练。语音识别的C语言实现代码部分如下:

Loop:

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

while(1){*

(unsigned int *)0x7012 = 1; //喂狗

uiRes = BSR_GetResult(); //取得识别结果

if(uiRes > 0){

if(uiActivated){

uiTimerCount = 0;

switch(uiRes){

case NAME_ID:

switch(uiBS_Team){

case 0: //第一组的第一个命令

PlaySnd(WELCOME);

//播放“欢迎进入系统"

break;

case 1:

//第二组的第一个命令

break;

case 2: //第三组的第一个命令

break;

}break;

case Command_One_ID:

switch(uiBS_Team){

case 0: //第一组的第二个命令

*P_IOB_Data = *P_IOB_Data |

0x0002 ; //控制灯亮

PlaySnd(D25);

//播放语音灯已打开

*P_UART_Data ='1;

//通过串口将识别结果发送至FFD

break;

case 1: //第二组的第二个命令

break;

case 2: //第三组的第二个命令

break;

}

*(unsigned int *)0x7012 = 1;

uiActivated = 0; break;

case Command_Two_ID:

switch(uiBS_Team){

case 0://第一组的第三个命令(准备)

*P_IOB_Data = *P_IOB_Data &

0xfffd; //控制灯关闭

PlaySnd(D26);

//播放语音提示“灯已关闭”

*P_UART_Data =′2′;

//通过串口将识别结果发送至FFD

break;

case 1: //第二组的第三个命令

break;

case 2: //第三组的第三个命令

break;

}

*(unsigned int *)0x7012 = 1;

uiActivated = 0;

break;

}

4结 语

本文提出基于ZigBee数传模块和SPCE061A单片机语音识别系统的设计方案,采用ZigBee数传模块作为通信处理器,并完成了两大模块的相关硬件和软件的设计。经测试,本系统语音识别率达到98%以上,具有较高的应用价值。

提醒:《具有语音识别功能的ZigBee传感器网络设计》最后刷新时间 2024-03-14 01:06:22,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《具有语音识别功能的ZigBee传感器网络设计》该内容的真实性请自行鉴别。