74、基于51单片机语音识别控制智能家居声控灯风扇继电器系统设计(程序+原理图+PCB源文件+Proteus仿真+芯片资料+参考论文+开题报告+任务书+元器件清单等)

摘  要

语音识别是解决机器“听懂”人类语言的一项技术。随着语音识别理论研究的深入和数字信号处理软、硬件技术的发展,语音识别技术应用的研究越来越受到人们的关注。智能语音家电控制系统实质上就是一个替代传统手动开关的受声控制的电子开关。此系统以STC89C52和LD3320语音芯片为硬件核心,对语音芯片LD3320的信息进行处理,并对开关进行控制,通过LD3320外界的麦克风采集声音信号,再通过LD3320语音芯片进行频谱分析,在提取语音特征,之后和关键词语列表中的关键词进行对比匹配,最后找出得分最高的关键词作为识别结果输出给单片机,单片机进行处理后,再输出信号来控制继电器,再通过继电器来控制开关工作,开关又可实现对电器的控制。语音芯片的功能都是通过单片机控制实现的。最终实现对智能语音开关的控制

[关 键 词] STC89C52单片机   语音芯片LD3320   语音识别   

1.1选题的目的及研究意义

智能家居作为一项新开发的项目,目前处于一个导入期与成长期的临界点,目前智能家居市场已逐步形成,培养起消费者的消费习惯,智能家居市场有着不可估量的产业前景,所以,国内外很逗企业已经把市场转向智能家居这个方向,特别是对企业发展环境和客户需求趋势的深入研究,一大批优秀的智能家居品牌迅速崛起,逐渐成为智能家居中的翘楚,在日常家居生活中,为了使我们对家庭的控制系统能随时掌控,需要的信息随时获取,操作的终端形式非常重要,多种形式的操作终端是必不可少的。语音智能家居控制是智能家居中很重要的部课题主要研究内容。

机器进行语音交流,让机器明白人类语言,从而可以通过语音控制机器,是人类一直研究的课题。语音识别就如同机器的听觉系统。语音识别就是让机器通过语音识别和理解从而把语音信号转变为相应的文字或命令的高技术。近二十年来,语音识别技术取得革命性的进步,开始走进我们生活的方方面面。人们预计,未来10年内,语音识别技术将进入工业、家电、通信、汽车电子、医疗、家庭服务、消费电子产品等各个领域。语音识别听写机在一些领域的应用被美国新闻界评为1997年计算机发展十件大事之一。很多专家都认为语音识别技术是2000年至2020年间信息技术领域十大重要的科技发展之一。                 

语音识别的大概过程依据在实际中的不同作用,语音识别系统可以分为:特定人与非特定人的识别、独立词与连续词的识别、小词汇量与大词汇量以及无限词汇量的识别。但是任何一个语音识别系统,它的理论基础和处理步骤都基本一致。

语音识别过程主要包括语音信号的预处理、特征提取、模式匹配几个部分。预处理包括预滤波、采样和量化、加窗、端点检测、预加重等过程。语音信号识别必不可缺的一步就是特征参数提取。提取的特征参数需要达到以下要求:

(1)提取的特征参数可以很好的表现出它自身的特征,比较容易区分;

(2)各阶参数之间有都有各自良好的区分特征;

特征参数要计算方便,使用效率高的算法,是语音有所保证。在训练的时候,将特征参数进行稍微的加工后,为每种词条录入一个特征模型,保存为模板库。在识别阶段,语音信号经过同一个通道得到语音特征参数,得到测试模板,与参考模板进行匹配,将匹配分数最高的参考模板作为语音输出的结果。同时,还可以在很多先验知识的帮助下,提高识别的准确率。

  1. 语音特征提取:是为了从语音波形中得到随时间变化的语音特征序列;

(2)声学模型与模式匹配(识别算法):声学模型一般情况下将获得的语音特征通过学习算法获取。在识别时通过对输入的语音特征同声学模式的匹配比较,得到最准确的识别结果;

