黃輝健等
摘 要:本文研究了凌陽SPCE061A的特定人的語音識別與控制技術(shù),將語音識別技術(shù)應用到家居控制系統(tǒng)中。提出一種操作簡便、易擴展、適用于家庭應用的控制方案。分析了系統(tǒng)的硬件組成和軟件設(shè)計流程。同時在Google App Inventer平臺下,介紹了基于藍牙通信的Android智能手機控制軟件的搭建。經(jīng)實際測試表明,本系統(tǒng)成功地實現(xiàn)對家電的聲控技術(shù)和Android智能手機遠程控制。
關(guān)鍵詞:凌陽單片機;語音識別;家居控制;Android;藍牙通信
Abstract:This paper studied the technology of speaker-dependent recognition based on Sunplus SPCE061A, voice recognition technology will be applied to the home control system. Proposed a control scheme which is convenient operation,easy to expand, and applicable to home applications. The system will be analyzed from the perspective of hardware circuit and software design. Also in the Google App Inventer platform, built out a control software based on Android smartphones Bluetooth communication.The tested results showed that the system has successfully realized the voice technology appliances and Android smartphones remote control technology.
Key words:Sunplus;voice recognition;home control;Android;Bluetooth communication
隨著科技智能化的發(fā)展和社會生活水平的不斷提高,人們對家居環(huán)境方便快捷的要求也隨之提高,智能家居的概念成為了一個熱門話題。在智能家居系統(tǒng)中,語音識別和遠程控制的應用打破了常規(guī)的家用電器局域性控制局限,已經(jīng)成為了具有競爭性的新興高技術(shù)產(chǎn)業(yè),在智能家居控制系統(tǒng)上應用非常廣泛。本文研究了基于SPCE061A單片機的特定人語音識別技術(shù)以及智能手機藍牙通信技術(shù),并將其成功應用于家用電器的控制上,用戶可以利用語音命令和Android手機操作方便快捷地控制電器的開關(guān)動作。
1 系統(tǒng)總體設(shè)計
系統(tǒng)采用凌陽16位SPCE061A單片機為核心控制器,由藍牙串口透傳模塊ATK-HC05、MIC輸入模塊、揚聲器、液晶顯示器、按鍵組成,利用SPCE061A內(nèi)置的語音模塊,將麥克風采集到的語音信號與事先訓練好的語音庫的特征語音進行對比,根據(jù)語音辨識結(jié)果產(chǎn)生控制信號,進而控制家用電器[1]。系統(tǒng)還增加了無線藍牙通信功能,由Android智能手機發(fā)送事先規(guī)定的指令,藍牙模塊接收后將數(shù)據(jù)交給控制器處理,產(chǎn)生的控制信號將發(fā)送給執(zhí)行器對家電進行控制。系統(tǒng)還設(shè)置了人性化的液晶人機界面和指示燈方便用戶操作。用戶可以通過鍵盤對系統(tǒng)進行復位、重新學習語音命令的操作。系統(tǒng)總體結(jié)構(gòu)框圖如圖1所示。
2 系統(tǒng)硬件設(shè)計
凌陽16位單片機SPCE061A在硬件結(jié)構(gòu)和指令系統(tǒng)上都非常適用于語音信號處理,其主要的特點為:速度快,多中斷,多個A/D轉(zhuǎn)換器,特別是具有音頻輸出功能的雙通道10位D/A轉(zhuǎn)換器,具有自動增益控制功能與內(nèi)置傳聲放大器的A/D轉(zhuǎn)換器[2]。本設(shè)計采用具有DSP功能并內(nèi)置聲音A/D轉(zhuǎn)換器的凌陽單片機,可以使得系統(tǒng)大大簡化。
SPCE061A的A/D轉(zhuǎn)換器有8個通道,其中有一個是MIC_IN輸入,專門對語音信號進行采樣。MIC選用駐極體話筒,其偏壓由SPCE061A的VMIC腳提供。MIC輸入模塊電路結(jié)構(gòu)簡單,只需外接三個電阻和電容以對電流信號進行濾波。
SPCE061A提供雙通道10位的D/A輸出AUD1、AUD2,每個通道的輸出能力是30mA。為了能驅(qū)動揚聲器放音,將輸出電路設(shè)計為由負載電阻和三極管8050組成的功放電路[3]。
2.1 最小系統(tǒng)組成
最小系統(tǒng)接線如下圖2所示,在OSC0、OSC1端接上晶振及諧振電容,在鎖相環(huán)壓控振蕩器的阻容輸入VCP端接上相應的電容電阻后即可工作。其它閑置的電源端和地端接上0.1?F的去藕電容以提高抗干擾能力。
2.2 藍牙通信電路
ATK-HC05是一款高性能的主從一體藍牙串口模塊,該模塊支持非常寬的波特率范圍:4800~1382400,并且模塊兼容5V或3.3V單片機系統(tǒng)[4]。
模塊與單片機連接最少只需要4根線即可:VCC、GND、TXD、RXD。其中VCC和GND用于給模塊供電,RXD和TXD分別為串口接收腳和串口發(fā)送腳,分別連接單片機的TXD和RXD進行通信。
ATK-HC05模塊與單片機系統(tǒng)的典型連接方式如圖3所示:
3 系統(tǒng)軟件設(shè)計
本課題的軟件主要包括兩部分:語音控制和藍牙通信,采用C語言編程。該系統(tǒng)的智能手機控制軟件是在MIT/Google App Inventer平臺下搭建的,App Inventor是一個完全在線開發(fā)的Android編程環(huán)境,拋棄復雜的程式代碼而使用積木式的堆疊法來完成Android程式。Google App Inventor用戶能夠通過該工具軟件使用谷歌的Android系列軟件自行研發(fā)適合手機使用的應用程序[5]。
3.1 語音控制程序流程圖
語音控制程序流程如圖4所示。該控制程序主要包括兩個部分,即語音訓練和語音識別。語音識別部分則實現(xiàn)對特定人發(fā)出的語音命令與系統(tǒng)儲存的語音命令比較,并根據(jù)比較結(jié)果產(chǎn)生相應的控制信號。
程序執(zhí)行步驟如下:程序開始運行時,首先將RAM中的語音模式擦除,為下面的語音訓練的存儲做準備。然后按照訓練提示音依次訓練觸發(fā)名稱。每一條語音命令需要訓練兩次,這兩次訓練會自動作出比較判斷。當訓練人兩次發(fā)出的語音命令在誤差允許范圍內(nèi)則判斷為訓練成功,同時將訓練人的發(fā)音特征儲存到系統(tǒng)中,否則程序返回上一層對該命令再次進行訓練,直到語音命令完全訓練成功。
當系統(tǒng)提示語音訓練完畢后,程序隨即進入識別階段。系統(tǒng)首先對語音識別器進行初始化,同時麥克風會播放提示音,提示訓練人此時可以對控制系統(tǒng)發(fā)出語音命令。處理器將采集的語音信號進行處理,并與存儲器中訓練人的語音樣本進行比較,根據(jù)比較結(jié)果產(chǎn)生相應的控制信號從而驅(qū)動設(shè)備動作。語音識別過程循環(huán)進行,完成語音命令的控制任務(wù)后系統(tǒng)等待訓練人再次語音命令[6]。
3.2 藍牙通信
由Android移動設(shè)備發(fā)送事先規(guī)定好的數(shù)據(jù)指令,系統(tǒng)中的藍牙模塊接收到后將數(shù)據(jù)交給單片機處理,單片機將接收到的指令和預先規(guī)定好的指令進行比較,產(chǎn)生控制信號傳送給被控對象,從而實現(xiàn)Android智能手機對電器設(shè)備的控制。藍牙通信流程圖如圖5所示。
3.3 Android軟件設(shè)計
App Inventor for Android,它是一個基于網(wǎng)頁的開發(fā)環(huán)境,即使是沒有開發(fā)背景的人也能通過它輕松創(chuàng)建Android應用程序。App Inventor可以讓開發(fā)者拋開復雜的程序代碼,使用搭積木式的方法來完成Android應用程序。
搭建應用程序需要準備以下材料:
⑴Android系統(tǒng)智能型手機
⑵藍牙串口透傳模塊(本文使用ATK-HC05)
⑶單片機系統(tǒng)開發(fā)板(本文使用凌陽SPCE061A)
首先要有一個谷歌賬戶,并且申請了開發(fā)App inventor的權(quán)限。
登錄到App inventor開發(fā)界面可以看到一個空頁面,點擊“new”創(chuàng)建一個新項目,在出現(xiàn)的對話框中輸入創(chuàng)建的app的名字,便可以開始對應用程序的編輯。
App Inventor由兩個部分構(gòu)成:設(shè)計視圖和塊編輯視圖。開發(fā)者可以在設(shè)計視圖中完成添加按鈕、文本框等程序外觀的設(shè)計,設(shè)計視圖就是一個網(wǎng)頁;在塊編輯視圖進行真正的代碼編輯,塊編輯視圖就是一個Java應用。如果將Android設(shè)備連接到了電腦上,還可以隨時在手機上看到應用程序的修改。
Android軟件設(shè)計結(jié)構(gòu)圖如圖6所示,此程序表示當打開Android手機的藍牙功能后,獲取可連接設(shè)備的地址。當連接成功后按下發(fā)送按鈕,Android手機會經(jīng)由藍牙發(fā)送指令數(shù)據(jù)給當前地址的接收端,從而實現(xiàn)智能手機對電器設(shè)備的遠程控制。
4 結(jié)論
本設(shè)計采用凌陽單片機SPCE061A作語音識別處理器,硬件電路簡單,控制靈活;選用適合特定人孤立詞識別的語音特征和識別方法,處理速度快,識別率高,可滿足實時語音識別的需要。同時使用者可以根據(jù)自己的需要改變應答反應(包括語音輸出和控制輸出),就可以實現(xiàn)對多種電器設(shè)備的控制,如電視機開關(guān)及選臺、音量調(diào)節(jié)等操作。該系統(tǒng)可擴展性和靈活性強、成本低廉,在智能家居方面具有良好的應用前景。
[參考文獻]
[1]王中強,楊坤,俞一奇,張志美,程立英.基于SPCE061A單片機的智能小車的設(shè)計[J].科技資訊,2013,(18):88~89.
[2]陳海宴,呂江濤,李瑞.凌陽16位單片機經(jīng)典實戰(zhàn)[M].北京航空航天大學出版社,2011-7-4:12-13.
[3]李金波,田民.基于單片機的智能家居系統(tǒng)設(shè)計[J].自動化技術(shù)與應用,2010,29(6):125~128,131.
[4]廣州星翼電子.藍牙串口模塊[EB/OL].[2013-12-25].http://www.alientek.com/product/showproduct.php?lang=cn&id=31.
[5]App InventorTW中文學習網(wǎng).有關(guān)App Inventor[EB/OL].[2012-3-4]. http://www.appinventor.tw/whatis/.
[6]邢紹邦,韓曉新,趙宏為.語音識別無線風扇控制器[J].工業(yè)控制計算機,2011,24(8):86~87.