APP下载

基于LD3320语音识别模块的智能家居声控系统

2017-01-12王中心王东方王亚伟张文

物联网技术 2016年11期
关键词:声控口令智能家居

王中心++王东方++王亚伟++张文

摘 要:本系统以MCS-51单片机为主控制器,通过LD3320语音识别模块对语音信号进行识别,单片机读取识别结果后直接对所接外设电灯、风扇等家用电器进行直接控制或将控制指令通过蓝牙以无线方式传输到其它单片机模块以对其它家电进行控制,实现家居智能化。该系统的语音识别迅速准确,便于用户以语音方式对家电进行无线控制,特别方便老人及行动不便人士的日常生活。

关键词:单片机;LD3320语音识别模块;智能家居;声控系统

中图分类号:TN912.34 文献标识码:A 文章编号:2095-1302(2016)11-00-03

0 引 言

智能家居(smart home)的概念很早就被提出来,但是一直没有在现实中被具体实践,直到1984年出现的首栋智能型建筑拉开了全人类争相构建智能家居的帷幕。智能家居不是某一项家庭电器的智能化,而是以住宅为平台,为实现家居安全舒适、科学环保、健康节能的家居生活环境,依赖综合布线和网络通信技术,将家电设备联系起来,构建高效、流畅的家居设备管理系统,方便人们对家用设备进行操作与管理,为人类提供智能、舒适的生活方式。

1 语音识别的发展历史及应用领域

从工业革命开始,人类逐渐受益于高速的机器生产,但随着科技的发展,人类开始梦想着与机器进行交流沟通,让机器明白人类的命令,然后给予回应,真正实现用机器代替人类进行繁重劳动的目标。语音识别技术为该目标的实现提供了可能,该技术将其接收到的音频信号转换为机器可识别的文本或命令后进行进一步处理。现如今,经历半个多世纪的探索与创新,语音识别技术在各领域都实现了应用,小到儿童玩具、个人家庭电器、电子产品,大到医疗、工业生产等,语音识别系统都发挥着不可替代的作用。从世界上第一个能识别10个英文数字发音的语音识别系统到如今广泛应用在各行各业的语音识别系统,我们希望语音识别技术在未来取得更大的发展。

语音识别技术的发展离不开研究者们的卓越贡献,由一开始特定人、小词汇的识别到如今非特定人、连续发音、大量词汇的识别,这其中各种技术的更新发展必不可少。广泛使用的计算机网络和普遍使用的手机、ipad等提供了大量文本和语音方面的材料资源,多渠道的资源为语音识别中的语言模型和声学模型的训练提供了有力支持。语音识别的未来发展令人期待。

2 智能家居声控系统的方案设计

2.1 系统总体结构图

图1所示为系统总体设计结构框图。该系统的硬件部分包括电源、LD3320芯片、单片机、继电器等。语音识别由LD3320芯片实现,系统整体控制由MCS-51单片机实现,包括对LD3320芯片的初始化等。用户语音指令经麦克风送给LD3320语音识别模块,LD3320识别处理后,把识别结果传送给单片机,单片机将根据识别结果对外设进行相应控制。若语音指令无法识别,则由单片机控制LD3320语音模块重新进入新的识别处理过程。

2.2 LD3320语音识别模块

LD3320芯片是一个专用于语音识别的芯片,该芯片在设计时注重高效与节能,无需外接任何辅助芯片,直接集成了语音识别处理模块和外部电路,如麦克风接口、语音输出接口、AD/DA转换器等,使其可以实现语音识别、声音控制及人机对话等功能。

2.2.1 主要特征

完成非特定人的语音识别命令。在语音识别技术发展之初,只能由特定的人进行语音命令来完成任务,且需要录音和练习等,而现在只需用户使用相同的语言就可以进行识别,且识别效率大大提高,识别率高达95%,无需外接辅助,实现了单芯片语音识别。

由于用户的语音命令有多种可能,如意思相同但语音命令不同或受到口音语气的影响等,LD3320芯片中的识别语句是动态可编辑,可修改的,在设计时可根据具体情况考虑多种可能,如设置50条识别语句留作用户语音命令的候选语音,以提高系统的整体水平。不过设置时需注意识别语句的长度,如果设置汉字则不能超过10个,设置拼音串则不能超过79个。支持串行接口和并行接口,也可设置为休眠状态,方便激活。

2.2.2 LD3320语音口令识别处理过程

LD3320芯片的语音口令识别处理过程如图2所示。

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

在一些特别的应用场合,人们希望语音识别系统具有较高的识别精度。本系统设计采用“用户口令触发模式”以提高抗干扰能力,避免单片机对外设控制时产生错误动作。

程序设计中设置一个短句作为用户发布命令的触发口令。如定义“小明”作为用户的触发口令。在等待用户触发时,特别是有杂音、噪音的情况下,系统将启动 “循环识别处理”模式,把触发口令“小明”和其他几十个用来吸收错误的词汇设置进LD3320语音识别芯片。如果LD3320芯片中程序检测到用户的触发口令时,则开启“触发模式”,用户给出一级口令,若检测为正确口令,则芯片将给出指示,即提示灯开始闪烁(大约2 s)后,开启二级口令的接收检测即“识别模式”,LD3320识别到预设的二级口令后,如卧室开灯、卧室关灯等,将识别结果送给单片机,由单片机对外设进行控制。在等待口令时,可能会进行误识别,即在其他声音干扰下接收到相似的语音片段,程序可以专门对垃圾词语进行处理或不处理,然后进入循环识别状态,用户只需发出新的口令即可触发。通过二级口令触发模式,用户可以更加方便的进行语音操作,且准确率较高。

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

