APP下载

面向智能家居的无线语音控制系统设计

2020-09-22肖清泉顾竟成

贵州大学学报(自然科学版) 2020年4期
关键词:控制板终端设备引擎

肖清泉,顾竟成

(1.贵州大学 大数据与信息工程学院,贵州 贵阳 550025; 2.贵州大学 新型光电子材料与技术研究所,贵州 贵阳 550025;3.中国电信股份有限公司无锡分公司,江苏 无锡 214000)

智能家居以住宅环境为应用背景,利用无线网络技术、自动化控制和语音识别技术等将家电设施集成,建立高效的家居管理系统,提升家居生活的便利性和舒适性[1]。家居智能化的一个重要发展方向是基于语音识别的控制技术,对此国内外已开展了大量运用语音识别的控制技术的研究,目前一些语音科技公司的语音识别技术已经非常高效,识别率通常在95%左右。

现阶段传统家居语音控制系统的控制、交互方式单一,语音识别模式单一,识别距离局限大,用户体验不理想[2]。对于上述问题的解决方案比较欠缺,目前而言市面上设计的产品还没有进行深入研究。对此,本文设计重点不在于提高识别精度,而是在嵌入式系统下借助语音识别技术设计一套无线控制系统,通过此系统除了实现家电的一些常规语音交互操作外,再力求与市面上的同类产品相比能够提供更加多样的控制模式、交互模式、识别模式,更大范围的识别距离,以期给人们的家居生活带来极大便利。

1 系统组成

本系统采用星形网状结构,核心中枢的麦克风采集用户发出的语音,将语音识别成文字信息后,程序再将文字信息转换为指令,根据无线传感器将特定的指令通过网络发送到分布在家中各个角落的终端设备,终端设备在响应指令后根据指令执行情况反馈信息到核心中枢[3]。核心的主控板用来实现系统的统一协调与操控,终端设备借助光敏和温湿度传感器,可以模拟家庭中使用的各种电器设备,如灯、空调、自动窗帘、加湿器等。同时为了用户控制方便,增设了语音远程扩展的功能,将声音的采集和播放集成到一块电路上,方便用户远距离控制整个家居系统。系统的整体架构见图1。

图1 系统整体架构Fig.1 Diagram of overall system architecture

控制系统主要包括以下功能:

1.语音采集与识别。语音的采集和识别单元负责对外界的声音进行模拟信号到数字信号的转换,数字信号到控制指令的转换。

2.语音远程扩展处理。语音远程扩展处理单元用于处理通过WiFi传入的远端声音信息,并将信息接入语音采集与识别单元处理,随后将语音处理结果的反馈信息返回到语音远程扩展单元。

3.语音、界面交互。为了更好的交互式体验,本系统在语音交互的基础上,实现了传统的界面交互终端,其负责信息显示和系统配置。

4.控制和反馈。控制与反馈单元利用ZigBee无线传感器组成的网络对在线的所有终端设备进行控制,同时接收它们的反馈信息并作出相应的处理工作[4]。

2 硬件电路设计

硬件设计主要包括核心主控电路模块、终端设备电路模块、语音远程扩展电路模块。

2.1 核心主控模块设计

本系统核心主控模块采用三星公司开发的S5PV210核心板加上一系列实现系统需求的外设和电路组成,主要包括:系统电源电路、声卡、通用串行总线集线器(universal serial bus hub, USB Hub)扩展电路、WiFi、ZigBee、液晶显示器(liquid crystal display, LCD)显示电路、复位电路、按键电路。各硬件之间的逻辑关系见图2,核心主控模块如图3所示。

图2 核心主控模块硬件结构Fig.2 Hardware structure of the core control module

图3 核心主控模块Fig.3 Core main control module

2.2 终端设备模块设计

终端设备由STM32和ZigBee外加实现不同功能的硬件设备组成,因具体实现的功能不同模块有所区别。本文主要的终端设备有实体色温灯,继电器开关模拟光敏自动窗帘、温控空调、湿度加湿器等,其各个硬件的整体逻辑结构类似,逻辑关系见图4,终端设备模块如图5所示。

图4 终端设备模块硬件结构Fig.4 Hardware structure of the terminal module

图5 终端设备模块Fig.5 Terminal module

2.3 语音远程扩展模块设计

语音远程扩展模块由STM32、WiFi网卡、WM8960芯片和Flash存储器组成,主要用于远程的声音输出与语音控制功能,各硬件的逻辑关系见图6,语音远程扩展模块如图 7所示。

图6 语音远程扩展模块硬件结构Fig.6 Hardware structure of the voice remote expansion module

图7 语音远程扩展模块Fig.7 Voice remote expansion module

