APP下载

基于讯飞语音控制的空调系统设计

2017-08-07薛辉刘爱军

商洛学院学报 2017年4期
关键词:命令正确率语法

薛辉,刘爱军

(商洛学院数学与计算机应用学院,陕西商洛726000)

基于讯飞语音控制的空调系统设计

薛辉,刘爱军

(商洛学院数学与计算机应用学院,陕西商洛726000)

为了通过语音控制空调工作,针对带WiFi功能的空调和传统的不带WiFi功能的空调分别设计了两种不同的控制方案,应用讯飞语音识别与合成技术实现对空调的控制。研究了语音控制的关键技术,包括语音技术的选取、语音识别的流程、BNF语法的编写、语音识别结果检测以及语音合成的流程等,设计了手机APP并对手机APP进行了测试,结果表明,在低噪音环境下语音识别准确率能够达到90%以上,在中等噪音环境下语音识别准确率能够达到80%以上,识别准确率较高。

讯飞;语音;识别;控制;空调

随着信息技术和物联网技术的发展,许多智能家电逐渐步入了人类生活。如今,市面上已经出现了多款带WiFi功能的空调,用户可以通过手机APP控制空调的运转,比传统的遥控器控制更加灵活方便。语音是人类最常用的交流方式之一,如果能给手机APP加上语音控制功能,就能增强空调的智能特性,更加方便用户使用,给用户带来更加奇妙和舒适的用户体验[1]。同时,大量已经存在的传统空调没有WiFi功能,能不能把传统空调升级成为智能空调并通过语音控制他们呢[2]?由于在人机交互上使用语音可以极大的方便人们操作[3],所以许多公司都在语音技术上投入了巨大的人力和财力进行研究与开发[4],比如谷歌、微软、IBM、百度、科大讯飞等。科大讯飞的语音技术达到了世界领先的高度,提供完善的语音识别、语音合成、声纹识别等技术[5-6],已经有很多应用采用讯飞语音技术[7],并取得了良好的效果[8]。本文针对带WiFi功能的空调和传统空调分别设计了两种不同的控制方案,并应用讯飞语音识别与合成技术实现对空调的语音控制。

1 语音控制方案

为了实现通过语音对空调进行控制,针对市面上带WiFi功能的空调和传统的不带WiFi功能的空调分别设计了两种不同的方案,可以在不改变原有空调硬件系统的情况下通过语音对空调进行控制。

1.1 带WiFi功能空调的语音控制方案

市面上带WiFi功能的空调的体系结构如图1所示,给空调增加WiFi模块,通过WiFi模块连接无线路由器,经无线路由器和手机进行通信,并在手机上定制APP客户端,这样,用户就可以使用手机上的APP软件对空调进行控制。

要在图1所示的体系结构上增加语音控制功能,无须修改该体系结构,也无须做硬件上的变动,只需给手机的APP软件增加语音识别和语音响应功能即可,利用手机上的语音输入和声音播放部件就能完成语音控制功能。

图1 带WiFi功能的空调的体系结构

1.2 不带WiFi功能的空调的升级方案

传统的不带WiFi功能的空调的升级方案如图2所示,无需对空调做任何改动,只需增加一个带WiFi功能的红外控制器(图2中虚框所示),通过WiFi网络与手机相连,然后给手机上定制带语音控制功能的APP,借助手机上的语音输入和声音播放部件实现对空调的语音控制[9]。

红外控制器由中央控制芯片、WiFi模块、红外模块、按键和LED灯组成,用来把无线网络信号转换成红外发射信号,控制空调的运转。

1)中央控制芯片采用CC2530,CC2530集成了8051微控制器,运算速度比8051快,还带有可编程闪存,使用方便。

2)WiFi模块采用HLK-RM04,通过串口与CC2530连接,可以通过AT指令配置它的工作方式、IP地址和端口号等,使之连接上WiFi网络[10]。

