引 言
隨著科技的迅猛發(fā)展,人們的生活水平日益提高,眾多的科技產(chǎn)品使人們的生活更加便捷與高效。與此同時,人們的需求也越來越高,這就需要更多智能化的產(chǎn)品走進人們的日常生活中。近年來,隨著物聯(lián)網(wǎng)的普及,智能家居產(chǎn)品的使用越來越普遍 [1]。試想一下這樣一個場景,當你收拾東西慌忙出門時,來到門口,傳來一個聲音提醒你別忘了帶某份重要文件,你因此避免了一次工作上的重大失誤。這樣的智能生活體驗正是本文智能語音提醒系統(tǒng)可以帶給用戶的。
目前,該領域的產(chǎn)品較少,比較出名的是 Nut 防丟貼片, 但其不能解決出門忘帶東西的問題,且有其他不少缺陷。首先,用戶手機對該 Nut 的 APP 必須完全信賴,提供所有權限,且必須保持藍牙一直處于開啟狀態(tài),給用戶帶來極大不便 ;其次,Nut 防忘貼片根據(jù)貼片與手機之間藍牙信號的強弱判斷距離,對環(huán)境的適應性較差,在墻體較多的地方、較近的距離就會報警,而在空曠的地方、較遠的距離卻不會報警, 家庭的門是一個固定位置,Nut 防忘貼片無法做到出門時提醒。本文智能語音提醒系統(tǒng)可在用戶來到門口時,提醒用戶帶某物或做某事,彌補了目前產(chǎn)品在這一板塊功能的不足。
系統(tǒng)以樹莓派為核心進行控制,用戶在手機上安裝通過藍牙串口軟件改進后的“提醒小助手”APP,該軟件將用戶備忘的信息通過藍牙發(fā)送到樹莓派。當用戶出門時,樹莓派將攝像頭拍攝的用戶照片上傳至服務器進行人臉識別,通過返回的結果判斷是家中的哪一位用戶,并將其備忘的信息通過音響讀出,從而達到提醒用戶的目的。
1 系統(tǒng)硬件構成
1.1 系統(tǒng)總體結構
系統(tǒng)以樹莓派為控制核心,攝像頭、音響、屏幕等外設都與樹莓派相連,手機通過藍牙與樹莓派連接,樹莓派通過WiFi 連接到云端服務器,總體結構如圖 1 所示。
1.2 樹莓派 3 代 B+
樹莓派作為微型計算機,相比傳統(tǒng)計算機只是缺少了顯示屏幕和鍵盤,USB 端口可以方便地連接 Linux 免驅攝像頭, 具有獨立的 40 個 GPIO 引腳。樹莓派可以運行 Python 語言, 并進行編譯,運算速度快,價格低 [2]。
樹莓派 3 代 B+ 是樹莓派基金會于 2018 年 3 月 14 日發(fā)布的新版本,如圖 2 所示,主頻達到了 1.4 GHz,在無線網(wǎng)絡以及藍牙性能上相比上一款產(chǎn)品也有較大提升。樹莓派作為系統(tǒng)大腦,強大的性能是完成系統(tǒng)核心功能的基礎。
圖 2 樹莓派 3 代 B+
1.3 USB 高清攝像頭
由于要對照片進行人臉識別,因此需要照片足夠清晰。本文選用 1080P 高清 USB 攝像頭,如圖 3 所示,相比樹莓派原裝攝像頭 Pi Camera 的清晰度提高了許多。
圖 3 USB 高清攝像頭
1.4 便攜式音響
用戶備忘的信息需要通過語音的方式讀出,通過便攜式音響來完成,如圖 4 所示。在實際操作過程中發(fā)現(xiàn),樹莓派與音響通過藍牙配對與連接不穩(wěn)定,所以采用有線連接的方式,保證系統(tǒng)穩(wěn)定性。
圖 4 便攜式音響
1.5 20 寸屏幕
屏幕用于實現(xiàn)系統(tǒng)的附加功能,即“魔鏡”的功能。屏幕上顯示當前的精確時間、天氣、溫度、風力、日落時間,以及未來幾天的天氣與溫度。屏幕正中顯示問候語,系統(tǒng)會在上午、下午、晚上顯示不同類型的問候語。攝像頭固定在屏幕邊框上,用戶出門時只需下意識地看看時間、溫度、天氣等,就可被攝像頭拍照,然后上傳到服務器進行人臉識別。屏幕如圖 5 所示。