3 软件设计

系统选用Linux+Qt的软件框架,以Linux内核和一些外设驱动为软件基础环境,构建嵌入式的Qt应用程序终端[5],系统的软件结构分为4层:硬件层、Uboot内核层、文件系统层、软件应用层[6-7]。系统软件整体结构见图8。

图8 软件整体结构框图Fig.8 Overall structure of the software

软件设计通过此架构实现语音采集识别、多语音识别引擎切换、多模式交互控制与反馈、语音识别距离扩展等功能,下面对此做具体介绍。

3.1 语音采集与识别

语言信息的采集与识别是本系统获取信息的主要途径,也是软件必须要实现的核心功能,主要包括语音唤醒、语音识别、语音合成等功能。本系统采用讯飞开放平台的语音识别库进行声音到文字或指令的转换[8]。语言信息采集和播放使用WM8960,WM8960将外界声音利用高精度模数转换器(analog to digital converter, ADC)转换为数字信号,随后软件将声音的数字信息传入语音识别库即可获取到声音的文字信息[9]。控制板利用文字信息进行一系列逻辑判断,通过ZigBee网络对终端设备下发指令,终端设备接收指令后按照指令完成一系列动作,并反馈信息到控制板,控制板接收信息并通过声音和文字的方式将信息呈现给用户。具体识别过程如图9所示[10-11]。

图9 语音识别流程Fig.9 Flow of the voice recognition

3.2 多语音识别引擎切换

传统语音控制系统大多采用在线网络,基于云端语音识别引擎得出识别结果,此识别模式提供多样化的语音服务和高精度的识别结果,但需要接入网络,语音的识别可能受到网络影响导致延时甚至直接无法工作,导致用户体验变差[12]。另一种常用的识别模式是离线语音识别,其使用本地的语音识别算法进行语音识别,不需要经过网络,在速度方面快于云端识别,但多样化与识别精度方面不及在线识别。

汲取两种识别模式的优势,本系统的设计采用一种创新模式,自动切换两种识别模式进行识别。在网络情况良好时,优先使用在线语音识别引擎;当网络出现拥堵时,自动切换至离线语音识别引擎。随时保证用户命令能够成功识别。

云端语音识别引擎和离线语音识别引擎的自动切换是本设计的特点,两者自动切换的软件实现过程如图10所示。

图10 多语音识别引擎切换流程图Fig.10 Flow chart of the multi-voice recognition engine switch

采集语音数据后,根据当时“ping”命令的网络延时情况,进行识别引擎选择:当网络延迟较低时,选择云端语音识别引擎;当网络延迟很高时,采用离线语音识别引擎。考虑到网络可能在识别过程中突然拥堵,因此,云端语音识别引擎在一段时间内没有返回识别结果时,结束语音识别并使用离线语音识别引擎直接解析返回结果,保证每次语音识别都能得到最优化结果。

3.3 多模式交互控制

传统的语音控制系统在家居控制方面大多采用被动控制的方式,用户发出确切的指令完成控制动作,但在很多特定的场合不能满足控制需求。甚至有时用户在忙碌时,不会注意到家居环境的变化,需要设备主动提醒[13]。这些需求的实现不是单一被动控制模式就可以完成,因此必须在传统控制模式上加入更多新的控制方式,使家居更加智能。

本系统区别于传统控制方式,对大部分控制终端都设置有三种控制模式:被动控制、自动提醒、自动控制。

1.被动控制模式。设备只能被动地接收主控板发出的指令而工作,用户通过发出确切的控制指令来操作设备,即传统的直接控制模式。

2.自动提醒模式。在配置自动提醒的条件后,设备主动反馈信息到控制板提醒用户,主控板会以声音和图像形式提醒用户出现了异常情况。

3.自动控制模式。在配置了自动控制的条件后,设备将自行控制调节,不再需要用户的干预,实现真正的智能化。

系统利用ZigBee传感器接入网络通信,终端设备上电运行后,首先读取控制板设备的配置信息,如空调的工作模式,上下限温度阈值等等,随后开始各种传感器外设的初始化工作,在完成初始化后,进入无限循环。

检查ZigBee传感器连接的串口缓冲区是否收到有效的控制指令协议,若收到则开始解析控制指令,按照协议定义的操作开始控制各种外设电器工作[14],它们可能是调节色温灯,打开关闭空调,操作加湿器加湿,打开关闭窗帘等。

若读取的配置信息是提醒模式,则读取各种传感器的值,当传感器的值不在设定的范围内,则向控制板上报反馈信息,提醒用户。若读取的配置信息是自动控制模式,则根据传感器的值自动控制各类外设电器工作。整体软件工作流程如图11所示。