3)红外模块采用学习型红外发射模块IR-U64/448,它可以学习红外信号并按指令进行发射,分为学习模式和发射模式两种不同的工作模式,在学习模式可以学习空调遥控器各按键对应的红外码并存储起来,在发射模式可以按指令发射相应的红外码,从而控制空调工作。

4)按键可以指令红外模块发射红外信号,控制空调工作,相当于空调的遥控器,方便系统调试[11]。LED灯用来指示系统的工作状态。

图2 不带WiFi功能的空调的升级方案

1.3 手机与WiFi模块的通信

手机与WiFi模块通过无线路由器相连,处于同一个局域网内。为了便于定位WiFi模块,需给WiFi模块设置固定的IP地址并设定专用的端口号形成套接字,并在手机端进行匹配。在通信协议的选择上,选用UDP协议。因为TCP协议是基于连接、基于流传输的协议,UDP是无连接、基于消息传输的协议,传输速度快,而语音控制信息具有数据量小、信息较短的特点,所以选用UDP协议比较合适。

对于以上两种方案,可以采用类似的手机APP。本系统设计的手机APP基于Android平台进行开发,在Android平台,要实现socket数据通信,需使用DatagramPacket和DatagramSocket两个类,DatagramPacket用来存放通信数据,DatagramSocket用来在两个端点之间使用UDP协议发送数据报。

2 语音控制技术

2.1 语音技术的选取

通过语音控制空调工作时,用户通过语音把控制命令输入手机,手机APP进行语音识别后转换成控制信号,通过无线网络把控制信号传递给WiFi模块控制空调工作。同时手机通过语音合成生成反馈语音,提示用户空调工作方式已改变。所以,本系统需要语音识别与语音合成技术。

讯飞语音技术提供语音识别、语音合成、语音评测、声纹识别等功能,其中语音识别又分为语音听写、命令词识别和语义理解三种。语音听写是将用户说出的语音转换成文字,可以识别词语、句子、语气以及断句等;命令词识别是通过关键词判断用户下达的命令,从而完成相应的工作;语义理解是分析用户语音或文字包含的信息以及需要获得的信息,给出相应的反馈。对于通过语音控制空调来说,主要是告诉空调工作的模式以及工作的温度等,所以语音识别采用命令词识别技术比较合适。语音识别完成之后需要通过语音合成技术合成语音。讯飞语音技术的命令词识别与语音合成都包括云端合成和本地合成两种,为了提供快速的反馈,本系统均采用本地合成。

2.2 语音识别技术的应用

2.2.1 语音识别的流程

要使用讯飞语音技术开发手机语音识别系统,先要将SDK中libs目录下的Msc.jar文件和armeabi文件夹复制到Android工程的libs目录中,然后在AndroidManifest.xml文件中添加需要的权限[12]。命令词识别的具体流程如下:

1)创建语音配置对象:要使用命令词识别技术,需要创建SpeechRecognizer对象[13],并设置SpeechRecognizer对象的引擎类型为本地。

2)构建语法:构建以命令词为关键词的BNF语法,构建的语法要覆盖人们通常的说法种类,并要有合理的结构,以提高识别的准确率。

3)语音输入:用户通过手机把控制语音输入系统,可以只说关键词,比如“制冷”“制热”,也可以说部分的或者完整的句子。

4)语音识别:基于构建的语法对用户所说的信息进行匹配,从而识别出用户所说的句子,里面含有控制空调的关键词。

5)结果检测:检测识别的结果,分离出关键词,从而确定用户所发出的控制信息。

6)发送信息:把控制信息通过无线网络传递给WiFi模块,并通过CC2530控制红外模块发出红外信号,从而控制空调工作。

2.2.2 BNF语法编写

