基于离线语音识别的灯光控制智能家居系统

2021-07-22 07:46郑艳鹏
关键词:原理图识别率波形

郑艳鹏,苏 东

(中国科学院上海高等研究院,上海 201800)

在常用的家用电器中,照明灯是家家户户必不可少的。目前,采用按键、声控、热释电红外传感器和光照传感器组成的控制系统来实现灯具的控制较为常见。按键控制系统不具备感知功能,开关需要安装在人容易接触到的地方,这就导致晚上需要抹黑开关灯,非常不方便[1];声控系统,常应用在公共场合,由于声音控制需要外部声音来驱动开关,所以对于嘈杂的环境容易误动作,调节灵敏度虽然能减少误动作,但是驱动声音变大,有时会不容易驱动,因此也会带来很多不便[2-3];热释电红外传感器控制系统在一定程度上能够解决误动作问题,但是识别距离得反复调节,常常控制系统又不需要特定的识别距离,所以在某些场合还是不太适用[4];光敏传感器控制系统的光感应强度都是提前设定,有时也需要反复地设定光敏系数,也存在一定的缺陷[5-6]。

随着电子技术和现代控制理论等技术的不断发展,家用电器的智能化有了明显的提高,市场上出现了基于智能家居的无线语音识别技术。但是,基于无线语音识别的智能灯设备不但需要联网,而且还需要研发专用APP,这就会导致在网络不稳定的情况下控制设备会出现失控、用户使用操作步骤繁琐、成本较高等问题[7]。针对传统控制方式和无线控制方式的不足,本研究提出一种基于离线语音识别的智能灯光控制系统,这种系统成本低,使用方便,操作人性化,并且绿色、节能、环保,而且不需要联网就能实现人机交互,值得进一步地推入市场。

但是,由于工厂噪声、汽车噪声和机器噪声等影响人们在生活学习中进行语音交流,而且对于语音识别控制系统来说,影响也是不可忽略的,噪声大大降低语音识别的辨识度问题,针对这一问题带来的影响,语音增强得到了人们的重视。语音增强的目的是将被噪声干扰的带噪语音进行去噪处理来获得纯净的原始语音信号,消除其中的噪声成分,获取有用的语音分量,提高语音清晰度和整体性能,这会使语音识别率在嘈杂的环境中得到进一步的改善与提高。

1 控制系统的硬件设计

1.1 控制系统的总体设计

本控制系统主要实现的功能有:(1)对语音指令获取并解析,完成语音识别控制功能;(2)对语音指令获取解析,实现灯光的开关、变色和亮度的控制。本控制系统考虑到成本问题,选用52系列单片机作为系统的主控芯片,整个控制系统围绕着它展开设计,整个控制系统框图如图1所示。从图1可以看出,主控芯片构成的单片机最小系统的外围电路由语音识别模块、5V直流电源电路、LED灯光控制驱动电路和LED灯组电路组成。硬件系统的设计的最终目的是设计出PCB(印刷电路板)。然后,根据灯光控制系统原理图,进行元器件的选型,最后进行元器件的焊接、程序的编写、下载和调试等工作。为了缩小PCB的面积,采用双面板进行PCB图纸的设计,设计好的PCB 原理图和实物图如图2所示。

智能灯光控制系统工作原理(图1)中语音识别模块相当于一个主机,只要有语音信号的输入,它就会自动发送一串与语音对应的串口数据。而CPU相当于从机,一直处于接收数据的状态,它的USART 串行口接收语音模块发来的对应语音串口数据后会解析语音指令,解析后,通过编写串口通讯和数据判断程序下载到单片机进行处理与判断,来控制P1.0和P1.1的电平高低变化和输出占空比可变的脉冲宽度调制(Pulse Width Modulation)PWM信号,从而达到控制灯的开关、颜色切换和亮度调节的效果[8]。

1.2 控制系统的主控电路

STC89C52系列单片机是STC公司推出的新一代高速、低功耗、超强干扰和超低价的单片机。该单片机电压工作范围5.5~3.8 V,工作频率范围:0~35 MHz,相当于普通8051的0~70 MHz,实际工作频率可达42 MHz。其内部集成了4个8位可编程并行I/O口,1个通用异步串行口(UART),还可用定时器软件实现多个UART,3个16位定时器/计数器,其中定时器0还可以当成2个8位定时器使用。

本控制系统主控电路如图3所示,主要用到的硬件资源有P1.0、P1.1和UART(P3.0和P3.1),软件中用到定时器T0,完全满足系统的需求。图3的IN1和IN2连接到了灯光驱动电路中,通过定时器T0结合串行口功能解析语音指令来产生可变的PWM信号,从而达到控制灯光的开关、颜色和亮度的变化功能。

