|
摘 要:本文主要介紹利用SPCE061A單片機來開發(fā)的一款智能玩具——聰明寶寶的實現(xiàn)方案。 關(guān)鍵詞:語音識別 SPCE061A 智能玩具
1 引言 智能化已成為玩具行業(yè)的新趨勢,讓語音技術(shù)融入到玩具中,不僅可以賦予玩具“聽”“說”的交流能力,使其更加生動、智能,還有利于在兒童中普及現(xiàn)代科學(xué)技術(shù),推動語音技術(shù)產(chǎn)業(yè)化的發(fā)展。一些領(lǐng)先技術(shù)被應(yīng)用于今天的玩具領(lǐng)域如:無線電、紅外通訊、傳感器、語音識別等等。 本文介紹的是基于SPCE061A的一種具有語音識別功能的玩具產(chǎn)品,并著重介紹了軟硬件設(shè)計方法。
2 系統(tǒng)結(jié)構(gòu) 硬件結(jié)構(gòu)框圖如圖 2.1所示:主要由按鍵輸入電路、觸摸鍵輸入電路、直流電機驅(qū)動電路、光敏器件輸入電路、單片機最小系統(tǒng)等部分組成。
 圖 2.1 系統(tǒng)整體框圖
整個系統(tǒng)工作于4.5V電壓下,由3節(jié)5號電池提供4.5V電壓,經(jīng)過SPY0029穩(wěn)壓到3.3V為單片機系統(tǒng)供電。 整個系統(tǒng)在無操作時,處于睡眠狀態(tài),當(dāng)3個按鍵、2個觸摸鍵被觸發(fā)時,睡眠被喚醒,進入相應(yīng)的操作,執(zhí)行完操作后1分鐘內(nèi)無任何按鍵觸發(fā),則再次進入睡眠。光敏器件在睡眠前不斷采集光線強度,如果跟環(huán)境光線有較大變化,則會進入語音識別模式,MIC、直流電機、揚聲器則是各動作的相應(yīng)輔助器件。
3 硬件電路設(shè)計 3.1 微控制器電路 控制器采用凌陽科技公司的SPCE061A,其硬件資源分配見表 3.1。 表3.1 硬件資源分配表
| IO口使用情況 |
使用 |
IOA5:光敏器件輸入; IOA4 ~~~ IOA3:觸摸鍵輸入; IOA2 ~~~ IOA0:按鍵輸入; IOB9:BPWM輸出口; |
| 剩余IO及處理方式 |
剩余IO: IOA15~IOA6、IOB15~IOB10、IOB8 ~IOB0 處理方式: 軟件上設(shè)置為輸出,輸出低電平; |
| Timer使用情況 |
TimerA |
訓(xùn)練過程、放音時使用 |
| TimerB |
BPWM輸出頻率的控制以及占空比的設(shè)置 |
| ADC使用情況 |
使用6通道 |
用來做光敏信號采集 |
| 中斷使用情況 |
1) 訓(xùn)練、放音時使用FIQ_TMA; 2)使用IRQ3_KEY來完成睡眠喚醒操作; 3)使用IRQ5_2Hz做計時基準(zhǔn); |
3.2 鍵盤輸入電路 鍵盤輸入電路如圖 3.1所示,當(dāng)有鍵按下時,對應(yīng)的IO口被拉到高電平,CPU處理后做相應(yīng)處理。
 圖 3.1 鍵盤輸入電路
3.3 觸摸鍵輸入電路 觸摸鍵主要由555集成電路來實現(xiàn),其原理如圖 3.2所示,左邊的觸摸片為金屬銅片,正常情況下,人本身會產(chǎn)生幅度為80~100mv的正弦波電壓,當(dāng)人手觸摸到金屬片時,產(chǎn)生的感應(yīng)電壓疊加在偏置電壓上(偏置電壓設(shè)置在0.6V),使得三極管導(dǎo)通,觸發(fā)555集成電路使之3腳產(chǎn)生單穩(wěn)態(tài)輸出,從而系統(tǒng)從睡眠狀態(tài)被喚醒。
 圖3.2 觸摸鍵輸入原理