2 系統(tǒng)各部分功能的實現(xiàn)
2.1 整體的運作流程
用戶在手機上打開“提醒小助手”APP,打開藍牙并連接到樹莓派,此時用戶就可在 APP 的消息發(fā)送界面將備忘的信息發(fā)送至樹莓派,樹莓派根據(jù)連接手機的 Mac 地址識別是家庭中哪位成員備忘的消息,并將用戶發(fā)來的信息存到相應文本中。若用戶出門,用戶看“魔鏡”時會被攝像頭拍照,樹莓派則將照片上傳至 Face++ 平臺服務器中進行識別,平臺在事先已經(jīng)建立好的家庭人臉集合中識別出最相似的人臉,樹莓派通過平臺返回的數(shù)據(jù)即可判斷出是家庭中的哪位成員,隨后將相應的備忘內容讀出,提醒用戶。系統(tǒng)整體運作流程如圖 6 所示。
2.2 與樹莓派的藍牙連接以及數(shù)據(jù)傳送
樹莓派 3 代 B+ 自帶藍牙功能,無需另外加裝藍牙模塊,但在實際使用過程中發(fā)現(xiàn),樹莓派的原生藍牙在傳統(tǒng)連接方式下與手機只能實現(xiàn)配對,無法實現(xiàn)穩(wěn)定連接。因此,本文采用 RFCOMM 協(xié)議,在該協(xié)議的監(jiān)聽功能下實現(xiàn)手機與樹莓派藍牙的連接。RFCOMM 協(xié)議還提供查看連接設備信息的功能,可獲取手機的 Mac 地址,由此區(qū)分是哪位家庭成員的手機。在該協(xié)議下,樹莓派收到的信息會自動儲存到/dev/rfcomm0中,這是一個會隨著藍牙連接的斷開而刪除的文件,用程序可將其寫入到該家庭成員對應的文本文件中,用戶每次寫入的信息會覆蓋前一次的信息。出于對用戶誤觸發(fā)或沒聽清等情形的考慮,提醒完之后備忘信息不會被立即刪除,實現(xiàn)該部分功能的主要 Python 程序如圖 7 所示,其中 get_mac_addr 是將手機的 Mac 地址從設備信息表中提取出來的函數(shù)。
2.3 利用 Face++ 平臺實現(xiàn)人臉識別
人臉識別的程序一直循環(huán)運行,攝像頭也一直處于循環(huán)拍照狀態(tài)。若未識別到家庭成員的人臉則不執(zhí)行任何指令 ;若識別到某一家庭成員的人臉,則讀出相應的備忘信息。事先調用 API 在 Face++ 平臺上創(chuàng)建一個 Faceset,F(xiàn)aceset 是所有家庭成員人臉照片的集合,這些照片作為家庭成員的人臉標準照片。Face++ 平臺的人臉識別能力強大,提供每位家庭成員一張人臉照片即可。當攝像頭拍攝照片后,通過調用 API 的方式將該照片上傳至 Face++ 平臺服務器,并在Faceset 中尋找與其最相似的照片,最后返回置信度,找到標準照片的 Face_token(Face_token 即為與傳到 Face++ 平臺服務器的照片一一對應的編號)。若置信度小于設定閾值,則不執(zhí)行任何指令 ;若置信度大于設定閾值,則通過 Face_token識別出是哪位家庭成員,即可將備忘內容讀出進行提醒。
2.4 將用戶備忘的信息用語音讀出
用戶備忘的內容最終要通過語音的方式從便攜式音響中讀出,為此本文在樹莓派上安裝 eSpeak軟件作為一款開源軟件,便于將文字轉為語音讀出。在此基礎上,利用 eSpeak 讀取文本文件里的內容,從而將用戶備忘的內容讀出。調用API進行人臉識別及將備忘信息語音讀出的主要 Python程序如圖 8 所示,其中 get_conface是通過 API向 Face++平臺服務器請求 Search功能并將返回值中的 confidence與 face_ token提取出來的函數(shù),espeak_txt_chinese是將指定文本中的內容通過 eSpeak 軟件語音讀出的函數(shù)。
圖 8 調用 API 進行人臉識別及將備忘信息語音讀出的主要程序
3 系統(tǒng)實現(xiàn)
安裝好的系統(tǒng)外觀如圖 9 所示,用屏幕支架可將屏幕懸空固定,支架可調節(jié),便于將屏幕置于方便且舒適的位置與角度。攝像頭固定在屏幕上方,用戶觀看屏幕時會被攝像頭拍照,樹莓派與便攜式音響等放置在任意方便位置即可。系統(tǒng)運行之后,屏幕上出現(xiàn)了時間、天氣、問候語等信息。
系統(tǒng)測試時,模擬有兩名家庭成員的情景,APP 界面如圖 10 所示。兩名成員都先后發(fā)送了自己的備忘信息,模擬出門場景。兩名成員先后出門,出門時看“魔鏡”上的天氣、時間及問候語,其出門場景分別如圖 11、圖 12 所示,系統(tǒng)正確地讀出了相應的備忘信息。測試到有效的人臉識別范圍為距攝像頭兩米以內,符合實際要求。
圖 9 安裝好的系統(tǒng)外觀
圖 10 系統(tǒng) APP 界面
圖11 第一名用戶的出門場景圖12 第二名用戶的出門場景
4 結 語
智能家居以提高生活高效性、舒適性與便利性為主旨, 著眼于生活中的小細節(jié),以改善用戶生活體驗。本文智能語音提醒系統(tǒng)著眼于生活中普遍存在的出門忘物與出門忘事現(xiàn)象,在用戶出門時提醒相應的備忘信息,屏幕上的時間、天氣與問候語增添了科技感與親切感,給用戶的生活帶來了便利與更好的體驗。