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