基于樹莓派的智能語音提醒系統(tǒng)
引 言
隨著科技的迅猛發(fā)展,人們的生活水平日益提高,眾多的科技產(chǎn)品使人們的生活更加便捷與高效。與此同時(shí),人們的需求也越來越高,這就需要更多智能化的產(chǎn)品走進(jìn)人們的日常生活中。近年來,隨著物聯(lián)網(wǎng)的普及,智能家居產(chǎn)品的使用越來越普遍 [1]。試想一下這樣一個(gè)場(chǎng)景,當(dāng)你收拾東西慌忙出門時(shí),來到門口,傳來一個(gè)聲音提醒你別忘了帶某份重要文件,你因此避免了一次工作上的重大失誤。這樣的智能生活體驗(yàn)正是本文智能語音提醒系統(tǒng)可以帶給用戶的。
目前,該領(lǐng)域的產(chǎn)品較少,比較出名的是 Nut 防丟貼片, 但其不能解決出門忘帶東西的問題,且有其他不少缺陷。首先,用戶手機(jī)對(duì)該 Nut 的 APP 必須完全信賴,提供所有權(quán)限,且必須保持藍(lán)牙一直處于開啟狀態(tài),給用戶帶來極大不便 ;其次,Nut 防忘貼片根據(jù)貼片與手機(jī)之間藍(lán)牙信號(hào)的強(qiáng)弱判斷距離,對(duì)環(huán)境的適應(yīng)性較差,在墻體較多的地方、較近的距離就會(huì)報(bào)警,而在空曠的地方、較遠(yuǎn)的距離卻不會(huì)報(bào)警, 家庭的門是一個(gè)固定位置,Nut 防忘貼片無法做到出門時(shí)提醒。本文智能語音提醒系統(tǒng)可在用戶來到門口時(shí),提醒用戶帶某物或做某事,彌補(bǔ)了目前產(chǎn)品在這一板塊功能的不足。
系統(tǒng)以樹莓派為核心進(jìn)行控制,用戶在手機(jī)上安裝通過藍(lán)牙串口軟件改進(jìn)后的“提醒小助手”APP,該軟件將用戶備忘的信息通過藍(lán)牙發(fā)送到樹莓派。當(dāng)用戶出門時(shí),樹莓派將攝像頭拍攝的用戶照片上傳至服務(wù)器進(jìn)行人臉識(shí)別,通過返回的結(jié)果判斷是家中的哪一位用戶,并將其備忘的信息通過音響讀出,從而達(dá)到提醒用戶的目的。
1 系統(tǒng)硬件構(gòu)成
1.1 系統(tǒng)總體結(jié)構(gòu)
系統(tǒng)以樹莓派為控制核心,攝像頭、音響、屏幕等外設(shè)都與樹莓派相連,手機(jī)通過藍(lán)牙與樹莓派連接,樹莓派通過WiFi 連接到云端服務(wù)器,總體結(jié)構(gòu)如圖 1 所示。
1.2 樹莓派 3 代 B+
樹莓派作為微型計(jì)算機(jī),相比傳統(tǒng)計(jì)算機(jī)只是缺少了顯示屏幕和鍵盤,USB 端口可以方便地連接 Linux 免驅(qū)攝像頭, 具有獨(dú)立的 40 個(gè) GPIO 引腳。樹莓派可以運(yùn)行 Python 語言, 并進(jìn)行編譯,運(yùn)算速度快,價(jià)格低 [2]。
樹莓派 3 代 B+ 是樹莓派基金會(huì)于 2018 年 3 月 14 日發(fā)布的新版本,如圖 2 所示,主頻達(dá)到了 1.4 GHz,在無線網(wǎng)絡(luò)以及藍(lán)牙性能上相比上一款產(chǎn)品也有較大提升。樹莓派作為系統(tǒng)大腦,強(qiáng)大的性能是完成系統(tǒng)核心功能的基礎(chǔ)。
圖 2 樹莓派 3 代 B+
1.3 USB 高清攝像頭
由于要對(duì)照片進(jìn)行人臉識(shí)別,因此需要照片足夠清晰。本文選用 1080P 高清 USB 攝像頭,如圖 3 所示,相比樹莓派原裝攝像頭 Pi Camera 的清晰度提高了許多。
圖 3 USB 高清攝像頭
1.4 便攜式音響
用戶備忘的信息需要通過語音的方式讀出,通過便攜式音響來完成,如圖 4 所示。在實(shí)際操作過程中發(fā)現(xiàn),樹莓派與音響通過藍(lán)牙配對(duì)與連接不穩(wěn)定,所以采用有線連接的方式,保證系統(tǒng)穩(wěn)定性。
圖 4 便攜式音響
1.5 20 寸屏幕
屏幕用于實(shí)現(xiàn)系統(tǒng)的附加功能,即“魔鏡”的功能。屏幕上顯示當(dāng)前的精確時(shí)間、天氣、溫度、風(fēng)力、日落時(shí)間,以及未來幾天的天氣與溫度。屏幕正中顯示問候語,系統(tǒng)會(huì)在上午、下午、晚上顯示不同類型的問候語。攝像頭固定在屏幕邊框上,用戶出門時(shí)只需下意識(shí)地看看時(shí)間、溫度、天氣等,就可被攝像頭拍照,然后上傳到服務(wù)器進(jìn)行人臉識(shí)別。屏幕如圖 5 所示。
2 系統(tǒng)各部分功能的實(shí)現(xiàn)
2.1 整體的運(yùn)作流程
用戶在手機(jī)上打開“提醒小助手”APP,打開藍(lán)牙并連接到樹莓派,此時(shí)用戶就可在 APP 的消息發(fā)送界面將備忘的信息發(fā)送至樹莓派,樹莓派根據(jù)連接手機(jī)的 Mac 地址識(shí)別是家庭中哪位成員備忘的消息,并將用戶發(fā)來的信息存到相應(yīng)文本中。若用戶出門,用戶看“魔鏡”時(shí)會(huì)被攝像頭拍照,樹莓派則將照片上傳至 Face++ 平臺(tái)服務(wù)器中進(jìn)行識(shí)別,平臺(tái)在事先已經(jīng)建立好的家庭人臉集合中識(shí)別出最相似的人臉,樹莓派通過平臺(tái)返回的數(shù)據(jù)即可判斷出是家庭中的哪位成員,隨后將相應(yīng)的備忘內(nèi)容讀出,提醒用戶。系統(tǒng)整體運(yùn)作流程如圖 6 所示。
2.2 與樹莓派的藍(lán)牙連接以及數(shù)據(jù)傳送
樹莓派 3 代 B+ 自帶藍(lán)牙功能,無需另外加裝藍(lán)牙模塊,但在實(shí)際使用過程中發(fā)現(xiàn),樹莓派的原生藍(lán)牙在傳統(tǒng)連接方式下與手機(jī)只能實(shí)現(xiàn)配對(duì),無法實(shí)現(xiàn)穩(wěn)定連接。因此,本文采用 RFCOMM 協(xié)議,在該協(xié)議的監(jiān)聽功能下實(shí)現(xiàn)手機(jī)與樹莓派藍(lán)牙的連接。RFCOMM 協(xié)議還提供查看連接設(shè)備信息的功能,可獲取手機(jī)的 Mac 地址,由此區(qū)分是哪位家庭成員的手機(jī)。在該協(xié)議下,樹莓派收到的信息會(huì)自動(dòng)儲(chǔ)存到/dev/rfcomm0中,這是一個(gè)會(huì)隨著藍(lán)牙連接的斷開而刪除的文件,用程序可將其寫入到該家庭成員對(duì)應(yīng)的文本文件中,用戶每次寫入的信息會(huì)覆蓋前一次的信息。出于對(duì)用戶誤觸發(fā)或沒聽清等情形的考慮,提醒完之后備忘信息不會(huì)被立即刪除,實(shí)現(xiàn)該部分功能的主要 Python 程序如圖 7 所示,其中 get_mac_addr 是將手機(jī)的 Mac 地址從設(shè)備信息表中提取出來的函數(shù)。
2.3 利用 Face++ 平臺(tái)實(shí)現(xiàn)人臉識(shí)別
人臉識(shí)別的程序一直循環(huán)運(yùn)行,攝像頭也一直處于循環(huán)拍照狀態(tài)。若未識(shí)別到家庭成員的人臉則不執(zhí)行任何指令 ;若識(shí)別到某一家庭成員的人臉,則讀出相應(yīng)的備忘信息。事先調(diào)用 API 在 Face++ 平臺(tái)上創(chuàng)建一個(gè) Faceset,F(xiàn)aceset 是所有家庭成員人臉照片的集合,這些照片作為家庭成員的人臉標(biāo)準(zhǔn)照片。Face++ 平臺(tái)的人臉識(shí)別能力強(qiáng)大,提供每位家庭成員一張人臉照片即可。當(dāng)攝像頭拍攝照片后,通過調(diào)用 API 的方式將該照片上傳至 Face++ 平臺(tái)服務(wù)器,并在Faceset 中尋找與其最相似的照片,最后返回置信度,找到標(biāo)準(zhǔn)照片的 Face_token(Face_token 即為與傳到 Face++ 平臺(tái)服務(wù)器的照片一一對(duì)應(yīng)的編號(hào))。若置信度小于設(shè)定閾值,則不執(zhí)行任何指令 ;若置信度大于設(shè)定閾值,則通過 Face_token識(shí)別出是哪位家庭成員,即可將備忘內(nèi)容讀出進(jìn)行提醒。
2.4 將用戶備忘的信息用語音讀出
用戶備忘的內(nèi)容最終要通過語音的方式從便攜式音響中讀出,為此本文在樹莓派上安裝 eSpeak軟件作為一款開源軟件,便于將文字轉(zhuǎn)為語音讀出。在此基礎(chǔ)上,利用 eSpeak 讀取文本文件里的內(nèi)容,從而將用戶備忘的內(nèi)容讀出。調(diào)用API進(jìn)行人臉識(shí)別及將備忘信息語音讀出的主要 Python程序如圖 8 所示,其中 get_conface是通過 API向 Face++平臺(tái)服務(wù)器請(qǐng)求 Search功能并將返回值中的 confidence與 face_ token提取出來的函數(shù),espeak_txt_chinese是將指定文本中的內(nèi)容通過 eSpeak 軟件語音讀出的函數(shù)。
圖 8 調(diào)用 API 進(jìn)行人臉識(shí)別及將備忘信息語音讀出的主要程序
3 系統(tǒng)實(shí)現(xiàn)
安裝好的系統(tǒng)外觀如圖 9 所示,用屏幕支架可將屏幕懸空固定,支架可調(diào)節(jié),便于將屏幕置于方便且舒適的位置與角度。攝像頭固定在屏幕上方,用戶觀看屏幕時(shí)會(huì)被攝像頭拍照,樹莓派與便攜式音響等放置在任意方便位置即可。系統(tǒng)運(yùn)行之后,屏幕上出現(xiàn)了時(shí)間、天氣、問候語等信息。
系統(tǒng)測(cè)試時(shí),模擬有兩名家庭成員的情景,APP 界面如圖 10 所示。兩名成員都先后發(fā)送了自己的備忘信息,模擬出門場(chǎng)景。兩名成員先后出門,出門時(shí)看“魔鏡”上的天氣、時(shí)間及問候語,其出門場(chǎng)景分別如圖 11、圖 12 所示,系統(tǒng)正確地讀出了相應(yīng)的備忘信息。測(cè)試到有效的人臉識(shí)別范圍為距攝像頭兩米以內(nèi),符合實(shí)際要求。
圖 9 安裝好的系統(tǒng)外觀
圖 10 系統(tǒng) APP 界面
圖11 第一名用戶的出門場(chǎng)景圖12 第二名用戶的出門場(chǎng)景
4 結(jié) 語
智能家居以提高生活高效性、舒適性與便利性為主旨, 著眼于生活中的小細(xì)節(jié),以改善用戶生活體驗(yàn)。本文智能語音提醒系統(tǒng)著眼于生活中普遍存在的出門忘物與出門忘事現(xiàn)象,在用戶出門時(shí)提醒相應(yīng)的備忘信息,屏幕上的時(shí)間、天氣與問候語增添了科技感與親切感,給用戶的生活帶來了便利與更好的體驗(yàn)。