讯飞离线命令词识别技术使用巴科斯范式(BNF)描述语音识别的语法,语法编写的好坏直接关系到识别的准确率。对于控制命令,编写BNF语法时有两种方法。第一种是只编写关键的控制词语,用户说话时严格按照控制词语来说,比如控制空调开关,只编写“打开”和“关闭”,不编写前后无关的词语。这种方法的优点是语法编写简单、识别准确,缺点是用户使用时不方便,必须按照既定的命令去说,也不能带有无关的话语。第二种是模拟人通常的说法,既编写关键的控制词语,也编写前后无关的词语,并尽量覆盖各种说法。这种方法编写起来比较复杂,识别的准确率也不如第一种,但用户使用时比较方便,可以随心所欲的按各种说法说。为了方便用户使用,本系统采用第二种方法编写,力求覆盖尽可能多的说法。使用该种方法识别的准确率虽然稍低,但识别结果分离开后,无关的词语识别是否准确并不影响控制信息,只要关键词语识别准确即可,最终的准确率并不比第一种方法低多少,所以本系统采用第二种方法进行编写。本系统编写的BNF语法如下:

该语法文件覆盖了常用的各种说法,可以控制空调开关、转换模式、调整温度等,温度支持20℃~39℃,满足日常生活使用。用户使用时既可以说“空调开”“二十六度”等简短的命令,也可以说“把空调调到制冷模式”等比较完整的句子,使用非常方便。

2.2.3 语音识别结果检测

讯飞语音识别技术可以使用JSON格式或XML格式返回语音识别结果。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于机器解析和生成,也便于人阅读和编写。为了方便对语音识别的结果进行检测,本系统采用JSON格式。

检测识别结果时,先要检测用户是控制空调开关,还是转换空调工作模式,或者是设置空调温度。语音识别模块返回JSON格式文本后,通过循环检测ws里的每一个对象,如果有slot值为<switch>的对象,即说明用户在控制空调开关,此时,该对象的cw里第零个元素的id值如果为101,就是开空调,如果为102,就是关空调;如果有slot值为<state>的对象,即说明用户在转换空调工作模式,此时,该对象的cw里第零个元素的w值即用户指定的工作模式;如果有slot值为<ten>的对象,即说明用户在设置空调温度,此时,还需要检测slot值为<single>的对象,将两个对象的cw里第零个元素的id值组合起来即可得到用户所说的数值。

2.3 语音合成技术的应用

手机APP识别出用户的控制命令并发送信息后,需要合成语音给用户形成反馈[14],比如制冷后需要反馈“空调已调为制冷模式”,这就需要使用到语音合成技术。语音合成的流程如下:

1)创建语音合成引擎:要使用语音合成技术,先要创建SpeechSynthesizer对象,使用SpeechSynthesizer对象完成语音合成功能。

2)设置参数:使用本地引擎合成语音,需要将引擎类型设置为本地,并设置本地语音发言人,不同发言人的音色不同,还需要设置本地合成资源路径等,这需要通过SpeechSynthesizer对象的setParameter方法完成。

3)读取合成语音文本:对于每一个控制命令,预定一个对应的反馈文本,并存储在数据库里,在语音合成时读取对应的文本,准备合成。

4)开始合成:使用SpeechSynthesizer对象的startSpeaking方法开始合成语音。

5)监听命令:监听用户的命令,比如暂停播放、继续播放等,接收到用户命令时按要求执行。

3 语音识别正确率测试

对于本系统而言,语音识别的正确率高低是系统能否正常运行的关键,因此对语音识别的正确率进行了测试。考虑到不同类型的控制命令识别的正确率存在差异性,本研究对电源管理类命令、工作模式转换类命令和温度控制类命令分别进行了测试。同时,在不同的噪音环境下,识别的正确率也会有差异,因此本研究把系统的语音识别功能在安静的卧室(低噪音环境)和开着电视的客厅(中等噪音环境)也分别进行了测试,结果如表1所示。由表1可见,语音识别的正确率是比较高的,如果识别错误,用户重新说一下即可。因此,本系统可以达到实用的程度。

表1 语音识别结果正确率

4 结语