图1 智能灯光控制系统框图Figure 1 Diagram of intelligent light control system

图2 PCB原理图和实物图Figure 2 Schematic and physical diagram of PCB

图3 主控电路Figure 3 Main control circuit

1.3 语音识别模块及电路

1.3.1 语音识别模块特征

识别类型:高稳定度的非特定人语音识别模块,无需用户录音训练。

识别语种:可识别32种语种,支持世界上多种语种识别:普通话、英语、日语和拉丁语等,同时只识别一个语种;

识别效果:远达6~8 m识别距离(安静环境下)识别率高达90%以上。

抗噪声能力:极强的抗噪声干扰能力,在噪声干扰环境下识别率能高达60%以上。

语音播报:高品质/高分贝语音回复播报,直驱喇叭输出(5V/1.5W)。

数据存储:内置SPI FLASH存储大容量词条与语音播报内容。

通信协议:通过UART串口输出/查询/控制等轻松控制并获取模块当前状态。

识别词条:多条词条进行识别。

1.3.2 语音识别电路

语音识别电路如图4所示。语音识别电路的芯片是基于32位的高品质语音识别处理器,支持高压缩率的音频算法,在音质上也大幅超越传统的语音水平,特别设计用来发挥语音识别算法处理的能力[9-10]。语音芯片采用记忆体映射架构,可以定制到16 MB,包含记忆体(OTP/RAM)、周边以及SPI FLASH的存储空间,能够存放多组词条,支持多种语种辨识[11]。其内部还集成了OTP程序存储器96K×8,RAM 数据存储器10K×8,8个双向I/O口,3通道12-Bit A/D转换器,14位的数模转换器(DAC)和UART接口。A/D转换器支持差动式MIC输入来识别非特定人声,14位的数模转换器(DAC)将数字信号转换成语音信号,加1.5W的推挽式功放可直接驱动喇叭,把语音反馈指令播放出来[12]。考虑到电源的抗干扰问题,可以在电源处加滤波电路,引出另一个GND端命名为GNDD,使芯片的供电电源的输出波形会更平滑,系统会更具有稳定性和更强的抗干扰能力。

图4 语音识别电路Figure 4 Speech recognition circuit

当语音芯片接收到语音指令时会与存储在内部中的写入词条相对比,若识别指令波形与词条指令波形相一致,或高度近似于所设定阀值,则判定识别正确,此时串行口会输出相应串行口指令,格式为Byte1-4位固定位,Byte5-6位依次增加0x01和0x79代表第一条指令[13]。串口命令通讯格式如表1所示。

在表1中可以看出每条语音指令的第5、6位是不一样的,而单片机P口是8个字节数据,如果使用P口来判断接收到的串口数据,只需要判断每条指令的第六位数据即可[14-15]。

表1 串口通讯格式Table1 Serial communication format

1.4 电源电路设计

本控制系统的语音识别模块、单片机和光耦隔离芯片需要5 V直流电源才能正常工作,因此,本系统采用LM2576降压芯片来实现DC-DC电压的变换,把24 V直流电源变换成5 V给所需电路提供合适的工作电压[16-17]。5 V电源电路的原理图如图5所示。

图5 直流电源电路Figure 5 Direct current circuit

图5 中Power 为24V 直流电源的输入接口,电感引出的VDC24 网络标号连接到LED 灯光驱动电路给LED灯组提供合适的工作电压。电源芯片采用LM2576,该芯片与7805相比较有明显的优点,是开关电源常用芯片,效率高,输出电流大,可达3 A。而7805是串联稳压电源,效率差,输入输出压差和电流越大,损耗越大,而且输出电流较小,一般在500 mA左右,大的也只有1.5 A,但是纹波小,电路简单,而LM2576可以通过输出端并联大电容,以轻松地来弥补纹波较大的不足之处。

1.5 驱动电路的设计

本控制系统采用三色LED 灯作为负载,工作电压为24 V,单片机IO 口为5 V,输出电流为毫安级别,不足以驱动负载,所以需要设计灯光驱动电路,如图6所示。图中U1和U3为光耦隔离芯片,将24 V电源与单片机5 V进行隔离,这样确保两者之间的电源不相互干扰,提高了整个系统的安全性。Q1和Q2为大功率开关管,是调光的核心元件,它的CE间可承受24 V以上的电压,满足负载的需求。

图6 LED灯组驱动原理图Figure 6 Schematic diagram of LED light driver

