潘志倩
(中國傳媒大學 互聯網信息研究院,北京100024)
基于物聯網的智能家居是以家庭為平臺,利用自動控制技術、網絡通信技術、智能感應技術、總線技術等,將家庭生活中的通信設備、電器、家具等設施集中規劃的智能化系統,能為住戶提供更便捷、更智能、更安全的居住環境[1]。 現以當下先進的微型計算機樹莓派為基礎展開課題研究,在傳統家居鏡子的功能之上加入了智能化技術,擺脫傳統被動模式,使之成為具有能動性、可交互的現代化智能工具,為智能家居研究領域乃至其他領域提出新的產品架構和技術方法,改善現代生活并創造高效、舒適的新家居情景和生活服務。
智能“魔鏡”系統主要由基于Linux 環境的樹莓派[2]、本地客戶端、因特網服務器端三部分構成。如圖1 所示,硬件設計部分由樹莓派主控板、攝像頭、液晶顯示器屏幕、單向透視玻璃、麥克風、音箱等設備改造和組裝而成。 樹莓派作為控制處理中心,向運行系統內置的信息流顯示客戶端、智能語音識別客戶端、智能語音交互客戶端和實時圖像調取客戶端等多個平臺和程序,向因特網各個服務平臺調用和獲取關鍵性中心數據,使該智能“魔鏡”系統具有選擇性豐富的生活信息服務功能,提供效率較高的安全保障。
智能“魔鏡”系統采用物聯網三層結構模型[3],主要包括感知層、網絡層和應用層,技術架構分別為全面感知、連接傳輸和智能計算。

圖1 智能“魔鏡”系統總框架設計圖

圖2 智能“魔鏡”系統功能架構
本文所設計的智能“魔鏡”系統如圖2 所示,包括鏡面信息服務流展示平臺、智能語音交互服務、實時監控安全防范3 個智能家居多功能模塊,旨在為使用者提供實際、便捷的智能信息服務和準確、實時安全的生活安全保障。
信息服務流展示模塊夠為用戶提供直觀及時的電子時鐘及日期、實時天氣信息及預報、客制化文本展示、實時新聞內容等服務,并定期進行更新。 智能語音交互平臺模塊完成娛樂服務、智能家居控制、生活資訊檢索等功能。 實時監控安全防范平臺模塊可定時獲取攝像頭拍攝的圖像,或在鏡面、電腦端、手機端等平臺看到實時監控畫面。
本文所設計的智能“魔鏡”系統使用的硬件包括核心處理器樹莓派、數據流展示界面顯示屏、感知層非結構化多媒體數據采集和錄入設備麥克風和攝像頭、音頻數據輸出設備音箱等,主要作用是為使用者與“魔鏡”系統之間進行數據交互式傳輸,提供輸入輸出服務。
為滿足智能“魔鏡”系統在家居應用場景中靈活、輕便的需求,本設計選擇使用樹莓派(Raspberry Pi)3 代B+型作為該系統核心處理器和關鍵硬件平臺,接收感應層采集到的數據并傳向應用層,同時接收應用層的反饋數據向使用者進行呈現。
智能“魔鏡”信息流顯像平臺是智能鏡顯示和人機交互的基礎模塊,依托顯示技術,選擇對可見光具有高反射、能實現單向透視原理的單向透視玻璃鏡與和液晶屏顯示器改造組裝而成。 既可維持傳統鏡子的成像特性,也可將鏡子后液晶顯示屏上的信息顯現而出。
影像捕捉硬件連接方式采用了CSI 接口連接方法,選取了攝像頭RPi Camera 作為元器件,該攝像頭具有500 萬像素,模組為OV5647,視場角約為60.6°。 使用15PIN FFC 即一條十五芯的排線與樹莓派的CSI 相機接口進行連接。
智能“魔鏡”系統軟件設計流程圖如圖3所示。
Diet-Pi 是一個專為樹莓派設計的纖薄版操作系統。 其總鏡像(image,Linux 系統內核映像文件)大小始于400 MB 左右,足足輕于樹莓派官方提供的Raspbian Lite 系統有三倍之多。經實驗可以得出, 即使在安裝桌面及基本軟件之后Diet-Pi 系統占用空間亦不到1.3 GB。

