1 語音識別
具有語音識別技術(shù)的無線網(wǎng)絡化測控技術(shù)是目前研究的一個方向,將語音識別、無線網(wǎng)絡和測控技術(shù)融合,實現(xiàn)無線網(wǎng)絡化語音控制系統(tǒng),具有良好的實用價值和廣闊的應用前景。語音識別的過程可歸結(jié)為模式識別和匹配,通過對語音信號進行預處理和分析計算,抽取出所需的語音特征,并以此建立語音識別所需的模板。當對語音進行識別時,需要將系統(tǒng)中存放的語音模板與輸入的語音信號的特征進行比較,并根據(jù)一定的算法和策略找出一系列最優(yōu)的與輸入的語音匹配的模板,最后輸出識別結(jié)果。語音識別系統(tǒng)采用的是模式匹配的原理,系統(tǒng)的一般結(jié)構(gòu)如圖1 所示。

圖1 語音識別系統(tǒng)的一般結(jié)構(gòu)
2 系統(tǒng)硬件設計
系統(tǒng)硬件結(jié)構(gòu)可分為語音識別模塊、ZigBee模塊、繼電器控制模塊三部分。圖2 為總體硬件結(jié)構(gòu)圖。

圖2 系統(tǒng)總體硬件結(jié)構(gòu)
2.1 語音識別模塊
語音識別模塊由凌陽SPCE061A 語音處理芯片以及語音輸入電路、語音輸出電路、電源電路等模塊組成。語音識別模塊實現(xiàn)對語音命令的識別,并將識別結(jié)果發(fā)送至ZigBee數(shù)傳模塊。語音輸入與輸出電路如圖3、圖4 所示。

圖3 語音輸入模塊電路

圖4 語音輸出模塊電路
語音識別電路輸出的語音資源需要事先在PC 機上錄制成WAV 文件格式或者由TTS 軟件生成,該WAV格式的文件必須在單通道、8 KB/s、16 位的條件下錄制,然后把生成的WAV 文件經(jīng)過壓縮編碼后添加到程序中,并隨程序一起下載到SPCE061A 單片機內(nèi)存中。根據(jù)語音識別過程的需要,有選擇性地輸出不同的語音。需要輸出的語音資源經(jīng)D/A 轉(zhuǎn)換后,由SPY0030(語音集成放大器)放大信號,最后通過喇叭輸出(J3 處外接喇叭)。通過調(diào)節(jié)電位器R1 的大小可以控制輸出語音的音量。
2.2 ZigBee模塊
ZigBee無線模塊由CC2430 芯片、供電電路、天線、數(shù)據(jù)下載口組成,具體電路如圖5 所示。

圖5 ZigBee 通信模塊電路
CC2430 芯片具有完整的壓控振蕩器,并把許多電路功能都直接集中到了芯片中,所以整個ZigBee模塊電路非常簡單,只需晶振、天線及少量的外圍電路就可以使ZigBee無線模塊正常工作,減少外圍電路可以使無線系統(tǒng)工作的更加穩(wěn)定。
3 系統(tǒng)軟件
設計采用模塊化設計思想在μnSP IDE 和IAR 編譯器環(huán)境下,完成語音芯片SPCE061A 和射頻芯片CC2430 的軟件編譯和調(diào)試,進而實現(xiàn)語音識別功能以及無線通信功能,并使SPCE061A 和射頻芯片CC2430 可以協(xié)同工作。語音識別就是要對發(fā)音者發(fā)出的語音與語音模板中的模板進行匹配,確定發(fā)音者發(fā)出的語音指令,并根據(jù)所識別的命令作出相應的命令。對于本系統(tǒng)而言,需要識別的是特定人的語音識別,所以本系統(tǒng)沒有把語音模板寫入程序中,需要發(fā)音者自行對語音模塊進行語音訓練。語音識別的C 語言實現(xiàn)代碼部分如下:
Loop:
BSR_InitRecognizer(BSR_MIC); //初始化識別器
while(1){*
(unsigned int *)0x7012 = 1; //喂狗
uiRes = BSR_GetResult(); //取得識別結(jié)果
if(uiRes > 0){
if(uiActivated){
uiTimerCount = 0;
switch(uiRes){
case NAME_ID:
switch(uiBS_Team){
case 0: //第一組的第一個命令
PlaySnd(WELCOME);
//播放“歡迎進入系統(tǒng)"
break;
case 1:
//第二組的第一個命令
break;
case 2: //第三組的第一個命令
break;
}b
reak;
case Command_One_ID:
switch(uiBS_Team){
case 0: //第一組的第二個命令
*P_IOB_Data = *P_IOB_Data |
0x0002 ; //控制燈亮
PlaySnd(D25);
//播放語音燈已打開
*P_UART_Data ='1;
//通過串口將識別結(jié)果發(fā)送至FFD
break;
case 1: //第二組的第二個命令
break;
case 2: //第三組的第二個命令
break;
}
*(unsigned int *)0x7012 = 1;
uiActivated = 0; break;
case Command_Two_ID:
switch(uiBS_Team){
case 0://第一組的第三個命令(準備)
*P_IOB_Data = *P_IOB_Data &
0xfffd; //控制燈關(guān)閉
PlaySnd(D26);
//播放語音提示“燈已關(guān)閉”
*P_UART_Data =′2′;
//通過串口將識別結(jié)果發(fā)送至FFD
break;
case 1: //第二組的第三個命令
break;
case 2: //第三組的第三個命令
break;
}
*(unsigned int *)0x7012 = 1;
uiActivated = 0;
break;
}
4 結(jié) 語
本文提出基于ZigBee 數(shù)傳模塊和SPCE061A 單片機語音識別系統(tǒng)的設計方案,采用ZigBee數(shù)傳模塊作為通信處理器,并完成了兩大模塊的相關(guān)硬件和軟件的設計。經(jīng)測試,本系統(tǒng)語音識別率達到98%以上,具有較高的應用價值。