基于语音识别技术的智能家居控制系统的设计(源码+万字报告+实物)
目录1 绪 论11.1 课题研究背景11.2国内外发展现状11.3研究内容22 相关理论基础32.1 语音识别理论32.2 语音信号预处理32.3 语音信号特征提取42.4 模式匹配及识别算法42.5本章小结43 系统硬件设计53.1 系统概述53.2 系统设计与分析53.2.1 语音控制模块设计53.2.2 数据传输模块设计63.2.3 控制家居模块设计63.3本章小结74 系统软件设计84.1
目 录
1 绪 论 1
1.1 课题研究背景 1
1.2国内外发展现状 1
1.3研究内容 2
2 相关理论基础 3
2.1 语音识别理论 3
2.2 语音信号预处理 3
2.3 语音信号特征提取 4
2.4 模式匹配及识别算法 4
2.5本章小结 4
3 系统硬件设计 5
3.1 系统概述 5
3.2 系统设计与分析 5
3.2.1 语音控制模块设计 5
3.2.2 数据传输模块设计 6
3.2.3 控制家居模块设计 6
3.3本章小结 7
4 系统软件设计 8
4.1 软件开发平台简介 8
4.2 核心模块软件设计 9
4.3 本章小结 11
5 总结和展望 12
参考文献 13
致 谢 14
1 绪 论
1.1 课题研究背景
进入新世纪以后,我国各方面都取得了较大的进步,同时人们对物质的要求也越来越高。伴随着科技技术的更新换代,生活中的事物在朝着智能化的方向发展,包括家居设备。在这样新兴的时代背景下,传统家居必然会走上智能化和科技化的道路[1]。传统的家居设备需要通过人工一一进行开启或者关闭工作,而现代家居设备数量越来越多,种类也越加繁多,当用户回到家中时,劳累的身体还需要对这些家居设备一一进行操作,加重了身体的负担,传统的模式已经不能够满足人们的需求,在这样的背景下,智能家居的产生很好的解决了这个问题[2]。
智能家居设计的过程中融合了多学科知识,包括自动控制技术、计算机技术、网络协议技术、硬件布线技术等,通过在电器设备上安装传感器使电器设备统一连接于网络中,达到远程控制电器工作的目的,减少了人力资源的消耗,同时节约了资源,操作简单[3]。
1.2国内外发展现状
在智能家居设计中,核心部分是智能家居控制终端,经过多年的发展,智能家居终端已经发展出了不同的模式,主要为以下三种[4]:
(1)通过键盘、液晶显示屏(Liquid Crystal Display, LCD)对家用电器进行控制:这种控制方式设计复杂,操作困难不易上手,且智能在家庭内部实现控制,不能完成远程控制;
(2)通过电脑终端对家用电器进行控制:这种控制方式虽然操作简单,但是仍然智能在家庭环境中进行控制,不能完成远程控制;
(3)通过手机移动端对家用电器进行控制:这种方式能够很好地解决远程控制问题,操作灵活,设计简单,是当下最流行的智能家居控制终端设计方案,也是未来智能家居发展的主要方向。
近些年来,Android操作系统因为其灵活性和简单性在多种平台上得到广泛应用,智能手机、平板电脑等终端上经常出现Android操作系统的身影,并且在未来很长的一段时间内,Android操作系统仍能在市场上占据重要的地位[5]。国内外对家居设备的研究也取得了一定的成果,从早期的对单个电器设备的控制,现如今已经慢慢发展成了可以对多个电气设备的控制。本文充分利用Android操作系统的开放环境和包容特点,提出一种基于语音识别的Android平台智能家居控制系统设计方案,兼具灵活性和简便性,设计出来的应用程序(Application, APP)具有以下特点[6]:(1)可配置性。可配置性指的是当家中家居设备发生变化,包括添加新的设备和丢弃旧的家居设备时,APP可由用户自行手动添加或删除该设备的信息,操作简单,无需专业技术人员参与,简单易上手。(2)用户界面友好性。该项性能指的是在设计用户界面时,以该家居设备的图片为背景,让用户能够快速了解操作的对象,即使文化水平不高的用户也能够轻易明白如何操作,同时家居设备对应的图标还能够手动随意移动位置,让界面设计更加灵活、方便。(3)可扩展性。可扩展性是利用了Android系统的开放性特点,APP设计完成后,开发人员可以随时根据需要对APP进行修改和完善。
另外,国内外关于语音识别技术的研究也有了丰硕的成果[7]。语音识别技术最早起源于上个世纪60年代,当时科研人员研发出来的动态规划算法(Dynamic Time Wrapping, DTW)加护就能够对小词汇量的语音信号进行精准识别[8]。到了70年代,线性预测编码(Linear Predictive Coding, LPC)技术的出现能够有效解决特征函数的提取问题,解决了语音信号识别的关键问题[9]。80年代出现的隐式马尔科夫算法(Hidden Markov Model, HMM)模型利于马尔科夫原理使得语音识别模型搭建起来,进一步拓展了语音识别的词汇量,为后续研究奠定了基础。现代科技结合先进的神经网络技术,又开发出了一系列智能语音系统,推动了语音识别技术的进步[10]。
1.3研究内容
本文的主要研究内容如下:
第1章绪论介绍了本文的研究背景和研究意义,以及关于智能家具的国内外研究现状。
第2章就语音识别相关理论知识进行了详细阐述。
第3章是对本文的硬件设计。
第4章是对本文的软件设计,并且在本章展示了语音控制的效果,输入语音后能够正确的识别语音信息,对家居设备进行控制。
最后是对全文的总结和展望。
2 相关理论基础
2.1 语音识别理论
语音识别指的是通过语音来控制某项事务完成某项功能的行为。现代语音识别技术包括5个阶段,如图2-1所示:
图2-1 语音识别五个阶段
在以上列出的5个语音识别过程,其中最重要的是预处理阶段和特征处理阶段,在预处理阶段需要对语音信号进行滤波以及采样处理,增强语音功能。在特征处理阶段需要提取出语音信号的特征点,识别人物信息。因为人的声音信息中包含着不同的频率特点,有些部分频率低,有些部分频率高,而频率高的部分容易受到噪声的干扰,这就需要对声音作滤波处理,选择合适的称函数对声音信号的干扰进行滤除。接下来将针对这两个主要部分分别进行阐述。
2.2 语音信号预处理
对语音信号进行预处理指的是通过滤波、采样、量化等手段对原始的语音信号进行加工处理,滤波时一般是采用合适的滤波器进行处理,一般情况下是采用带通滤波器,防止信号发生混叠干扰。采样过程是对原始信号进行离散处理,根据奈奎斯特采样定理,要让采样频率大于信号最大频率的两倍才能使最后采用的结果不失真。采样完成之后必须对语音信号进行模数转换,模数转换的目的是使得计算机能够方便处理。由于在家居环境中,主人说话的声音比较小,因此有时候会在软件设计时加入语音增强模块,防止因为噪声过大而掩盖了原始的真实语音信号。其次还需要对语音信号进行预加重处理,这是因为当语音信号的频率超过800赫兹时,信号会出现严重的衰减,为了使得信号不失真,就必须对语音信号进行预加重处理,使得信号在高频率部分变得平坦,便于后来的频谱分析。因为语音信号会因为声调生涩等的不同而发生变化,因此是一个不平稳的信号,为了解决这个问题,还需要对语音信号进行加窗分帧,使信号尽量保持平稳的状态,方便进行频谱分析。最后,因为一段语音信号往往包含着有用信号和无用信号,为了提升工作效率,及时有效的检测到有用信号,这时还需要对语音信号进行端点检测,运用端点检测的手段,将一些无声信号或者有噪声的信号进行滤除,提升语音识别效率。
2.3 语音信号特征提取
语音信号的特征提取在语音识别技术中是一个关键点,通过对特征的提取能够有效的识别人物信息。对于大部分语音信号一般都处于低频带,但是仍旧有部分语音信号处于高频带,后者很容易受到噪声的干扰,因此需要采取一定的手段对高频信号进行滤除,增加语音信号的抗噪能力。常用的语音信号特征提取方法是梅尔频率倒谱系数分析法,本文也将采取这种方法对语音信号进行了特征提取。
2.4 模式匹配及识别算法
语音识别的另外一个模块是进行模式匹配,模式匹配的目的是将人的语音信息和语言库中的文字信息进行匹配,从而将翻译过来的文字信息传入到主控芯片控制目标完成某项功能。现代常用的模式匹配方法是HMM算法,本人也将采取这种算法完成对语音信号的模式匹配和识别。
2.5本章小结
本章主要介绍智能家居系统中语音识别的原理及过程,语音识别首先要对语音信号进行预处理,提取语音信号特征,再根据模式匹配算法从语音库中找到匹配的信息,从而完成对语音信号的转化和命令的传输,本文的研究内容为后文的研究打下了坚实的基础。
3 系统硬件设计
3.1 系统概述
本文研究基于语音识别技术的智能家居控制系统,主要分为三个模块,第一个模块为语音模块,第二个模块为数据传输模块,第三个模块为控制家居模块。
语音部分主要分为两个小模块,首先需要进行语音信号的输入,其次要对语音信号进行识别,信号输入是系统正常运行的前提,识别是系统发挥正常控制功能的前提。良好的语音识别技术需要完成两大功能,首先,要让计算机端建立较好的语音特征与指令匹配关系,其次,要使得输入语音信号能够和训练过的语音信号找到匹配关系。前者需要搭建合适的声音模型,后者需要采用合适的模式识别技术。基于本文的需求,决定在手机上选择基于MIT语音内核进行开发,完成对语音信号的识别。
数据传输模块,由于本文的应用环境是在家居上,也就是室内环境,因此选择Zigbee架构完成数据传输。室内家居一般不会轻易移动,因此家居环境的网络拓扑结构较为稳定,而Zigbee技术进行数据传输具有低功耗、低成本的特点,适用于网络环境稳定的系统,因此本文将选择Zigbee技术作为数据传输的控制系统。
控制家居模块本文主要是通过Android平台建立网络协议来完成对家居设备的控制,家庭中还安装了一台控制器来下发手机端传来的控制指令,具体工作模式见图3-1所示:
图3-1 控制模块方案总体框架
3.2 系统设计与分析
3.2.1 语音控制模块设计
首先需要明确本文语音模块完成的功能,即需要在手机客户端准确识别出语音指令,完成对家居设备的控制。基于此,本文设计采用MIT语音识别服务器完成这项功能,这个服务器能很好的识别中文语音信号。在采集完语音信号之后,该服务器需要对语音信号进行预处理,提取特征信息,建立语音模型。相较于其他语音服务器,MIT具有较高的识别准确率,是由美国麻省理工学院的研发部门开发出来的,能够对英语、汉语和日语三种语音进行识别。
在设计之前,需要了解MIT语音信号的底层结构。MIT语音处理器在识别语音信号时可以分为三个层次,分别是音节、词汇和语义。由于MIT语音处理器几乎涵盖了所有的中文音节信息,因此当人类在发出基本的音节乃至连词变音时都能够精准的识别,识别之后根据特定的算法翻译成词汇输入到系统后台中。接着下一步就是对词汇的识别,在MIT的后台服务器中的“*.jsgf”文件会自动识别词汇含义,对词汇进行解析。解析完成之后,就会将解析得到的计算机语言传递到后台由手机下达指令。
3.2.2 数据传输模块设计
考虑到本文的设计环境中家居设备可以会发生移动,因此网络拓扑关系可能有所变化,因此本文选择AODV路由算法实现室内环境中的传感器网络搭建。该路由协议的特点是一是一办,当路由建立完成之后,只要居家设备不发生移动,后续的指令传达路径便会按照原先的路由进行数据的传输。而如果当家居设备移动或者发生断电情况后,那么网络内就会重新建立起路由,时刻保持数据传输的畅通。
3.2.3 控制家居模块设计
如图3-1 (a)所示,在本文的设计方案中,手机客户端能够与家居设备控制器进行网络连接,而家居设备控制器能够与每一个家居设备进行网络连接。在同一个家庭无线网络环境中,手机客户端控制家居设备首先是将控制指令传达给家居设备控制器,控制器的信号接收装置在收到信息后对其进行解析,再将此命令向下传达给家居设备,最终完成用户想要实现的操作指令。如图3-1(b)所示,该种设计方案是基于手机客户端与控制器之间的网络为3G网络搭建的,家居设备控制器与每一个家居设备之间仍旧是以无线网络连接。在控制器上有安装一个3G上网卡,手机客户端控制家居设备首先是通过3G网络将控制指令传达给家居设备控制器,控制器的信号接收装置在收到信息后对其进行解析,再将此命令向下传达给家居设备,最终完成用户想要实现的操作指令,这种方式一般用于远程控制。同时,本设计的方案能够实现的功能包括控制灯亮灭等等。用户在控制家居设备前,首先需要进行注册登记,将登记信息通过网络传达到服务器。当家中设备检测环境异常时,比如出现火灾迹象,传感器就会将采集到的报警信息传递到控制器端,再通过网络发送到手机客户端,在服务器端也会对报警信息进行记录。
3.3本章小结
本章主要介绍系统的硬件设计部分,首先对系统的整体硬件设计进行了阐述,接着对各个子模块进行了设计,子模块主要包含语音控制模块、数据传输模块和控制家居模块,语音控制模块是系统的核心,是处理系统输入信号的重要组成部分,数据传输模块是中间模块,连接着输入信号端和家居控制端,家居控制模块是展现系统性能的重要部分。
4 系统软件设计
4.1 软件开发平台简介
本文涉及的模块较多,需要在手机客户端搭建MIT语音服务器,同时需要PC端完成对Zigbee模块数据传输的设置和初始化,PC端需要编写C语言指令对Zigbee模块的操作本文只介绍C语言软件开发平台的使用。
C语言如今已经发展成为了当今世界的主流语言,在日常生活中得到了广泛应用。相较于之前的几种编程语言,C语言最大的优势在于它不仅适合应用软件语言的编写,也适合系统软件语言的编写,因此才能发展成为如今巨大的规模,这些都与其自身的特点离不开,因此本文选用C语言作为我们的编程语言。
总体来说,C语言具有以下特点:(1)语言简单明了但结构紧凑。C语言对于新手而言是一门很容易上手的语言,快者几天就能掌握这门语言的奥秘,其次,它的结构是紧凑的,各部分连接紧密。(2)C语言综合了高级语言和低级语言的优点。在适用范围上也就比一般的语言要广。 (3)C语言对人类友好。C语言相对于汇编语言来说更加容易理解,可以说汇编语言是对计算机友好的,而C语言则是对人类友好的。(4)C语言的语法要求不高。对于这一点,也就大大降低了人们学习C语言的门槛,因此广受人们青睐。
本文设计的软件流程如图4-1所示:
图4-1 系统软件设计流程图
4.2 核心模块软件设计
本文的智能终端模块也就是控制家具模块主要是由手机端完成,并在手机端安装好语音控制软件,由于一个家庭环境中往往包括多个家居设备,因此手机端需要控制多个节点。为了解决这个问题,首先将数据包传递给家居环境中的主控中心,控制中心将数据标分解之后,再根据指令传递给特定的家居设备,从而完成对家居设备的控制。在这个数据包中包含三个内容,首先是节点地址,其次是家电类型,最后是需要传达的控制命令。这里的家电类型其中就包含了家居环境中所有的家居设备,如电视机空调等。而控制命令就是手机客户端翻译出来的语音信息。
首先用户在对家居设备传达控制命令之前,需要在手机客户端上进行注册和登录,只有注册过的用户才有资格对家居设备进行控制。本文设计的用户注册和登录界面见图所示:
图4-2 系统注册和登录界面
注册模块的设计软件流程图如下图所示:
图4-3 注册模块设计
如图4-3所示,在本文设计的注册模块中,主要包括三个步骤,分别是:(1)首先客户必须输入自己的手机号码,输入手机号码之后,后台会对手机号码的格式进行检测,如果格式不正确,则需要重新输入手机号码,格式正确则进入下一步骤;(2)手机号码格式正确之后,服务器端会产生一个验证码,然后服务器会将此验证码发送到手机客户端;(3)用户在手机客户端接收到验证码之后,就可以设置密码,此密码会发送到服务器端,在服务器端进行保存,同时用户注册成功,如果该手机号码之前注册过,手机界面会显示“该号码已注册”。
手机用户在通过上一步骤的注册过程之后,手机界面会自动跳转到登录界面,重新输入上述注册过的账号和密码就可以登录。用户在进行手机登录时,后台人就对手机格式进行检验,如果手机格式错误则不能登录到控制界面,手机格式正确和密码正确则能够进入主界面。
本文设计的界面控制模块指的是手机客户端的主界面,主要是陈列家庭房间信息表,对家庭中的电器进行了分类,是为了方便进行管理,同时以图片和文字的形式进行展示,能够同时满足不同层次文化人群的需求。设计时用一个Layout进行布局,具体见图4-4所示:
图4-4 界面控制模块设计
在房间列表信息中,目前添加了四个区域的信息,分别是卧室,客厅,厨房,还有浴室,这几个房间基本包含了大部分家庭中得房间信息。每个房间里都包含不同家居设备的信息,点击图标即可看到该房间内的家居设备信息,单击这些家居设备的图标便可以实现对这些家居设备的控制。如若想在房间内添加或删除家居设备,通过主界面的设置按钮操作即可。如图4-5所示是点击客厅房间和厨房房间后展示的家居设备信息。
图4-5 房间内家居设备信息列表
点击具体的家电设备图标后,便进入到该家电设备的控制界面,在该界面中可以清楚的看到该房间内所有的家具设备,如在客厅中就安放了电视机,空调等。点击某一个家居设备的图标就可以对家电进行控制,控制的方式采用语音控制,控制界面见下图所示:
图4-6 语音控制界面
如图4-6所示,进入空调语音控制界面之后,操作人员说出“开机”之后,显示空调开机成功,同样说出“制冷”、“制热”等词汇,都能够正确对空调设备进行操控,语音识别的效果良好。
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)