• 图纸下载
  • 专业文献
  • 行业资料
  • 教育专区
  • 应用文书
  • 生活休闲
  • 杂文文章
  • 范文大全
  • 作文大全
  • 达达文库
  • 文档下载
  • 音乐视听
  • 创业致富
  • 体裁范文
  • 当前位置: 达达文档网 > 专业文献 > 正文

    基于语音识别的智能家电控制系统

    时间:2021-01-27 10:06:17 来源:达达文档网 本文已影响 达达文档网手机站

    王文发 张宁 尤国强

    摘要:基于语音识别的智能家电控制系统的主控制器是MCS-51单片机,为了识别语音信号,采取LD3320语音识别模块,电视机、电冰箱等家用电器的控制是单片机识别结果后通过无线方式传输到其他单片机模块进行控制,从而达到家居智能化。该系统能够帮助老人及行动能力障碍人士的日常生活,它的优点在于语音识别迅速准确,是对家电使用的一次革新。

    关键词:智能家居;单片机;LD3320;语音识别

    中图分类号:TP311    文献标识码:A

    文章编号:1009-3044(2020)23-0160-02

    1 引言

    早在20世纪中叶,智能家居的概念就被提出来了,可惜一直没有实现,直到20世纪80年代中期,才出现了第一栋真正意义上的智能建筑,从此引起了智能家居的发展浪潮,并一直持续至今。智能家居系统不仅可以让家中的各类家电设备具有“智能”,它还可以将居家生活中的安全舒适、科学环保、健康节能等概念联系起来,以住宅为基站,采用仿人智能传感器布局、无线网络通信、远程控制等技术,将家庭中的各种设备有机的建立起网络关系和智能控制功能,从而为人们提供了一种全新的、舒适便捷的家居生活方式。

    2 语音识别技术的发展历史和应用领域

    第二次工业革命后,机器的使用不但让人类进一步从繁重的体力工作中解放出来,而且还大大提高了生产劳动的工作效率。但当时机器执行各种任务时必须受到人的操控,机器还不具备智能化自动运行的功能。随着计算机硬件设备的快速发展和软件技术的提高,机器逐渐从一个只能服从人类指挥的配角,变为具有人机交互功能甚至具有智能判断功能的主角。为了让机器能够理解人类的语言指令,具备仿人化的智能功能,从而更有效地进行反馈与控制,因此,语音识别技术被提了出来,该技术将音频指令转化为信号指令,从而让机器对整个系统做出反应[1]。到了今天,经过50多年的探索与创新,语音识别技术在需要电子设备的各个方面都得到了应用,大到载人航天、工业生产,小到家用电器、儿童玩具,语音识别系统都做出了巨大的贡献[2]。从识别一个指令的语音识别系统到如今各种各样的能够识别复杂语音指令的智能语音识别系统,语音识别技术的发展远超人们的预期,已达到了实用化的发展阶段。

    智能语音识别系统由特定人声到非特定人声、少量词汇到大量词汇、单一发音到连续发音这些过程的突破,研究者付出了巨大的心血,做出了卓越的贡献。现如今计算机网络、智能手机、家电设备等可以应用语音识别的对象已为语音识别技术提供了充分的语音和文字方面的数据库来源,它们为语音识别模型的建立和语义识别训练提供了广泛而可靠的数据来源[3],由此可见,语音识别技术未来可期。

    3 智能语音家电控制系统的整体设计方案

    3.1系统整体结构图

    智能语音家电控制系统的整体设计框图如图1所示。其中,电源模块、LD3320芯片语音识别模块、继电器模块和单片机控制核心模块等构成了系统的硬件部分。LD3320芯片用来做语音识别模块部分,MCS-51单片机用来做系统的整体控制以及对各个功能模块进行初始化设定。LD3320芯片语音识别模块由声音传感器(麦克风)转化来的电信号进行语音识别处理,并将结果传输给单片机,单片机再做出反应并执行与语音指令相匹配的具体控制动作。当接收到的语音指令无法与指令库中的指令成功匹配时,则认为此次语音识别任务失败,LD3320芯片语音识别模块将放弃本次识别任务,转而由单片机控制,跳转到下一个识别程序,等待执行新的语音识别任务。

    3.2 LD3320语音识别模块

    LD3320语音识别模块专注于语音识别技术,该芯片总线支持SPI并行数据传输方式,并配有非特定语音识别硬件单元、片载咪头和内置有源晶振,它可以方便地与各种外设和控制芯片连接,易于实现从语音识别到指令输出的人机交互功能,且该芯片在设计方面还侧重于高效和节能。

    3.2.1 LD3320语音识别芯片的主要特征

    LD3320语音识别芯片采用的是非特定人语音识别技术。传统的特定人语音识别技术只能识别一个人发出的语音指令,且识别控制的前提还需要对特定人声进行反复的录音与练习。现在科技发展速度非常快,LD3320芯片的非特定人语音识别技术已经可以做到不分年龄、性别和音调特征,只要收到的语音信息能够与语音识别库中的指令匹配,就可以根据指令做出相应的输出反应,其识别效率高达95%。在不需要任何外接辅助设备、不需额外Flash、RAM存储单元、不需AD转换单元的条件下,LD3320芯片实现单芯片语音识别功能,具有硬件体积小,应用简便和识别准确的显著优点。

    LD3320芯片语音指令库中的语音指令是动态可编辑、修改的。但在语音识别的过程中,可能存在多种不同的识别问题,比如对于同一种语音指令,不同的人可能有多种不同的语句表达形式,又比如同一个语句,说话人可能会有不同的表述口音或不同的表述语气,这都会影响最后的识别效果。LD3320芯片在语音识别过程中,会自动遍历匹配语音指令库中的关键词列表,只要用户语音中包含关键词列表中的某个关键词,就会给出相对应的识别结果,而且不需要整句匹配或语音语调匹配。录入到LD3320芯片语音指令库中的关键词可以是名字、操作指令或短句等任意漢字字符串的组合。在芯片的使用说明上,每个关键词的额定最大包含汉字个数是30个,但从实际使用情况来看,当语句中包含8个以上的汉字时,识别效果就会大打折扣,此时识别的准确度将难以保证。另外,当用户说话中出现停顿、咬字不清、说多字、说漏字、单字重复等情况时,芯片的语音识别效果都会受到不同程度的影响,并可能最终得到错误的语音识别结果。因此,在LD3320芯片的使用中,建议不要将其语音指令库中的关键词设置过长,且为了能够准确识别语音指令,用户发音要准确,以保证得到正确无误的语音识别结果。

    3.2.2 LD3320语音识别模块使用技巧

    为了避免嘈杂的环境或者其他特别的应用场合对语音识别系统造成干扰,以至于单片机控制设备做出错误的动作,本系统设计采用了“用户口令触发模式”来提高抗干扰能力。

    语音识别口令的处理过程如图2所示。“用户口令触发模式”在程序中设置一个短句当成用户发布命令的触发口令,触发口令可以设定为任何用户喜欢的短句,如“小聪”“小精灵”等等。以下说明以“聪聪”为例。如果在嘈杂的环境里,噪音过多,系统会启动“循环识别处理”模式,在此模式下LD3320语音识别芯片会自动识别触发口令“聪聪”和过滤其他外界干扰噪音产生的错误语音信号。当进入语音识别程序后,LD3320芯片会等待接受外部语音信号,一旦检测接收到用户说出的语音信号,则程序会启动“触发模式”,然后将接收到的语音信号作为一级指令,与芯片语音指令库中的关键词进行匹配,若匹配成功则LD3320上的LED指示灯将闪烁2秒钟。接下来,语音识别程序进入二级指令的检测接受模式,此时,如果LD3320又接收到了用户发出的语音信号(如电风扇、空调、电视机、拉开窗帘等语音指令),LD3320会开始再次识别匹配关键词,识别成功后将识别指令的结果传给单片机,单片机会控制相应设备做出与口令相同的指令。

    如果将所有语音指令不分层次进行一次性识别,那么外部干扰噪声,或由于指令过长导致用户表述不清楚等问题将可能让识别的准确度下降。另外,当识别不准确的情况发生后,LD3320可能会进入循环识别的狀态,这将会影响整体识别程序执行的效率。因此,将语音指令分为二级层次进行识别控制,将能够得到更稳定和更准确的语音识别效果,从而让用户更易于掌握语音识别芯片的用法,提高人机交互的效率。

    下面再介绍几个本文设计的智能语音家电识别系统的应用技巧。

    1)巧妙运用关键词语的ID,提高识别效率

    每个用户所处的地区可能不同,并且发音习惯不同,对特定词语的发音也会不同,这样ID的作用就发挥出来了,我们可以在程序中先设定一个语音指令的拼音串ID关键词,该ID关键词可以对应多个不同的语音指令。对于ID关键词的使用,当用户说出语音指令后,如果LD3320芯片识别出该语音指令对应着某个ID关键词,则LD3320将会把预设好的ID作为识别结果输出到单片机中。ID的设置很简单,不需要连续,编程也比较容易。同一个ID将对应不同的关键词汇,比如可以将“土豆”“马铃薯”和“洋芋”的识别结果均映射到同一个ID关键词上,这样当用户说出这三个词汇中的任意一个时,LD3320的识别结果都会是相同的ID指令。

    2)利用50项语音识别候选语句,为ID关键词设置多个发音备选项

    不同用户在说出相同指令时,情绪、口音、语气、习惯等都是不一样的,用户不会每次发出指令时都说出一样的词语,比如“拉开窗帘”就有很多说法“拉开帘子”“把帘子打开”“把窗帘升起来”等,所以用户就需要把这些自己的习惯考虑周全设计到程序中。

    LD3320芯片为一个关键词提供了50项动态可编辑的关键词识别备选条目,据此为一个关键词设置多条用户发音备选指令,将这些语音备选项写入LD3320中,将能够提高语音识别的智能程度,用户在发出指令时会更加轻松自由,并且程序的识别效率也会大大提高,进一步提高了人机交互的智能度。

    3)用户发出语音指令后,识别等待时间的说明

    当用户发出语音指令后,LD3320芯片需要大约12秒钟去执行识别判断程序。在此过程中,程序首先会检测用户语音指令是否已经全部发送完毕,如果在检测到语音指令后,出现不间断的连续噪声,则LD3320会认为用户语音指令已接收完毕,接下来再去执行识别判断指令的相应程序。

    4)使用过程中应注意的问题

    (1)用户的发音快慢、大小、口音以及发音是否清晰,发音是否清晰对系统能不能做出准确的反应起主导地位;

    (2)用户使用时噪音、杂音都会造成一定的干扰;

    (3)距离麦克风的位置远近以及接收语音的外设(麦克风等)质量等;

    (4)语音识别列表中各词汇之间的相似程度。

    4 智能语音家电控制系统的软件设计

    智能语音家电控制系统的软件设计流程主要包括:单片机上电初始化;LD3320芯片初始化;一级语音指令的识别与处理;二级语音指令的识别与处理;单片机依据语音识别结果执行外设控制命令等。

    4.1系统程序流程图

    图3为语音识别程序流程图。

    4.2具体软件功能模块介绍

    (1)单片机初始化函数:void MCU_initial()

    函数功能:运行单片机初始化子程序。

    (2)外部中断处理函数:void INT_0() interrupt 0

    函数功能:LD3320接收到语音指令后触发外部中断,单片机执行中断处理程序。

    这里需要说明的是,当LD3320接收到语音指令后,将触发单片机的外部中断,进入上面的中断程序,该中断程序执行语音指令查找匹配任务,如果得到匹配的关键词结果,则将该结果赋给一个全局变量;反之如果没有找到匹配结果,则跳出中断程序,等待下一次的中断到来。

    (3)识别结果执行函数:void result_do(unsigned char data)

    函数功能:当上面的中断函数成功识别出匹配的关键词结果后,单片机将执行与识别结果相对应控制函数。

    (4)LD3320芯片复位函数:void LD3320_reset()

    函数功能:对LD3320芯片进行复位操作。

    (5)LD3320芯片初始化函数:void LD3320_initial()

    函数功能:对LD3320芯片进行初始化操作。

    相关热词搜索: 家电 控制系统 语音识别

    • 生活居家
    • 情感人生
    • 社会财经
    • 文化
    • 职场
    • 教育
    • 电脑上网