???/p>
摘 要:為解決現有家居控制系統在語音識別云平臺選擇上相對被動及缺少對用戶行為分析的問題,文中結合云計算、大數據技術設計能夠橋接百度、訊飛等語音平臺的分布式云中間件,以及能夠對用戶行為進行分析的AI云平臺。該平臺不僅可以讓用戶自主選擇合適的語音處理平臺,還可存儲大量語音信息,運用數據挖掘算法對信息進行處理,分析出用戶的生活習慣,為用戶提供更加智能的服務。
關鍵詞:智能家居;語音識別;AI云平臺;分布式云中間件;數據挖掘;用戶行為分析
中圖分類號:TP271文獻標識碼:A文章編號:2095-1302(2019)02-00-03
0 引 言
隨著科學技術的快速發展,語音識別技術已經出現在家電、汽車電子、移動通信等領域。國外亞馬遜、Google、蘋果等大型公司的語音識別技術已經發展成熟且相應的產品也不斷涌現,如亞馬遜的Echo,Google的Google Xbox,蘋果的Siri。國內語音識別技術也取得了較大突破,如科大訊飛、百度、阿里等公司已搭建了自己的語音識別引擎,開發者可通過調用API獲取相應的服務。然而,各平臺彼此各有優缺點,沒有統一的接口標準,各自相對獨立,使得智能家居的語音接入在平臺選擇上相對被動。中國第三屆國際物聯網大會的召開[1],把“數據挖掘”引入了智能家居,利用挖掘算法對用戶行為進行分析,發現用戶的生活習慣,給用戶提供更加智能化的家居體驗。
本文結合云計算技術設計能夠連接百度、訊飛等各大語音識別引擎的云中間件系統,以及能夠讓用戶與家居設備更好地互動的AI云平臺,從而達到方便用戶進行家居控制,提升智能家居用戶體驗的目的。
1 需求分析
1.1 云平臺語音數據的獲取
本地可通過麥克風、手機、平板等設備獲取語音,通過智能網關將處理后的語音上傳到云平臺。
1.2 語音數據的轉發
語音數據的轉發通過中間件實現,中間件平臺將接收到的語音信息轉發至平臺外部語音識別引擎進行語音識別。
1.3 語音數據的存儲
中間件平臺接收經過語音引擎識別后的語音信息,并將信息存儲到AI云平臺。
1.4 用戶相關信息處理
用戶相關信息處理包括用戶注冊、登錄、注銷、訂閱設備、控制設備、家庭留言板等。注冊階段用戶需準確填寫信息,方便后期大數據的挖掘處理。
1.5 用戶行為分析
根據平臺存儲的大量語音控制信息進行數據挖掘工作,分析出用戶的生活習慣,得出用戶習慣表,依此結果制定智能家居控制策略,提升用戶的智能體驗。例如,用戶發出“打開電視”的語音消息時,電視能夠呈現給用戶比較感興趣的頻道或電視節目。
1.6 下達控制指令
云平臺將接收到的語音信息經過處理與分析后找出控制指令,并將指令傳至智能網關下達到設備,從而實現對設備的控制。
2 云平臺的設計
2.1 云平臺總體架構設計
智能家居語音識別通用語音AI云平臺的設計主要是對語音處理模塊進行設計,語音處理模塊包括語音錄入開發接口、語音識別快速開發接口及語音識別應用開發接口。
語音錄入開發接口:硬件設備(如麥克風)在本地獲取原始語音數據,經過去噪、A/D轉換后由網關上傳至云平臺,平臺通過語音錄入接口獲取語音數據。
語音識別快速開發接口:云平臺獲取到語音數據進行語音識別,即進行語音格式轉換。該部分功能通過調用本文設計的中間件平臺實現。
語音識別應用開發接口:云平臺接收識別后的語音指令,該接口實現大量指令數據的存儲與分析,通過分析從中發現用戶的生活習慣。該部分功能利用目前比較熱門的Hadoop技術,結合二分K-means聚類分析算法與Apriori關聯分析算法實現。
云平臺整體架構如圖1所示。
2.2 數據分析
為了使用戶有更智能的家居體驗,有必要對海量用戶行為信息進行數據挖掘,發現用戶的行為習慣,從而使家居控制系統根據用戶習慣制定家居控制策略。
2.2.1 云計算架構Hadoop
Hadoop是一個分布式計算框架,利用服務器集群,根據用戶自定義業務邏輯,對海量數據進行分布式處理。Hadoop框架透明地為應用提供可靠性和數據移動,具有效率高、可移植性高、擴容能力強等優點。Hadoop框架包含多個子項目,但主要由Hadoop分布式文件系統(Hadoop Distributed File System,HDFS)和映射/規約引擎(Map/Reduce Engine)兩個主要子項目構成。本文采用HDFS存儲大量用戶行為信息,在Map和Reduce函數中實現算法,輸出分析結果。
2.2.2 分析算法
(1)Apriori關聯分析算法
本文采用著名的Apriori關聯分析算法對智能家居中的用戶行為活動進行分析,挖掘出大量語音控制指令之間的相關性,并把這些相關性較高的指令整理成某種模式存入AI云平臺,當生活中出現相同情景時,系統自動做出相應反應配合用戶,從而達到減少用戶行為、節約環保等目的。
Apriori關聯規則是形如X->Y的蘊涵表達式,其中X和Y是不相交的項集,即X∩Y=。關聯規則強度可用支持度(s)和置信度(c)衡量,支持度確定規則可用于給定數據集的頻繁程度,置信度確定Y在包含X的交易中出現的頻繁程度,支持度和置信度的定義如下:
式中:N為數據集;σ(x)表示數據N中包含項x的事物數目。
算法過程如下[2]:
①根據實際需求確定最小支持度;
②從指令數據庫中整理出候選1-項集并記作C1,從候選1-項集中找出滿足最小支持度的項,組成頻繁1-項集,記作L1;
③同步驟①使用頻繁1-項集生成候選2-項集,在候選2-項集中找出滿足最小支持度的項,組成頻繁2-項集,依次計算;
④當從候選(n+1)-項集中找不到滿足條件的頻繁(n+1)-項集時,算法終止。
(2)聚類分析
將類別不確定的數據劃分到不同類的過程稱為聚類。在智能家居AI云平臺中可通過聚類分析,試圖找出用戶生活中某些特點鮮明的習慣,由此制定出更符合用戶需求的家居控制策略。本文為了發現用戶某些行為的類別,在原始的K-Means算法上進行優化,采用二分K-Means(bisecting K-means)算法對語音數據進行處理,實現對用戶行為的準確劃分。
二分K-Means算法是基于距離的非層次聚類算法,在最小誤差函數的基礎上,將數據劃分為預定的類數k,采用距離作為相似性評價標準,即認為兩個對象的距離越近,其相似度越大。樣本間的相似性采用歐幾里得距離衡量:
使用誤差平方和(Sum of the Squared Error,SSE)作為聚類的目標函數,兩次運行K均值產生兩個不同的簇集,使用時選擇SSE最小的一個。
二分K-Means算法的具體步驟如下:
①將所有數據看成一個簇,并將樣本數據劃分為K類;
②當簇數小于K時,對每個簇計算總誤差;
③在給定的簇上進行K-Means聚類,K值為2;
④計算將該簇劃分成兩個簇后的總誤差和未參與劃分的簇的總誤差,選擇總誤差最小的一個簇進行劃分;
⑤當質心數小于K時,轉到步驟②,否則,得到聚類結果。
3 AI云中間件的設計
為了實現用戶自主選擇語音識別引擎,提高語音識別準確率,本文設計基于SOA的AI云中間件[3],將百度、Google、訊飛等云平臺進行橋接,提供平臺自主選擇服務,具有較高的靈活性和實用性。該中間件可根據需求提供基于點對點以及基于發布-訂閱模式的消息訂閱,同時具備靈活的消息過濾功能與業務規則定制功能,并具有對業務子系統收發消息狀態的監控功能。該中間件還運用分布式緩存技術,當某個應用程序發生異常,如斷電、硬件故障停機時,中間件先把發送的消息緩存起來,當被調用的應用程序正常時,再交給應用程序處理。
綜合以上分析,本文設計的中間件具有以下功能:
(1)注冊服務
系統管理員把服務信息暴露給中間件,向中間件系統請求注冊服務。中間件獲取服務的相關信息后,向消費者提供服務代理。
(2)配置消息轉發
系統管理員給中間件系統配置消息轉發條件,當中間件系統的服務代理接收到請求消息后,能夠根據不同的請求選擇合適的語音處理平臺。
(3)分布式緩存
本文中間件運用分布式緩存技術進行設計,當分布式緩存中存儲語音數據的某個節點發生故障時,不會影響其他節點的數據存儲,從而實現中間件數據持久化功能。
(4)查看服務運行情況
本文設計的AI云中間件提供請求監控服務,管理員可查看不同語音識別引擎內語音識別的運行情況,如請求總數、錯誤請求總數、上一次發送請求的時間等信息。
中間件總體框架如圖2所示。
表現層:界面子程序負責展示中間件系統提供的服務,如注冊、登錄、刪除用戶等,實現用戶與平臺之間的交互。
業務層:服務管理引擎負責中間件系統啟動、初始化等與運行相關的功能;消息處理模塊負責接收語音、語音轉發、發送處理后的語音數據至AI云平臺;服務監控模塊負責對服務消息進行審查以及記錄與服務相關的性能數據;系統配置模塊負責與中間件系統配置相關的功能,確保平臺正常運行。
持久層:數據持久化負責語音指令的存儲,將處理后的語音信息儲存到數據庫,保證信息的完整性。
持久層采用分布式緩存技術,基于ActiveMQ和Redis的實現模型[4]如圖3所示。
Redis是一個高性能的key-value數據庫,Redis緩存具有以下特點:
(1)Redis是非關系型數據庫,無需建表即可直接存儲數據,可將數據定期保存到磁盤,實現數據的持久化;
(2)Redis不僅可以存儲key-value類型的數據,還支持字符串、數組、集合等數據結構的存儲,數據存儲結構靈活;
(3)Redis支持數據的備份是高可用的,可做到一主多從,主從之間進行數據同步。當Master宕機后,通過選舉算法(Paxos,Raft)從Slave中選舉出新Master繼續對外提供服務,主機恢復后以Slave的身份重新加入。
根據以上分析,本文設計的中間件系統采用Redis技術,不僅實現了數據緩存,還能定期將緩存中的數據保存到磁盤實現數據的持久化,從而簡化了中間件內部系統的邏輯結構設計。
4 結 語
本文結合云計算、大數據技術設計了一個智能家居語音識別通用語音AI云平臺和分布式云中間件,給出了云平臺和中間件的總體框架設計及業務功能分析,結合Hadoop技術和兩種數據挖掘算法,為云平臺的實現提供了可行性依據。
參 考 文 獻
[1]劉靖.基于物聯網技術的智能家居信息處理與控制系統研究[D].北京:華北電力大學, 2014.
[2] PANG N T, MICHEALE S,VIPIN K.數據挖掘導論[M].范明,譯. 北京:人民郵電出版社,2011.
[3]李彬玉.面向 SOA 的 Web 服務管理中間件的研究與實現[D]. 北京:北方工業大學,2007.
[4]李文逍,楊小虎.基于分布式緩存的消息中間件存儲模型[J].計算機工程,2010,36(13):93-95.
[5]朱廣萍,黃晞.面向智慧園區的物聯網中間件的整體架構[J].計算機技術與發展,2017(2):171-173.
[6]周智.Redis分布式緩存實現與解析[J].信息通信,2018(6):24-25.
[7]張為方,張倫寧,尹子悅.物聯網技術在智能家居控制系統中的應用[J].物聯網技術,2015,5(8):52-53,56.
[8]付蔚,楊鑫宇,李威.面向智能家居消息中間件的設計與實現[J].科技創新與應用,2018(17):39-40.