图6 中功率驱动管采用TIP122,它是NPN 型达林顿开关管,它的集电极-发射极最大电压VCEO 可达100 V,最大直流电集电极电流可达5 A,最大工作温度可达150 ℃。而电源最大电压采用24 V,负载最大电流为1 A,无论是电压还是电流裕量足够大,负载接口三端引出,正好匹配三色LED灯的三个端子,正极、白光和橙色光,设计合理满足系统的控制需求。

1.6 LED灯灯组电路

LED灯灯组是整个控制系统的被控对象,只有了解其内部电路的连接情况才能对其进行控制,避免电压电流的过载导致LED灯烧毁,造成不必要的损失[18]。LED灯灯组内部连接电路如图7所示。图7的每个LED的额定电压是3.0~3.4 V,功率为0.2 W,图7中白、橙双色LED灯共阳极相连接,白橙两组LED由6组并联的5个LED相互串联后构成,当两组LED灯同时亮,会变成中性光,即有白光、橙光和中性光3种颜色可切换。

图7 LED灯组内部电路Figure 7 Internal circuit of LED light group

2 PWM调光原理与控制系统的软件设计

2.1 PWM调光原理

从理论上讲,采用PWM调光的LED会一直保持亮、暗交替的闪烁状态,但是人眼对对亮度闪烁不够敏感,当灯的闪烁超过100 Hz的频率时,人眼识别到的LED亮度是电压的平均值,所以LED的闪烁现象在人的视线中并不能呈现出来。另外,对于大于100 Hz的频率闪烁,人眼对亮度的感知是一个累积效应,即在一个PWM周期内,LED点亮时间所占的比例越大,人眼就感觉越亮。基于这种原理,只要调整PWM一个周期内输入电流的时间,即调节PWM 占空比,即可以实现LED 亮度的调节。PWM 调光原理是通过控制功率开关管子的接通与关断的时间,改变加载负载(台灯)之间电压的占空比,从而来改变负载上平均电压的大小,即PWM调压来控制台灯的开关和亮灭。本控制系统就是利用PWM(脉冲宽调制)技术来实现调光的,灯光控制PWM调光原理图如图8所示,开关管的脉冲输入波形Ui和电源电压Us与开通时间Ton、周期T之间关系波形如图9所示。

图8 调光原理图Figure 8 Speed regulation schematic diagram

图9 Ui和t与Us和t 之间的关系波形Figure 9 Waveforms of the relationship between Ui and t&Us and t

在图8中,我们可以看到晶体管连接在在负载LED的负极,LED正极由一个稳定电源来供电。在电路工作中,只需要在晶体管的基极提供较为微弱的PWM控制信号开闭晶体管的集电极与发射极来点亮或关闭LED。假设加在负载两端的脉冲电压的占空比为α,则负载LED两端的电压平均值Us为[19]:

由上面的式子可知改变负载脉冲电压占空比α,它两端的平均电压Uo就可以改变。又由于电源Us可以直接给LED供电,因此该电路可以实现中大功率LED驱动,有很强实用性。

2.2 控制系统的软件设计

1.3小节中介绍了语音识别的串口通讯命令格式并给出了表格,本节在此基础上进行系统的软件流程图的设计,其内容主要包括:主程序、定时器T0中断程序和while循环判断程序流程图的设计,如图10所示。

图10 系统的软件流程图Figure 10 Software flow chart of the system

主程序是一个无限循环程序,它在程序中的作用是一直等待串口中断的到来,中断到来后,程序才会往后面继续执行直到进入while 循环判断程序,当接收到语音命令时,单片机进行解析命令,并在此作逻辑判断,判断后,给PWM开通时间Ton变量赋于指定的变量值,单片机就会根据赋予的值输出可变的脉冲宽度波形,从而会改变负载两端的电压。输出可变的电压是由于定时器T0处于一直工作状态,周期变量peri与所赋值Ton会一直反复相互比较,当给定开通时间变量发生变化时,输出PWM信号的脉冲宽度就会跟着改变,从而实现控制灯光的开关、颜色与亮度的变化功能。

3 系统功能与波形测试

本控制系统的硬件实物图11所示,主要由自制灯光控制电路板、语音识别模块、24直流电源和三色LED灯组成。

图11 系统硬件实物图Figure 11 Physical picture of system hardware

3.1 系统功能与波形测试

3.1.1 安静环境下系统功能测试