3.4 光感輸入電路 光照感應(yīng)電路由電阻與光敏電阻器組成。光敏電阻器是一種受光照射導(dǎo)電能力急劇增加的電子元件。常用的型號為MG45,適用于可見光譜范圍(0.4~0.76μm),亮電阻≤2~10kΩ,暗電阻≥1~10MΩ。使用時,耗散功率不要超過10mW,例如工作電壓在5V時,通過的電流不應(yīng)超過2mA。另外,應(yīng)避免強光長時間照射,防止光敏材料老化。 在環(huán)境光照強度下,采集一個標(biāo)準(zhǔn)值,然后在主循環(huán)中,不斷采集比較,當(dāng)變化比較大的時候,意味著有手擋著,則進入相應(yīng)的辨識子程序。 接口電路如圖 3.3所示。
 圖3.3 光感輸入電路
3.5 直流電機驅(qū)動電路 直流電機控制電路比較簡單。由I/O口輸出信號,通過NPN型三極管8050反相驅(qū)動電路去控制電機。其控制電路如圖 3.4所示。二極管起保護作用,防止電機的反向電流過大擊穿器件。
 圖3.4 直流電機控制電路
3.6 MIC輸入電路和揚聲器輸出電路 MIC采用駐極體電容話筒,這種話筒具有靈敏度高、無方向性、重量輕、體積小、頻率響應(yīng)寬、保真度好等特點。SPCE061A內(nèi)置專門用于語音信號采集的具有自動增益控制放大器(AGC)的麥克風(fēng)輸入通道(MIC_IN)。語音信號經(jīng)麥克風(fēng)轉(zhuǎn)換成電信號,由隔直電容隔掉直流成分,然后輸入至內(nèi)部前置放大器,最后通過ADC轉(zhuǎn)換成數(shù)字信號。 揚聲器采用一般的喇叭,電壓不超過5V。凌陽SPCE061A單片機自帶雙通道DAC音頻輸出,DAC1、DAC2轉(zhuǎn)換輸出的模擬量電流信號分別通過AUD1和AUD2管腳輸出,DAC輸出為電流型輸出,61板自帶音頻放大電路,所以外接一喇叭即可。
4 軟件設(shè)計 4.1 主程序流程及說明 整個系統(tǒng)的外部輸入包括:按鍵、觸摸鍵、感光控制及語音控制,其中語音控制需等到感光喚醒之后才能進行。當(dāng)各控制鍵觸發(fā)后,系統(tǒng)從睡眠狀態(tài)喚醒,通過判斷標(biāo)志位,進入相應(yīng)的處理子程序,之后在主程序中不斷檢測,1分鐘內(nèi)若無任何操作,則再次進入睡眠狀態(tài)。 具體程序中,通過判斷gKeyDoubleUseSign的值來確認執(zhí)行何種操作,當(dāng)為1時,進入鍵處理子程序;為2時,進入復(fù)用鍵處理程序;為0時,不執(zhí)行任何操作,認為是出錯或出現(xiàn)異常情況。在鍵處理子程序中,根據(jù)標(biāo)志位gKeyID來判斷進入哪一個處理程序,如表 4.1所示。 表4.1
| gKeyID的值 |
對應(yīng)處理 |
| 1 |
左手按鍵處理 |
| 2 |
背部按鍵處理 |
| 3 |
臉部觸摸鍵處理 |
| 4 |
肚部觸摸鍵處理 |
| 5 |
右手按鍵處理 |
| 0 |
異常情況 |
主程序包括端口的初始化,提示語音的播放,主循環(huán)以及進入睡眠狀態(tài)前中斷的初始化、端口的初始化。 主循環(huán)包括:鍵掃描,判斷標(biāo)志位及相應(yīng)子程序,AD轉(zhuǎn)換及比較。 端口的初始化包括A口和B口的初始化,A口的IOA0~IOA4設(shè)置為帶喚醒的下拉電阻輸入,IOA6設(shè)置為懸浮輸入的光敏器件輸入端;B口的IOB9設(shè)置為低電平輸出,作為TimerA脈寬調(diào)制輸出;其余未使用的端口設(shè)置為低電平輸出。 提示語音的播放即“您好”的播放,主要應(yīng)用于系統(tǒng)重新啟動以及復(fù)位鍵的觸發(fā),在這里,復(fù)位鍵既可當(dāng)一個功能按鍵來使用,也可以在系統(tǒng)無反應(yīng)時當(dāng)作重啟鍵來使用。 進入睡眠狀態(tài)前的系統(tǒng)初始化包括:端口A口的重新初始化,保證系統(tǒng)運行的可靠性;喚醒中斷的允許、開中斷;睡眠信號的寫入。 其主流程見圖 4.1:
 圖 4.1 主程序流程圖
