畢業設計|語音識別智能家居制作

智能家居類項目在畢業設計中最爲常見,雖然已經到了“爛大街”的程度,但擺正心態,可以加入很多創新點,依然能學到更多知識。

畢業設計|語音識別智能家居制作

本次分享的項目是Cheng小白畢設,代碼和論文都分享出來了,希望可以給正在做畢設的同學一些幫助。項目相關設計資料可以在“達爾聞說”回複:STM32語音識別智能家居,獲取。以下是硬件、軟件部分內容:

系統功能

本語音控制的智能家居系統可以實現本地在線語音識別,控制家電;通過手機語音遠程控制家電;手機可以遠程實時獲取家內傳感器的數據。

畢業設計|語音識別智能家居制作

1)單片機實現音頻信息的采集,播放內置音頻信息,獲取溫濕度傳感器數據和光照度傳感器數據,通過顯示屏顯示傳感器數據和語音轉文字後的信息。

2)網絡傳輸模塊實現網絡傳輸,與MQTT Server和語音識別API分別建立TCP連接,通過發布和訂閱MQTT的Topic主題進行數據的上傳與下行。

3)單片機將采集的音頻信息進行base64編碼,將編碼後的音頻數據和TOKEN以及一些必要參數整合成JSON格式整合到HTTP BODY中,單片機通過帶流控位的串口與網絡傳輸模塊進行數據傳輸。

4)網絡傳輸模塊將接收到串口數據通過TCP通信同步上傳到百度語音識別API,傳輸結束後,等待TCP Server返回HTTP 響應報文,將報文BODY字段數據進行裁剪,只要其中JSON格式的語音識別信息(UTF-8編碼),將語音識別信息發送到單片機,單片機通過UTF-8轉GBK算法進行最終的語義控制, 並進行對應語音播報。

5)手機APP端利用語音識別API接口進行語音識別,與MQTT Server端建立TCP連接,通過MQTT協議訂閱和發布,將轉換後語音信息發布到訂閱設備,單片機處理收到的訂閱信息。

6)單片機將采集到的傳感器數據發布到MQTT Server端,APP端可以通過訂閱來實時更新傳感器數據。

硬件組成

系統硬件主要由九部分組成,分別是單片機、網絡傳輸模塊、立體聲編解碼模塊、IO擴展模塊、溫濕度傳感器、光照度傳感器與液晶顯示屏、按鍵及LED燈組組成,系統的總體框圖如圖:

畢業設計|語音識別智能家居制作

單片機選用了ST公司的STM32F407VET6芯片,通過內部的USART接口與ESP8266 NodeMCU通信,通過豐富的外設功能獲取傳感器的各項數據;

畢業設計|語音識別智能家居制作

網絡傳輸模塊采用樂鑫科技的ESP8266單片機通過STA模式連路由器鏈入到Internet,連接百度語音識別API接口進行語音識別,通過MQTT協議連接百度天工物接入平台發送傳感器數據;手機端APP通過訪問MQTT Server實時更新內部顯示傳感器數據;

畢業設計|語音識別智能家居制作

立體聲編解碼模塊采用深圳普中科技有限公司的WM8978模塊自帶MIC頭可以直接采集音頻信息;

畢業設計|語音識別智能家居制作

IO擴展模塊采用PCF8574,可以通過I2C引腳最多控制8個PCF8574模塊也就是說可以控制64個IO口;

溫濕度傳感器采用DHT22進行溫濕度數據的采集,采集的溫度精度爲±0.5℃,濕度精度爲±2%RH;光照度傳感器采用BH1750FVI可以獲取0~65535單位爲lx光照值數據。

系統軟件

系統的軟件框圖:

畢業設計|語音識別智能家居制作

單片機將傳感器數據和語音識別包通過帶硬件流控的USART串口與網絡傳輸模塊進行數據的交互;網絡傳輸模塊通過Wi-Fi的STA模式連接到路由器,通過向語音識別API發送HTTP數據包獲取語音轉文字數據報,通過向MQTT Server發送訂閱與發布消息,進行傳感器數據的上傳與手機控制命令的下傳;手機APP通過與MQTT Server 訂閱和發布消息,獲取傳感器數據後實時顯示,通過手機APP語音識別,識別成功後將識別內容發布到MQTT Server,等待MQTT Server轉發消息給訂閱的設備。

單片機的程序設計、雲端設備參數設置、wifi傳輸模塊軟件設計、手機APP程序設計在分享的論文與代碼中,可以查看到更多詳細的介紹。

需要改進的地方

1)上面項目的控制語音識別開始和結束,都是通過按鍵進行控制的,缺少了喚醒詞的功能,希望之後可以通過采用DTW(Dynamic Time Warping,動態時間歸整)算法,進行喚醒詞識別。

2)目前只能對獲取的語音進行簡單的操控,無法進行語音的合成,只能依靠SD卡內存放的音頻文件,之後可以將百度語音合成技術也加入到系統中,並將內部命令改成數據庫命令,通過海量的知識豐富當前的語音操控。

3)系統只有一個終端設備,之後可以增加節點設備,從而實現一主機控制多從設備。

【學習交流群:197416462】