徐明輝 鄭澤宇 林劍雄
【摘要】? ? 針對(duì)傳統(tǒng)有線智能家居安裝困難、維護(hù)成本高,無線智能家居操作難度大、通訊距離短等問題,本文結(jié)合語音識(shí)別與智能控制技術(shù),設(shè)計(jì)了一款采用語音控制家居燈光亮暗的智能系統(tǒng),利用自然語言處理技術(shù)識(shí)別方言,簡(jiǎn)化操作,擴(kuò)大控制范圍。若結(jié)合AI算法,可使智能燈光系統(tǒng)根據(jù)環(huán)境變化自動(dòng)調(diào)節(jié)舒適度并令終端周期性休眠,用戶可通過智能手機(jī)實(shí)現(xiàn)無線遠(yuǎn)程喚醒或直接控制,在減少能耗的基礎(chǔ)上構(gòu)建一個(gè)智能家居的未來生態(tài)模型。
【關(guān)鍵詞】? ? 自然語言處理? ? 智能家居? ? 無線控制? ? 語音識(shí)別
引言:
智能家居是以家庭為平臺(tái),利用無線通信技術(shù)與遠(yuǎn)程控制技術(shù)把家居設(shè)備集成在一起,構(gòu)建高效的人工管理系統(tǒng),提升家居舒適性,并實(shí)現(xiàn)智能的居住環(huán)境。隨著科技的發(fā)展與智能手機(jī)的普及,家居設(shè)備的遠(yuǎn)程智能控制已成為現(xiàn)實(shí)[1]。
目前,智能家居內(nèi)部實(shí)時(shí)監(jiān)測(cè)網(wǎng)絡(luò)的組建分為有線與無線兩種方案。其中有線方案具有安裝困難、維護(hù)成本過高、布局效果單一等缺點(diǎn)[2],無法滿足人們對(duì)智能、舒適度的需求,因此無線智能家居應(yīng)運(yùn)而生,用戶可以本地控制(觸控屏),也可以通過智能手機(jī)、計(jì)算機(jī)實(shí)現(xiàn)多種方式的控制。
“自然語言”即人們?nèi)粘J褂玫恼Z言,包括口語及書面語,是人類發(fā)展過程中形成的一種信息交流的方式,反映了人類的思維?!白匀徽Z言處理”是計(jì)算機(jī)通過接受用戶自然語言形式的輸入,在內(nèi)部基于人類所定義的算法進(jìn)行分析,來模仿人類對(duì)自然語言的理解,返回匹配結(jié)果[3]。從系統(tǒng)處理的角度來看,自然語言的字符串與其含義之間是一種多對(duì)多的關(guān)系,因此字符串的最優(yōu)解析是十分必要的。
結(jié)合語音識(shí)別與智能控制技術(shù),本文設(shè)計(jì)了一款采用語音控制家居燈光亮暗的智能系統(tǒng)(以下簡(jiǎn)稱智能燈光系統(tǒng)),利用手機(jī)的語音采集功能和本文設(shè)計(jì)的語音識(shí)別算法,將輸入的語音處理成最優(yōu)解析的燈光亮度調(diào)節(jié)命令,通過智能手機(jī)經(jīng)由WIFI信道控制房間燈光,以實(shí)現(xiàn)適應(yīng)用戶需求的舒適程度。本系統(tǒng)稍加修改,就能控制各類家用電器以實(shí)現(xiàn)用戶的各種需求,特別是老年人。若以睡眠技術(shù)為基礎(chǔ),結(jié)合AI技術(shù),還能使系統(tǒng)周期性休眠并自動(dòng)做出調(diào)節(jié),大大節(jié)約能量,因此該系統(tǒng)具有廣闊的應(yīng)用前景。
一、系統(tǒng)組成
智能燈光系統(tǒng)由手機(jī)App、WIFI路由器、ZigBee網(wǎng)關(guān)以及終端四部分組成,如圖1所示。手機(jī)App是系統(tǒng)的主要控制核心,語音采集與處理、調(diào)節(jié)指令的形成與發(fā)送等均是在手機(jī)App中實(shí)現(xiàn)的;WIFI路由器實(shí)現(xiàn)無線路由選擇與通信;ZigBee網(wǎng)關(guān)由WIFI收發(fā)模塊、單片機(jī)模塊和ZigBee模塊(以下稱網(wǎng)關(guān)ZigBee模塊)組成,該網(wǎng)關(guān)將WIFI協(xié)議轉(zhuǎn)換成ZigBee協(xié)議,解析手機(jī)發(fā)送的操作指令。終端由帶有PWM調(diào)制功能的ZigBee模塊(以下稱終端ZigBee模塊)和LED燈組成,終端ZigBee模塊根據(jù)網(wǎng)關(guān)ZigBee模塊傳送的燈光調(diào)節(jié)指令調(diào)節(jié)PWM信號(hào)得到不同亮暗度燈光。
系統(tǒng)各個(gè)模塊供電后,手機(jī)App通過WIFI路由器自動(dòng)和單片機(jī)模塊連接,用戶在手機(jī)App按下“連接設(shè)備”按鈕,使手機(jī)App的狀態(tài)變量進(jìn)入連接狀態(tài),然后點(diǎn)擊“開始識(shí)別”按鈕,系統(tǒng)自動(dòng)將用戶說出的話翻譯成文本顯示在手機(jī)App上,同時(shí)向ZigBee網(wǎng)關(guān)發(fā)送對(duì)應(yīng)指令。若用戶對(duì)亮度不滿意,可拖動(dòng)LED燈的亮度“進(jìn)度條”,系統(tǒng)將根據(jù)用戶需求調(diào)節(jié)燈光亮暗。
1.1手機(jī)App
手機(jī)App具有兩個(gè)基本功能:第一、語音識(shí)別:實(shí)現(xiàn)語音信息的可視化從而能根據(jù)不同的語音做出不同反應(yīng)進(jìn)而向ZigBee網(wǎng)關(guān)發(fā)送對(duì)應(yīng)的指令。第二、局域網(wǎng)通信:通過TCP/IP協(xié)議使手機(jī)App能夠與ZigBee網(wǎng)關(guān)互相收發(fā)消息,實(shí)現(xiàn)半雙工通信。為實(shí)現(xiàn)上述基本功能,手機(jī)App需要完成:1.語音的采集與識(shí)別(包括對(duì)方言的識(shí)別);2.指令的解析;3.指令的發(fā)送。下面分3個(gè)部分分別敘述這幾個(gè)功能:
1.語音的采集與識(shí)別。語音識(shí)別是讓智能設(shè)備能聽懂人類的語音,其本質(zhì)是一種基于語音特征參數(shù)的模式識(shí)別,利用了一部分自然語言處理技術(shù),讓系統(tǒng)把輸入的語音按識(shí)別模式區(qū)分,進(jìn)而通過判定準(zhǔn)則獲得最佳匹配效果[4]。語音識(shí)別不僅能夠識(shí)別普通話,同時(shí)也能識(shí)別東北話、粵語、河南話等各地方言。方言識(shí)別:系統(tǒng)根據(jù)方言識(shí)別與普通話識(shí)別的差異,利用第三方云平臺(tái),構(gòu)建一個(gè)可以包括識(shí)別技術(shù)的云平臺(tái)應(yīng)用。首先進(jìn)行語音識(shí)別模塊的初始化,定義語音聽寫對(duì)象、結(jié)果存儲(chǔ)變量,設(shè)置語音聽寫UI、引擎類型。在語音識(shí)別前,系統(tǒng)會(huì)向第三方云平臺(tái)請(qǐng)求服務(wù),通過APPID確認(rèn),然后配置參數(shù),比如語言類型和返回結(jié)果格式等等。在用戶語音識(shí)別時(shí),通過錄音獲取語音數(shù)據(jù),以此判斷識(shí)別語言類型,隨后上傳至云平臺(tái),進(jìn)行數(shù)據(jù)處理,識(shí)別回調(diào)錯(cuò)誤,在返回值中做數(shù)據(jù)解析,手機(jī)APP會(huì)顯示識(shí)別結(jié)果,同時(shí)向單片機(jī)模塊發(fā)送指令,通過Client/Server通信傳輸實(shí)現(xiàn)遠(yuǎn)程控制終端,具體原理如圖2所示。
2.指令的解析。指令解析是將前面識(shí)別出來的文字封裝成適合WIFI信道傳送的信息幀,該信息幀再添加WIFI協(xié)議頭形成WIFI協(xié)議信息幀,手機(jī)APP通過WIFI信道發(fā)送給單片機(jī)模塊。在系統(tǒng)的整個(gè)控制過程中有三種指令,并對(duì)這三種指令分別定義了一種識(shí)別碼:1)連接指令:“TCPClient_Connect”。表示LED燈的狀態(tài),在發(fā)出進(jìn)一步指令前得到。在任何條件都能使用,它是自動(dòng)更新的指令,也是三個(gè)指令中優(yōu)先級(jí)最高的指令。2)燈操作代碼指令:“Open_led1” “Close_led2”等等。通過語音識(shí)別得到,是第二優(yōu)先級(jí)的指令。當(dāng)燈處于連接狀態(tài)時(shí)才能使用,每個(gè)序號(hào)的燈都設(shè)置了開燈、關(guān)燈功能。3)亮度指令:Setled。通過拖動(dòng)進(jìn)度條得到調(diào)節(jié)值“fansetval”,在發(fā)出指令前加上前綴“Setled”,并確認(rèn)此時(shí)LED燈的連接指令,然后再確認(rèn)燈操作代碼指令,最后才能使用亮度指令,是優(yōu)先級(jí)最低的指令。
用戶語音識(shí)別后,系統(tǒng)用一個(gè)空白文本顯示識(shí)別結(jié)果,將該文本和手機(jī)App中預(yù)先設(shè)定的文本進(jìn)行比較,以此判斷用戶此時(shí)的操作,并將其編輯成對(duì)應(yīng)指令碼,同時(shí)將LED燈的開關(guān)狀態(tài)“l(fā)ed_sta”置反,這個(gè)變量將會(huì)在調(diào)節(jié)亮度的功能得到使用,用于判斷LED燈實(shí)時(shí)狀態(tài)。如果識(shí)別不到文本,說明TcpSocket連接斷開,用戶重新連接設(shè)備即可。
在實(shí)現(xiàn)亮度調(diào)節(jié)的時(shí)候,若選用語音識(shí)別,“變暗”或“變亮”沒法準(zhǔn)確描述用戶想要的亮暗程度,因此選擇了進(jìn)度條控件來展示這一過程。用戶直接拖動(dòng)進(jìn)度條,并根據(jù)終端LED燈亮暗實(shí)時(shí)變化直接調(diào)節(jié)會(huì)更加方便。系統(tǒng)調(diào)用了事件監(jiān)聽接口中的onStopTrackingTouch方法,即用戶在停止拖動(dòng)進(jìn)度條的時(shí)候執(zhí)行。為用戶的操作限制一個(gè)最小范圍,防止LED燈的亮度變化不明顯,此時(shí)的進(jìn)度條的progress的值會(huì)賦給一個(gè)變量,通過該變量來設(shè)定LED燈的亮度。在進(jìn)行每一個(gè)需要發(fā)送指令的操作時(shí),為發(fā)送不同指令的多個(gè)線程都增加了判斷連接狀態(tài)以及返回連接狀態(tài)判斷及提示,如圖3所示。
3.指令的發(fā)送。通過TCP/IP協(xié)議實(shí)現(xiàn)Client/Server(客戶端/服務(wù)器)通信時(shí),必須調(diào)用Socket編程函數(shù),它起到了連接應(yīng)用層與傳輸層的作用[5]。系統(tǒng)基于Socket軟件抽象層實(shí)現(xiàn)手機(jī)App與ZigBee網(wǎng)關(guān)的無線連接,安全性高、穩(wěn)定性好。通過自定義IP地址與端口號(hào),實(shí)現(xiàn)Client/Server通信,根據(jù)不同連接狀態(tài)下的不同操作啟用對(duì)應(yīng)的線程。在完成指令的解析后,通過TCPClient.SendDat將指令碼以UART串口通信的方式發(fā)送給ZigBee網(wǎng)關(guān),為了防止多個(gè)線程同時(shí)連接導(dǎo)致TCP連接不穩(wěn)定以及傳輸數(shù)據(jù)混亂,系統(tǒng)額外增加了連接時(shí)的狀態(tài)穩(wěn)定,使其每一次只運(yùn)行一個(gè)線程。
1.2 ZigBee網(wǎng)關(guān)
ZigBee網(wǎng)關(guān)的硬件由WIFI收發(fā)模塊、單片機(jī)模塊和ZigBee模塊組成,該網(wǎng)關(guān)將WIFI協(xié)議轉(zhuǎn)換成ZigBee協(xié)議,解析手機(jī)發(fā)送的操作指令?!癢IFI收發(fā)模塊”接收無線路由器發(fā)送的WIFI協(xié)議信息幀,去掉WIFI 協(xié)議頭,得到信息幀送入單片機(jī)進(jìn)行操作碼的接收分析,然后送入網(wǎng)關(guān)ZigBee模塊進(jìn)行ZigBee協(xié)議的封裝。單片機(jī)模塊的作用是信息轉(zhuǎn)發(fā),將WIFI接收到的數(shù)據(jù)發(fā)給網(wǎng)關(guān)ZigBee模塊,搭載WIFI收發(fā)模塊后可以快速地構(gòu)建串口-WIFI數(shù)據(jù)傳輸網(wǎng)絡(luò),網(wǎng)關(guān)ZigBee模塊的作用是燈光調(diào)節(jié)指令解析,然后存儲(chǔ)到數(shù)據(jù)緩存中,向終端ZigBee模塊發(fā)送,并完成網(wǎng)絡(luò)狀態(tài)的更新。
1.信息轉(zhuǎn)發(fā)。每接收一個(gè)字節(jié),單片機(jī)模塊的串口就會(huì)產(chǎn)生一個(gè)數(shù)據(jù)中斷,當(dāng)一幀數(shù)據(jù)發(fā)送完成就產(chǎn)生一個(gè)空閑中斷,在空閑中斷里面處理數(shù)據(jù)。首先監(jiān)測(cè)串口接收到的是數(shù)據(jù)中斷還是空閑中斷。如果是數(shù)據(jù)中斷,就把數(shù)據(jù)給讀出來,先放進(jìn)臨時(shí)變量里面,然后進(jìn)行判斷,如果接收到的數(shù)據(jù)個(gè)數(shù)小于數(shù)組容量,就把數(shù)據(jù)存在數(shù)組里面,每存進(jìn)來一次,就把數(shù)據(jù)讀出來一次進(jìn)行賦值,然后累加數(shù)據(jù)。如果接收到的數(shù)據(jù)個(gè)數(shù)大于數(shù)組容量,就將數(shù)據(jù)個(gè)數(shù)清空,最后清空中斷標(biāo)志位。數(shù)據(jù)發(fā)完以后就會(huì)進(jìn)入空閑中斷,讀取寄存器的值來清除空閑中斷。如果接受到數(shù)據(jù)的長(zhǎng)度大于0,說明接收到了有效數(shù)據(jù),單片機(jī)模塊通過UART串口通信的方式將數(shù)據(jù)發(fā)送給網(wǎng)關(guān)ZigBee模塊,隨后把接受數(shù)據(jù)的個(gè)數(shù)以及數(shù)組里面的數(shù)據(jù)清零,如圖4所示。
2.燈光調(diào)節(jié)指令解析。為實(shí)現(xiàn)指令解析而定義一個(gè)反饋函數(shù),讓系統(tǒng)到函數(shù)內(nèi)取數(shù)據(jù)。首先接收字符串,并讀取字符串大小,然后進(jìn)行判斷。若是有效數(shù)據(jù),直接讀取串口指令數(shù)據(jù)。若指令為開燈或關(guān)燈,通過接收到的字符串中是否包含定義序號(hào)的字符串來判斷LED燈的序號(hào),然后將儲(chǔ)存數(shù)據(jù)的數(shù)組賦予相對(duì)應(yīng)的指令發(fā)送給終端。若指令為調(diào)節(jié)亮度,也要先判斷LED燈的序號(hào),然后系統(tǒng)提取單片機(jī)模塊發(fā)送指令中的亮度數(shù)值,把它轉(zhuǎn)化成實(shí)際數(shù)值。若數(shù)值在手機(jī)App設(shè)定的范圍內(nèi),就把數(shù)值存進(jìn)數(shù)組內(nèi),賦予指令發(fā)給終端。在完成發(fā)送后,將數(shù)組大小,數(shù)據(jù)長(zhǎng)度等信息發(fā)送回單片機(jī)模塊,如圖5所示。
1.3 終端
終端由帶有PWM功能的ZigBee模塊(以下稱終端ZigBee模塊)和LED燈組成,終端ZigBee模塊根據(jù)網(wǎng)關(guān)ZigBee模塊傳送的燈光調(diào)節(jié)指令調(diào)節(jié)PWM信號(hào)高低電平所占不同的比例(占空比)得到不同亮暗度的燈光,如圖6所示。
終端ZigBee模塊一旦匹配上識(shí)別碼表示選中本模塊,解出操作碼。
PWM模塊實(shí)現(xiàn)了根據(jù)接收到的指令改變電平輸出。PWM模塊輸出端口輸出的周期為,占空比為的周期脈沖信號(hào),由于PWM是低電平有效器件,所以當(dāng)較大時(shí),輸出信號(hào)高電平的時(shí)長(zhǎng)較長(zhǎng),燈的亮度較暗,當(dāng)較小時(shí),輸出信號(hào)低電平的時(shí)長(zhǎng)較長(zhǎng),燈的亮度較亮,如圖7所示。
二、結(jié)束語
本文以單片機(jī)作為中間橋梁,將WIFI和ZigBee兩種不同的無線協(xié)議連接起來,使用語音識(shí)別技術(shù)和智能控制技術(shù)搭建了一套智能燈光系統(tǒng)。以智能手機(jī)App的語音采集功能為媒介,通過部分自然語言處理技術(shù)實(shí)現(xiàn)方言識(shí)別,簡(jiǎn)化操作難度,將最優(yōu)解析的燈光亮度調(diào)節(jié)指令通過無線網(wǎng)絡(luò)向終端傳輸,實(shí)現(xiàn)遠(yuǎn)程控制燈光,適應(yīng)用戶需求的舒適程度。
若結(jié)合AI算法,將智能手機(jī)聲光傳感器采集的數(shù)據(jù)與單片機(jī)模塊發(fā)送的數(shù)據(jù)進(jìn)行比較,系統(tǒng)可自動(dòng)對(duì)家用電器狀態(tài)做出調(diào)節(jié)。若想進(jìn)一步減少待機(jī)能耗,可只讓系統(tǒng)終端處于周期性休眠狀態(tài),同時(shí)監(jiān)聽網(wǎng)絡(luò)有效數(shù)據(jù),若未接收到含有前導(dǎo)碼的數(shù)據(jù)則立即休眠,等待下一次喚醒。用戶也可以通過手機(jī)App直接喚醒,系統(tǒng)會(huì)自動(dòng)記錄每次用戶與終端的交互時(shí)間,然后預(yù)估下次喚醒時(shí)間點(diǎn),準(zhǔn)點(diǎn)去喚醒終端,構(gòu)建一個(gè)智能家居的未來生態(tài)模型。優(yōu)化后的智能燈光系統(tǒng)即可幫助用戶解決環(huán)境舒適度的煩惱,也可以科學(xué)分配能源,因此大有前景可言。
參? 考? 文? 獻(xiàn)
[1]趙艷. 基于CC3200的智能家居無線安防系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].上海師范大學(xué),2017.
[2]薛飛. 基于ZigBee技術(shù)智能家居控制系統(tǒng)的設(shè)計(jì)與研究[D].揚(yáng)州大學(xué),2019.
[3]寧志豪,周璐雨,陳豪文.淺談機(jī)器學(xué)習(xí)與深度學(xué)習(xí)的概要及應(yīng)用[J].科技風(fēng),2019(15):19.
[4]張春剛,甘龍.智能語音提示技術(shù)在數(shù)字萬用表的應(yīng)用研究[J].數(shù)字技術(shù)與應(yīng)用,2020,38(05):43-44.
[5]唐天波,賴小波.基于Linux的局域網(wǎng)聊天軟件設(shè)計(jì)與實(shí)現(xiàn)[J].福建電腦,2018,34(10):15-17.