图11 不同控制模式处理流程Fig.11 Process flow under different control modes

3.4 语音识别距离扩展

现有传统控制系统的语音识别距离有限,大多在10 m范围内能有效识别用户语音,这种缺陷使得家居控制低效且产品体验较差[15]。为了改善传统产品的这种缺陷,本系统增设了一种语音远程扩展模块,通过WiFi网络连接到主控板,实现远距离语音控制与反馈,极大扩展控制系统语音识别范围。识别范围取决于远程扩展模块的安装数量,其可按需求扩展,满足整个家居系统。

语音远程扩展模块由STM32单片机、WM8960、WiFi模块和4 MB的Flash存储器组成,语音远程模块通过WM8960录音后,使用WiFi将语音信息发送到主控板上,主控板处理完毕后,通过WiFi发送控制指令的反馈信息到扩展模块,扩展模块播放反馈提示[16]。

具体的工作流程:系统上电后,代码首先初始化WM8960、WiFi、Flash等硬件外设,随后使用socket网络连接至主控板的WiFi服务端上,检测用户是否有语音控制请求(通过按键检测),若有则启动WM8960开始录音,当录音的文件大于STM32的随机存取存储器(random access memory, RAM)时,将多余的录音数据存入Flash中,调用socket发送完整的语音数据到控制板,接着检测socket是否接收到主控板发来的语音反馈信息,若收到则通过WM8960播放语音,并开始下一轮的检测,软件整体的实现过程如图12所示。

图12 语音远程扩展模块软件流程Fig.12 Software flow of the voice remote expansion module

4 系统测试

4.1 系统运行测试

所有控制指令基本采用同一的通讯协议,本小节以色温灯的控制为例,验证语音控制系统交互的正确性。

测试方式:WiFi管理界面连接网络,用户向控制板依次发出“开灯”“把灯调成暖色”“把灯亮度调高”语音,观察终端设备发光二极管(light emitting diode, LED)色温灯的变化和控制板显示的交互信息,随后取下WiFi网卡使网络断开,重复上述用例,测试两种识别引擎下系统运行是否正常。

开灯,把灯调成暖色命令运行演示如图13,14所示。

图13 “开灯”演示Fig.13 Demonstration of turning on the light

图14 “把灯调成暖色”演示Fig.14 Demonstration of adjusting the lamp to a warm color

4.2 语音识别率测试

系统采用被动控制模式来测试语音识别正确率,设置测试用词为:开灯、关灯、开空调、关空调四个语法短语。系统加载完毕,测试者对着板载麦克说出上述任意一个测试用词,可观察到正确识别后系统做出对应操作。

测试人员包括4男4女共8人。测试时每人每个短语说8遍,总共64句,统计系统识别率。

(1)

式中:G为命令识别率,E为测试识别命令总数,Er为识别错误命令数,Em为未识别命令数。

统计结果如表1所示,t为平均识别时间。

通过表1测试数据可知,系统在实时性方面表现优良,系统基本能在指令输出2 s内做出控制并反馈,同时系统识别率较高,正确率皆在95%以上,测试性能结果与市面上同类产品基本持平。

表1 语音识别率统计结果Tab.1 Statistical results of speech recognition rate

5 结论

本文采用基于ARM处理器+Linux+语音识别库+无线传感器网络的方案,经过全套完整的硬件电路设计,系统开发平台搭建,系统应用软件设计等步骤,研究实现了一款面向智能家居的无线语音控制系统。该系统运行稳定,识别率较高,可达95%以上,与市面上同类产品的识别率基本持平。该系统在识别模式上具有创新性,能够极大提升家居生活的便利性和舒适性,与目前市面上同类产品功能对比,其具有以下优点:

1.多样语音识别功能:提供命令词识别、语音唤醒、语音交互等多种功能,支持在线、离线识别模式共同作用。

2.多样控制模式:自动控制、自动提醒与被动控制相结合,控制模式自由切换。

3.增设语音远程扩展模块,大幅提升识别距离,语音识别范围扩展至整个居所。

4.触摸屏操作与语言控制联合进行设备交互,交互模式多样。

猜你喜欢

控制板终端设备引擎
基于MAC 认证的终端网络准入控制系统方案*
新海珠,新引擎,新活力!
视频监视系统新型终端设备接入方案
轨道交通AFC导向标识控制板设计
三生 三大引擎齐发力
蓝谷: “涉蓝”新引擎
一种集成脚本控制单元的设计与实现
行车记录仪通信连接方法、行车记录仪及终端设备
车站信号系统终端设备整合及解决方案
一种机载SAR中心控制板的设计