(3)语言模型与语言处理:语言模型涵盖了由语音识别指令组成的语法网络或由统计方法组成的语言模型,语言处理可以完成语法、语义分析,对小词表语音识别系统,通常语言处理部分可以省略。    

声学模型作为语音识别系统的底层模型,并且是语音识别系统中最不可或缺的一部分。声学模型是为了是提供一种快捷的办法计算语言的特征矢量序列与每个发音模板之间的距离。声学模板的设计和语言发音特点密切相关,声学模型单元大小(字发音模型、半音节模型、因素模型)对语音训练数据量的多少、系统识别率,包括灵活性都会产生很大的作用。必须依据不同的语言特征、识别系统词汇量的大小决定识别单元的大小。语言模型中对中、大词汇量的语言识别系统相当重要。当分类有错误时就能依据语言模型、语法结构、语义学进行纠错,尤其是一些同音字必须经过全文结构才可以肯定词义,语言学理论涵盖语义结构、语法结构、语言的数学模型等全方位。现在相对成功的语言模型一般使用统计语法的语言模型和基于规则法结构命令语言模型。语法结构可以限定不同词之间的相互连接关系,减少识别系统的搜索空间。这有利于提高系统识别。

一、硬件方案

硬件构成:本系统采用51单片机+语音识别模块+LCD1602显示屏+独立按键+继电器+LED灯+风扇设计而成。

二、设计功能

单片机型号:STC89C52/51、AT89C52/51、AT89S52/51 都可通用。

1、系统可控制灯、风扇、继电器的开关,并采用液晶屏显示当前状态;
2、可通过按键分别控制风扇、继电器的开关;
3、可通过语音指令分别控制风扇、继电器的开关。
4、语音指令:打开灯光、关闭灯光;打开风扇,关闭风扇;打开开关,关闭开关。

三、实物图

 

 

单片机模块设计

单片微型计算机是随着微型计算机的发展而产生和发展的。自从1975 年美国德克萨斯仪器公司的第一台单片微型计算机( 简称单片机)TMS-1000 问世以来,迄今为止,单片机技术已成为计算机技术的一个独特分支,单片机的应用领域也越来越广泛,特别是在工业控制中经常遇到对某些物理量进行定时采样与控制的问题,在仪器仪表智能化中也扮演着极其重要的角色。

如果将8位单片机的推出作为起点,那么单片机的发展历史大致可以分为以下几个阶段:

第一阶段(1976—1978):单片机的探索阶段。以Intel公司的MCS-48为代表。MCS-48的推出是在工控领域的探索,参与这一探索的公司还有Motorola、Zilog等。都取得了满意的效果。这就是SCM的诞生年代,“单片机”一词即由此而来。

第二阶段(1978—1982):单片机的完善阶段。Intel公司在MCS-48基础上推出了完善的、典型的单片机系列MCS-51。它在以下几个方面奠定了典型的通用总线型单片机体系结构。

(1)完善的外部总线。MCS-51设置了经典的8位单片机的总线结构,包括8位数据总线、16位地址总线、控制总线及具有多机通信功能的串行通信接口。

(2)CPU外围功能单元的集中管理模式。

(3)体现工控特性的地址空间及位操作方式。

(4)指令系统趋于丰富和完善,并且增加了许多突出控制功能的指令。

第三阶段(1982—1990):8位单片机的巩固发展及16位单片机的推出阶段,也是单片机向微控制器发展的阶段。Intel公司推出的MCS-96系列单片机,将一些用于测控系统的模数转换器、程序运行监视器、脉宽调制器等纳入片中,体现了单片机的微控制器特征。

第四阶段(1990—):微控制器的全面发展阶段。随着单片机在各个领域全面、深入地发展和应用,出现了高速、大寻址范围、强运算能力的8位/16位/32位通用型单片机,以及小型廉价的专用型单片机。