4.2 S480語音播放子程序 SACM-S480自動方式程序流程如圖 4.2:
 圖 4.2 SACM-S480自動方式程序流程
4.3 語音的識別及訓(xùn)練程序流程圖 語音的識別取材于凌陽語音庫bsrv222SDL.lib及相關(guān)頭文件,如bsrSD.h。SPCE061只有特定發(fā)音人模式,即只能辨識特定的使用者,辨識前需由單個人訓(xùn)練,且最多識別6條命令,序號范圍從0x100到0x105,每條命令只有1.3秒,超出了1.3秒只有前1.3秒命令有效。在本系統(tǒng)中,利用通過光敏電阻的暗電阻較大,分壓值也較大的原理,產(chǎn)品觸發(fā)后通過AD采樣,與原環(huán)境光線采集值比較有較大變化時,置標(biāo)志位,從而在主循環(huán)中進入識別模式。而訓(xùn)練模式通過左手按鍵經(jīng)IOA0觸發(fā),訓(xùn)練模塊和語音識別框圖如下所示:
 圖 4.3 訓(xùn)練模塊
 圖 4.4 語音識別框圖
在辨識主循環(huán)中,辨識得到確認后就可以執(zhí)行相應(yīng)的處理子程序,整個流程如圖4.5所示。
 圖 4.5 語音辨識處理子程序
4.4 按鍵動作執(zhí)行子程序 當(dāng)外部輸入的按鍵、觸摸鍵觸發(fā)時,進入睡眠喚醒中斷。在中斷中獲取光敏器件采集到的AD值,主程序中掃描鍵盤,將取得的鍵值寫入gKeyID,再根據(jù)gKeyID寄存器來判斷到底進入哪個子程序。具體的執(zhí)行子程序如下各圖所示:
 圖 4.6 左手按鍵處理子程序
 圖 4.7 背部按鍵、肚子上觸摸鍵處理子程序
 圖 4.8 臉部觸摸鍵處理子程序
 圖 4.9 右手鍵處理子程序
4.5 中斷及鍵處理子程序 在本系統(tǒng)中利用了FIQ_TMA快速中斷、IRQ3_KEY、IRQ5_4HZ共4個中斷。各中斷的作用及返回值如表 4.2所示: 表 4. 2
| 中斷類型 |
返回值 |
作用 |
| FIQ_TMA |
無 |
用于語音播放及語音辨識服務(wù),gRecPlay=0進入語音識別;gRecPlay=1進入語音播放 |
| IRQ3_KEY |
返回環(huán)境光線強度值gADEnviroment |
外部鍵喚醒中斷后的取值以及主程序的進入 |
| IRQ5_2HZ |
定時到返回gTime1Minuteh=1 |
用于時間計時基準(zhǔn),各動作執(zhí)行時所需延時及定時 |
 圖 4.10 FIQ_TMA中斷服務(wù)子程序
 圖4.11 4HZ時基中斷服務(wù)子程序
在圖 4.12中,語音辨識子程序執(zhí)行的是BSR_FIQ_Routine(),而語音播放子程序執(zhí)行的是F_FIQ_Service_SACM_S480()。
 圖 4.12 IRQ3_KEY中斷
5 結(jié)語 系統(tǒng)用凌陽SPCE061A十六位單片機實現(xiàn)體現(xiàn)了它的極大優(yōu)越性,集中體現(xiàn)在實現(xiàn)功能齊全、內(nèi)部資源豐富、外圍電路簡單等方面。編程采用C和匯編混合編程來實現(xiàn),集兩種語言之優(yōu)點于一體,它們的完美結(jié)合極大限度地簡化了編程過程,豐富了編程思想,給開發(fā)者帶來了莫大的方便。而凌陽單片機提供了很好的語音播放和錄制機制以及簡單的API接口編程,使得用凌陽單片機開發(fā)產(chǎn)品簡單快捷。
6 參考文獻 [1] 凌陽大學(xué)計劃網(wǎng)站 [2] 雷思孝、李伯成、雷向莉,單片機原理及實用技術(shù)—凌陽16位單片機原理及應(yīng)用 陜西:西安電子科技大學(xué)出版社 |