徐明輝 鄭澤宇 林劍雄



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