空调是人们生活中常用的家用电器之一,应用语音技术可以给用户带来更加优良的交互体验。本文设计了两种不同的空调语音控制方案,一种针对带WiFi功能的空调,另一种针对传统的不带WiFi功能的空调,均在不改变原有空调系统的前提下,通过手机对空调进行语音控制,并应用讯飞语音技术实现对语音的识别与合成,选取了适当的语音处理技术、设计了语音识别的流程、编写了合理的BNF语法,并对语音识别的正确率进行了测试。测试结果表明,语音识别正确率较高,能够达到实用的程度。语音交互比按键、触摸屏等交互方式要方便很多[15-16],在更多的地方应用语音交互技术,可以使人们的生活更加美好。

[1]韦银,王杰辉.基于语音识别模块的家庭交互系统设计[J].福建电脑,2016,32(12):22-23.

[2]曹璇,刘访.基于语音识别的家居空调控制系统设计[J].家电科技,2013(7):62-63.

[3]陈松.基于Android平台的家居远程语音控制系统研究[J].赤峰学院学报(自然科学版),2016,32(21):25-26.

[4]崔悦,宋齐军.智能语音技术发展趋势及电信运营商应用浅析[J].邮电设计技术,2016(12):2,6-11.

[5]黄贤立,罗冬梅.基于讯飞语音技术的智能家居控制APP设计[J].福建电脑,2016,32(8):112,145.

[6]李亚文.基于LPG的语音信号特征参数提取算法研究[J].商洛学院学报,2015,29(4):25-28.

[7]张庆芳.基于语音识别的灯光控制系统[J].轻工科技,2016(11):73-74.

[8]刘方洲,马腾.基于科大讯飞MSP的粤语自助学习系统的设计[J].计算机光盘软件与应用,2013(3):175-176.

[9]刘芳.基于DSP的家居空调语音识别控制系统的设计实现[J].电子世界,2014(14):159-160.

[10]张红英.Wi-Fi语音模块在智能家电领域中的应用[J].家电科技,2014(4):28.

[11]杨丽英.基于SPCE061A的灯光电器语音控制实现[J].山东工业技术,2016(21):156.

[12]李慧.基于讯飞语音的安卓手机应用开发步骤的研究[J].无线互联科技,2015(14):123-124.

[13]王海洋,郭星.基于语音识别的智慧旅游系统研究[J].计算机技术与发展,2015(5):143-147.

[14]王贵.基于Android的语音助理软件的分析与设计[J].电子世界,2016(20):37-38.

[15]曾祥义,张云伟,陈岭,等.基于Android和Arduino的语音控制小车设计[J].微处理机,2016,37(5):56-59.

[16]易圆皓.基于MatlabGUI语音识别推箱子的设计[J].电子设计工程,2016,24(15):60-63.

(责任编辑:李堆淑)

Design of Air Conditioning System Based on Iflytek Speech Control

XUE Hui,LIU Ai-jun
(School of Mathematics and Computer Application,Shangluo University,Shangluo 726000,Shaanxi)

Two different controlling projects of the air conditioner with WiFi function and the traditional air conditioner without WiFi function are designed to control air conditioner via speech.Key technologies of speech controlling are proposed based on the application of Iflytek's speech recognition and synthetic techniques.The key technologies include the selection of speech technologies,the speech recognition process,the preparation of BNF grammar,the detection of speech recognition results,and the speech synthesis process.One mobile phone APP is designed and tested.The results showed that the speech recognition accuracy rate can reach more than 90%in low noise environment,and more than 80%in medium noise environment.The recognition accuracy rate is relatively high.

Iflytek;speech;recognition;control;air conditioner

TN912.34

:A

:1674-0033(2017)04-0015-05

10.13440/j.slxy.1674-0033.2017.04.004

2017-05-20

薛辉,男,陕西商州人,硕士,工程师

猜你喜欢

命令正确率语法
只听主人的命令
门诊分诊服务态度与正确率对护患关系的影响
跟踪导练(二)4
移防命令下达后
Book 5 Unit 1~Unit 3语法巩固练习
生意
品管圈活动在提高介入手术安全核查正确率中的应用
生意
这是人民的命令
对卢沟桥事变期间一份“作战命令”的考析