为了充分的验证系统的完整性和可行性,实验测试次数高达200次,测试环境分为两种,下面进行第一种测试,环境为安静的办公室。灯光控制系统的功能测试表如表2所示。实验步骤:将LED灯组按原理图连接到控制板相应端子处,将220 V转24 V的电源适配器插入到控制板中,拔动滑动开关,系统通电,将调试好的程序下载到单片机当中,下载完成后,按照表2的语音控制命令分别进行测试,每种命令测试200次,并观察灯的控制效果和语音播报内容情况,并将数据统计在表格2中。

表2 安静环境下系统功能测试结果Table 2 System function test resutts in a quiet environment

从表2中可以看出,该基于语音识别的灯光控制系统功能正常,其识别率能达到90%以上,可以满足人们的日常生活需要。

3.1.2 嘈杂环境下系统功能测试

与3.1.1小节测试步骤和次数保持一致,只是环境在喧闹的小区,实验结果列入表3中。

表3 嘈杂环境下系统功能测试结果Table 3 System function test results in noisy environment

从表3中可以看出,在嘈杂的环境下,语音识别效果与在安静的办公室相比较大幅度降低,识别率从安静环境的95%以上下降到了60%以上。这是由于噪声的产生对于语音识别和语音去噪领域内都有影响,噪声对有用信号的影响越大,语音识别率越低,反之越高;同理,噪声对语音的影响越大,对于具有噪声影响的语音信号和没有经过噪声污染的语音信号,语音识别的性能是不同的。对于同一语音信号,由噪声污染的语音信号进行语音识别,识别率会比没有经过噪声处理的识别率要低,也就是说噪声能对语音识别产生影响。

3.1.3 系统波形测试

通过语音命令来测试白光、橙光和中性光调暗、调亮时输出的PWM 信号,验证系统的可行性。操作步骤:

(1)将三色LED灯按照原理图,接入到控制板的端子排上,给板子供电。

(2)打开Keill编程软件,编写程序,调试无误后,编译生成.hex文件,打开下载软件,选择生成的.hex文件下载到单片机中,通过语音命令测试效果,并观察不同语音命令下的PWM波形的变化。测试波形见图12。

图12 系统测试波形Figure 12 Wave form of system test

图12中第1、2排,从左往右分别为白光调亮、白光调暗、橙光调亮、橙光调暗、中性光调亮和中性光调暗的波形图,其中A通道为变白光测试波形,B通道为变橙光测试波形。从图12中可以看出白和橙两色灯调亮命令发出后,其PWM 信号A、B 通道中占空比都为35.9%,调暗命令发出后,占空比都为90.3%,当中性光调亮命令发出后,其PWM 波形A、B 通道中占空比都为36.8%,调暗命令发出后,A、B 通道中占空比都为90.7%。两色LED灯在不同颜色情况下控制其占空比保持一致,可以使两色LED灯在不同颜色时亮度保持在同一个级别,这能带来更好的用户体验。测试数据表明该系统功能正常,可以根据需求应用到不同的场合。

4 结论

本文以STC89系列CPU为主控单元设计了离线语音识别的灯光控制智能家居系统,该控制系统为用户提供了便利、有趣的操作体验,同时,用户还能用语音控制LED灯的亮度,这能从一定程度上提高电源利用率,达到节能的作用。本控制系统从功能角度来看还有待完善。首先本控制系统控制方法比较单一,可以考虑语音加光敏传感器,语音加红外传感器等进行组合控制,这样控制方法可以在语音、光敏和红外之间自由切换,控制更加的智能化。其次,该系统从某种程度上也存在一些缺点,这些缺点大部分是外部噪声带来的不利影响。因此,希望人们去更多地注重语音去噪方面的研究,并应用到语音识别领域。语音识别技术的诞生使得近些年出现了许多去噪方法,在语音去噪上获得了广泛的研究,推动了语音去噪算法的发展。针对噪声带来的干扰,后续可尝试增强算法如减谱法、自适应噪声抵消法、卡尔曼滤波法等,把它们分别应用到语音识别技术领域来进行对比,找出一种能最佳抑制噪声干扰的噪声滤波算法,并将其应用到实际中去,或许语音识别技术在噪声环境下的识别率会得到进一步的改善和提高。

猜你喜欢
原理图识别率波形
基于时域波形掩护的间歇采样干扰对抗研究
基于Halbach阵列磁钢的PMSM气隙磁密波形优化
浅谈STM32核心板原理图设计
电路原理图自动布图系统的设计与实现
基于Protel DXP 2004层次原理图的设计
基于真耳分析的助听器配戴者言语可懂度指数与言语识别率的关系
听力正常青年人的低通滤波言语测试研究*
用于SAR与通信一体化系统的滤波器组多载波波形
全新迈腾B7L车喷油器波形测试
档案数字化过程中OCR技术的应用分析