圖3 系統軟件設計流程圖
主界面信息流展示模塊采用瀏覽器/服務器模式(Browser/Server),由一個匯集了HTML(超文本語言)、CSS(層疊樣式表)、JavaScript 等靜態資源和提供數據接口API 的本地網頁構成,瀏覽器訪問該網頁后持續不斷地通過API 接口以TCP/IP 的傳輸協議向相對應的服務器端發出數據獲取的請求,而API 接口所對應的數據庫和應用程序即遠程服務器,在建立連接和接收到請求命令后將會返回響應結果。
語音喚醒模塊采用Snowboy 作為喚醒引擎。 Snowboy是一個嵌入式的實時語音監聽檢測引擎,能夠運行一個完整的自動語音識別過程(Automatic Speech Recognition,ASR[4])來進行觸發詞的監控檢測,語音喚醒流程如圖4所示。 樹莓派等設備獲取到語音后,會持續監視自動語音識別轉錄過程中特定觸發詞的出現,很好地解決了自動語音識別過程消耗大量設備和帶寬資源問題,同時為用戶使用基于云的解決方案時提供隱私安全保護的服務。

圖4 語音喚醒流程
語音交互模塊采用百度DuerOS 提供的Linux 版本DCS 協議的智能設備語音交互開發包完成開發。 該SDK提供了如有聲直播、新聞、生活信息等全方面云服務BOT 配置,可調用媒體播放器,獲取設備信息和對設備進行操控,配合小度之家SDK 能完成網絡配置配對等物聯網基礎功能。
語音識別流程如圖5 所示。 客戶端通過get 請求向服務平臺發送數據建立長鏈接,以HTTP post 方式上傳指令音頻。 服務器端通過語音活動檢測(Voice Activity Detection,VAD[5])檢測語音輸入完成后,發送反饋Directive 推送命令,隨即客戶端播放反饋音頻。

圖5 語音識別流程
該模塊運行圖片監控腳本程序代碼,定時通過攝像頭獲取實時圖像, 基于七牛云的Python SDK 建立本地客戶端并連接互聯網后,將本地獲取的圖片實時上傳至七牛云云端存儲器。七牛云存儲服務是以鍵值對的方式提供非結構化資源存儲服務。 圖像監控流程如圖6 所示。

圖6 圖像監控流程
該模塊主要采用Nodejs+WebSocket 和內網穿透的方式實現功能。 WebSocket[6]是HTML5 的一項持久化的協議,只需要一個HTTP 握手即可建立長事件的連接。NAT內網穿透技術[7]實現不同局域網內的主機進行通信。 啟動WebSocket 繼電器,在本地終端執行HTTP-Server 命令將攝像頭獲取的視頻流提供給瀏覽器,通過內網穿透客戶端生成Ngrok 服務器,啟動隧道,部署內網地址映射到域名上, 通過域名查看當前攝像頭所拍攝的畫面。實時視頻監控流程如圖7 所示。

圖7 實時視頻監控流程
最終鏡面效果如圖8 所示,整體內容輕重得當,UI簡潔清晰,合理美觀的布局確保了使用者能夠在短時間內看到關鍵信息和資訊內容。

圖8 鏡面效果圖
語音功能測試中,程序能夠主動識別語音中所包含的喚醒詞,并進入高頻率記錄語音信息狀態,所有語音數據信息都能被程序解析和記錄。 當使用者說出“播放一段新聞”的指令后,程序開始對該指令進行識別,并將字詞解析為文本,上傳云端調用相應的資訊信息并播放反饋,最終完成整個語音交互過程。 語音終端運行結果如圖9 所示。
監控功能測試中,系統自動定時開啟攝像頭進行拍攝, 使用者能夠通過PC 端或手機端對攝像頭實時拍攝的畫面進行監看,家居安全防范的基本需求得到滿足。
經大量實際測試,“魔鏡”系統工作穩定,語音交互成功率為95%, 實時監控部分存在圖像延遲0.5 s~1 s現象,但能平穩運行。
本文主要提出了一個匯集智能數據展示、語音交互生活服務、簡易安全防范生活保障等方面的智能家居中心平臺解決方案,同時結合了樹莓派、網頁前端設計、物聯網通信技術、云端服務平臺等多項技術與服務支持,基于多項硬件的部署和軟件的開發設計,基本實現了能夠提供多項技能和生活服務功能的智能家居“魔鏡”系統。

圖9 語音終端運行結果
從創新和實際使用角度分析,該系統以樹莓派為平臺,在系統運行、外設擴展和網絡性能等方面都要比基于51 單片的系統或以Arduino 為平臺的系統更具有優勢,同時在運行系統上采用小巧靈動的Diet-Pi 系統,不但具有豐富的軟件支持,而且在使用和操作上更加簡易和方便,是區別于更多人使用相對厚重的Raspbian 系統的一次成功的實驗和創新。