单片机是在集成电路芯片上集成了各种元件的微型计算机,这些元件包括中央处理器CPU、数据存储器RAM、程序存储器ROM、定时/计数器、中断系统、时钟部件的集成和I/O接口电路。由于单片机具有体积小、价格低、可靠性高、开发应用方便等特点,因此在现代电子技术和工业领域应用较为广泛,在智能仪表中单片机是应用最多、最活跃的领域之一。在控制领域中,现如今人们更注意计算机的底成本、小体积、运行的可靠性和控制的灵活性。在各类仪器、仪表中引入单片机,使仪器仪表智能化,提高测试的自动化程度和精度,提高计算机的运算速度,简化仪器仪表的硬件结构,提高其性能价格比。

单片机引脚介绍

单片机主要特点:

(1)有优异的性能价格比。

(2)集成度高、体积小、有很高的可靠性。单片机把各功能部件集成在一块芯片上,内部采用总线结构,减少了各芯片之间的连线,大大提高了单片机的可靠性和抗干扰能力。另外,其体积小,对于强磁场环境易于采取屏蔽措施,适合在恶劣环境下工作。

(3)控制功能强。为了满足工业控制的要求,一般单片机的指令系统中均有极丰富的转移指令、I/O口的逻辑操作以及位处理功能。单片机的逻辑控制功能及运行速度均高于同一档次的微机。

(4)低功耗、低电压,便于生产便携式产品。

(5)外部总线增加了I2C(Inter-Integrated Circuit)及SPI(Serial Peripheral Interface)等串行总线方式,进一步缩小了体积,简化了结构。

(6)单片机的系统扩展和系统配置较典型、规范,容易构成各种规模的应用系统。

优异的性能价格比。

1)集成度高、体积小、有很高的可靠性。

单片机把各功能部件集成在一块芯片上,内部采用总线结构,减少了各芯片之间的连线,大大提高了单片机的可靠性与抗干扰能力。另外,其体积小,对于强磁场环境易于采取屏蔽措施,适合于在恶劣环境下工作。

此外,程序多采取固化形式也可以提高可靠性。

2)控制功能强。

为了满足工业控制要求,一般单片机的指令系统中均有极丰富的转移指令、I/O口的逻辑操作以及位处理功能。单片机的逻辑控制功能及运行速度均高于同一档次的微机。

单片机的系统扩展、系统配置较典型、规范,容易构成各种规模的应用系统。

   VCC:STC89C52电源正端输入,接+5V。

GND:电源地端。

XTAL1:  单芯片系统时钟的反相放大器输入端。

XTAL2: 系统时钟的反相放大器输出端,一般在设计上只要在 XTAL1 和 XTAL2 上接上一只石英振荡晶体系统就可以动作了,此外可以在两引脚与地之间加入一 20PF 的小电容,可以使系统更稳定,避免噪声干扰而死机。

RESET:STC89C52的重置引脚,高电平动作,当要对晶片重置时,只要对此引脚电平提升至高电平并保持两个机器周期以上的时间,AT89S51便能完成系统重置的各项动作,使得内部特殊功能寄存器之内容均被设成已知状态,并且至地址0000H处开始读入程序代码而执行程序。

EA/Vpp:"EA"为英文"External Access"的缩写,表示存取外部程序代码之意,低电平动作,也就是说当此引脚接低电平后,系统会取用外部的程序代码(存于外部EPROM中)来执行程序。因此在8031及8032中,EA引脚必须接低电平,因为其内部无程序存储器空间。如果是使用 8751 内部程序空间时,此引脚要接成高电平。此外,在将程序代码烧录至8751内部EPROM时,可以利用此引脚来输入21V的烧录高压(Vpp)。

ALE/PROG:ALE是英文"Address Latch Enable"的缩写,表示地址锁存器启用信号。STC89C52可以利用这支引脚来触发外部的8位锁存器(如74LS373),将端口0的地址总线(A0~A7)锁进锁存器中,因为STC89C52是以多工的方式送出地址及数据。平时在程序执行时ALE引脚的输出频率约是系统工作频率的1/6,因此可以用来驱动其他周边晶片的时基输入。此外在烧录8751程序代码时,此引脚会被当成程序规划的特殊功能来使用。

