1. 程式人生 > >樹莓派魔鏡總結(包括語音和影象識別)

樹莓派魔鏡總結(包括語音和影象識別)

我實在是太懶了,現在才來寫這篇博文。
這裡我將總結做這個專案所用的思路,以及中間出現的各種問題還有問題的解決辦法。

1、最終實現方案(樹莓派、php+html、arecord、百度語音、face++影象識別)

1.1、硬體部分

    因為加了一個開關來控制語音的錄入,所以用到了樹莓派的中斷,因此硬體的話除了樹莓派還多了一個開關和幾條杜邦線跟幾個小電阻。最後開關與樹莓派的電路圖如下所示:
![這裡寫圖片描述](https://img-blog.csdn.net/20170410222711875?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY3Njc2hhaGE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
    當然還有一個顯示器和一個帶開關的4口usb拖線板。對了,還有一個帶麥的USB無驅動攝像頭,淘寶上能搜到只要幾十塊一個,一定要問好是不是無驅動的,麥克風也要是無驅的。第一次買的時候攝像頭是無驅了但是麥克風卻要音效卡。最後的部件和成果圖如下。
    其實顯示器是帶觸屏功能的,但是一直沒有搞定驅動,所以最後用了開關裡進行互動。

1.2、軟體部分

    軟體部分主要包括互動介面和後臺控制。
    其中互動介面主要是通過chromium瀏覽器的kiosk模式來實現全屏,然後搭建一個本地的web伺服器來顯示介面。主要用到的技術是apach+php+html+css+js。因為對前端技術還是比較生疏,所以只能用這用方式來實現,而且html+css+js這一部分也寫得很糟糕。
    後臺控制的話主要是通過C程式來進行全程的排程,然後用php來處理網路介面和業務邏輯。其中用到了opencv的庫來進行實時攝像和wiringPi庫來進行中斷。對了,還用了arecord來進行錄音。然後影象識別的話是用了face++的網路介面,語音識別與合成則是用了百度的介面。其實一開始是想用訊飛的介面,但是他們給的介面示例大部分是通過js實現的,不像百度的介面都是RESTful API 的風格,由於本人的前端技術尚淺所以最後選擇了百度的介面。