由于用户的发音习惯不同,可能同一个意思的不同语音命令无法被准确执行。我们将语音命令的关键词语的拼音串设计在LD3320芯片内,例如一级口令“小明”,然后传入一个ID代表这个词语,一旦识别成功后,将这个ID作为识别的结果对外输出。在 LD3320语音芯片中,同一个ID可以对应不同的关键词汇,而且ID不需要连续,编程方式非常简单。例如“中国”“华夏”,可以设置为同一个ID,之后再进行其他处理步骤。

2.2.3.2 对于关键词ID设置多个可能发音,充分利用50项候选可识别语句

有时用户可能不会用同一个词来发出命令,例如“开灯”,用户可能会说“开大灯”“打开灯”“打开电灯”“把电灯打开”等,其说话的口音、语气、情绪、习惯是不同的。因此需把用户的这些发音习惯都考虑到程序设计中,完全利用LD3320芯片的特性,充分利用50条可动态编辑的关键识别条目,编辑不同的候选语句并设置到芯片中。这样用户在发出命令后,被准确执行的效率增加,完善了系统的功能。

2.2.3.3 用户通过语音命令后得到语音识别结果的等待时间调节

在本系统中,用户发出口令后芯片大约有12 s的反应时间,然后才会给出识别反应。通过语音识别芯片的检测机制来判断用户的口令是否全部发出,如监测出一段连续的噪音,就认为用户口令已发完,之后给出识别结果。

2.2.4 使用过程中应注意的问题

在测试过程中发现,LD3320模块应用时要注意以下问题:

(1)用户使用时背景声音(噪音、杂音等)会造成一定的干扰;

(2)设置语音模块内识别列表的内容和50个可编辑的候选语句有关;

(3)设置识别列表中各词汇之间的相似程度;

(4)用户的发音快慢、大小、口音以及发音是否清晰等;

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

3 智能家居声控系统的软件程序设计

智能家居声控系统的程序处理过程主要包括单片机初始化;LD3320芯片的初始化;LD3320语音识别结果寄存器的读取以及单片机对外设的控制等。

3.1 具体软件功能模块介绍

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

名称:void MCU_init()。

功能:单片机初始化。

(2)中断处理函数:void ExtInt0Handler(void) interrupt 0

名称:中断处理函数。

功能:对LD3320的中断请求进行处理。

其他说明:语音识别模块接收到音频信号后进入函数,判断识别结果,若无结果则设置寄存器开始下次识别。

(3)用户执行函数:void User_handle(uint8 dat)

名称:用户执行函数。

功能:识别结果成功后,MUC进行之后的处理。

(4)LD3320复位函数:void LD_Reset()

功能描述:复位LD模块。

(5)LD3320初始化函数:void LD_Init_Common()

功能描述:LD模块命令初始化。

其他说明:该函数一般不需要修改。

(6)LD3320ASR功能初始化函数:void LD_Init_ASR()

功能描述:LD模块ASR功能初始化。

其他说明:该函数一般不需要修改。

(7)运行ASR识别处理函数uint8 RunASR(void)

功能描述:运行ASR识别流程。

返回值:asrflag:1->启动成功;0->启动失败。

其他说明:识别顺序如下:

① RunASR()函数实现一次完整的ASR语音识别流程;

② LD_AsrStart()函数实现了ASR初始化;

③ LD_AsrAddFixed()函数添加关键词语到LD3320中;

④ LD_AsrRun()函数启动一次ASR语音识别流程。

任何一次ASR识别流程均从初始化开始,皆按照此顺序进行。

(8)语音命令添加函数:uint8 LD_AsrAddFixed()

功能描述:向LD模块添加关键词。

返回值:flag:1->添加成功。

(9)识别结果获取函数:uint8 LD_GetResult()

功能描述:获取识别结果。

返回值:LD_ReadReg(0xc5 ),读取内部寄存器返回的识别码。

3.2 系统程序流程图

声控系统单片机程序流程图如图3所示。

4 系统测试

本系统以“小明”为一级指令口令,每次识别时必须先触发一级口令,才能进行二级口令,如卧室关灯、卧室开灯、客厅开灯、客厅关灯等。

系统加入电源后对麦克风说“小明”一级口令,指示灯闪烁亮灯后,再对着麦克风说:“卧室开灯”二级口令则继电器控制卧室灯亮。目前该系统能识别的二级口令有5个,分别是“客厅开灯”“客厅关灯”“卧室开灯”“卧室关灯”和“close all”,实际可以根据具体布置需要增加控制节点及相应识别口令。

5 结 语

智能家居声控系统不仅能为大家带来舒适的居住环境,还具有系统可靠性高,误识率低,方便适用的特点,具有广大的应用前景。

参考文献

[1]王炳锡.实用语音识别基础——21世纪高等院校技术优秀教材[M].北京:国防工业出版社,2015.

[2]谭浩强.C程序设计教程[M].北京:清华大学出版社,2007.

[3]金鑫,田,阙大顺.基于LD3320的语音控制系统设计实现[J].电脑与信息技术,2011,19(6):22-25.

[4]徐波.语音识别技术发展现状与展望[Z].中科院自动化研究所,2011.

[5]熊飞丽.语音识别技术在语言教学软件中的应用研究[D].长沙:国防科学技术大学,2002.

[6]王文明.面向应用的机器人一体机远程控制方案中的语音识别方法[EB/OL]. http://www.paper.edu.cn/releasepaper/content/2012-07- 115.

猜你喜欢

声控口令智能家居
高矮胖瘦
口 令
基于Zigbee的无线通信技术在智能家居中的应用
好玩的“反口令”游戏
SNMP服务弱口令安全漏洞防范
声控灯为什么可以节能
关于智能家居真正需求的探讨
声控水龙头
基于LD3320的智能家居控制