PSEN:此为"Program Store Enable"的缩写,其意为程序储存启用,当8051被设成为读取外部程序代码工作模式时(EA=0),会送出此信号以便取得程序代码,通常这支脚是接到EPROM的OE脚。STC89C52可以利用PSEN及RD引脚分别启用存在外部的RAM与EPROM,使得数据存储器与程序存储器可以合并在一起而共用64K的定址范围。

PORT0(P0.0~P0.7):端口0是一个8位宽的开路汲极(Open Drain)双向输出入端口,共有8个位,P0.0表示位0,P0.1表示位1,依此类推。其他三个I/O端口(P1、P2、P3)则不具有此电路组态,而是内部有一提升电路,P0在当做I/O用时可以推动8个LS的TTL负载。

PORT2(P2.0~P2.7):端口2是具有内部提升电路的双向I/O端口,每一个引脚可以推动4个LS的TTL负载,若将端口2的输出设为高电平时,此端口便能当成输入端口来使用。P2除了当做一般I/O端口使用外,若是在STC89C52扩充外接程序存储器或数据存储器时,也提供地址总线的高字节A8~A15,这个时候P2便不能当做I/O来使用了。

PORT1(P1.0~P1.7):端口1也是具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个LS TTL负载,同样地若将端口1的输出设为高电平,便是由此端口来输入数据。如果是使用8052或是8032的话,P1.0又当做定时器2的外部脉冲输入脚,而P1.1可以有T2EX功能,可以做外部中断输入的触发脚位。

PORT3(P3.0~P3.7):端口3也具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个TTL负载,同时还多工具有其他的额外特殊功能,包括串行通信、外部中断控制、计时计数控制及外部数据存储器内容的读取或写入控制等功能。

其引脚分配如下:

P3.0:RXD,串行通信输入。

P3.1:TXD,串行通信输出。

P3.2:INT0,外部中断0输入。

P3.3:INT1,外部中断1输入。

P3.4:T0,计时计数器0输入。

P3.5:T1,计时计数器1输入。

P3.6:WR:外部数据存储器的写入信号。

P3.7:RD,外部数据存储器的读取信号。

RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。

PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。

四、原理图

在本设计做的过程中,硬件和软件方面都遇到了许多问题,但是相比于软件,在硬件方面还是比较快解决的方面,因为硬件是比较容易检查出来错误的,软件比较晦涩难懂,还是有一定难度。
在硬件调试问题上,首先焊接好了元器件实物板后,先用万用表测量这个工业板子的电源方面,电源方面是最重要的问题,应该是特别需要检查的地方,以防止电源的短路和正负极的错误。然后在仔细检查电路的连接是否有问题,或者有没有虚焊或者没有焊接到的地方,然后核对一下元器件的安装是否有问题,安装上去是否符合规定,由于已经是大学四年都是做过了很多实训过来了,对于这些还是游刃有余的,但是在上机调试后还是发现了很多的问题。

五、PCB图

在本设计做的过程中,硬件和软件方面都遇到了许多问题,但是相比于软件,在硬件方面还是比较快解决的方面,因为硬件是比较容易检查出来错误的,软件比较晦涩难懂,还是有一定难度。
在硬件调试问题上,首先焊接好了元器件实物板后,先用万用表测量这个工业板子的电源方面,电源方面是最重要的问题,应该是特别需要检查的地方,以防止电源的短路和正负极的错误。然后在仔细检查电路的连接是否有问题,或者有没有虚焊或者没有焊接到的地方,然后核对一下元器件的安装是否有问题,安装上去是否符合规定,由于已经是大学四年都是做过了很多实训过来了,对于这些还是游刃有余的,但是在上机调试后还是发现了很多的问题。

六、Proteus仿真    

七、程序源码

Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(μVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。


 

资料包括:  

需要完整的资料可以点击下面的名片加下我,找我要资源压缩包的百度网盘下载地址及提取码。 

猜你喜欢

转载自blog.csdn.net/ENGLISH_HHZ/article/details/131475516