jlinkcn

          具有語音識別功能的ZigBee傳感器網(wǎng)絡(luò)設(shè)計(jì)

          1 語音識別

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

          clip_image002

          1 語音識別系統(tǒng)的一般結(jié)構(gòu)

          2 系統(tǒng)硬件設(shè)計(jì)

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

          clip_image004

          2 系統(tǒng)總體硬件結(jié)構(gòu)

          2.1 語音識別模塊

          語音識別模塊由凌陽SPCE061A 語音處理芯片以及語音輸入電路語音輸出電路、電源電路等模塊組成。語音識別模塊實(shí)現(xiàn)對語音命令的識別,并將識別結(jié)果發(fā)送至ZigBee數(shù)傳模塊。語音輸入與輸出電路如圖3、4 所示。

          clip_image006

          3 語音輸入模塊電路

          clip_image008

          4 語音輸出模塊電路

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

          2.2 ZigBee模塊

          ZigBee無線模塊由CC2430 芯片、供電電路、天線數(shù)據(jù)下載口組成,具體電路如圖5 所示。

          clip_image010

          5 ZigBee 通信模塊電路

          CC2430 芯片具有完整的壓控振蕩器,并把許多電路功能都直接集中到了芯片中,所以整個(gè)ZigBee模塊電路非常簡單,只需晶振、天線及少量的外圍電路就可以使ZigBee無線模塊正常工作,減少外圍電路可以使無線系統(tǒng)工作的更加穩(wěn)定

          3 系統(tǒng)軟件

          設(shè)計(jì)采用模塊化設(shè)計(jì)思想在μnSP IDE IAR 編譯器環(huán)境下,完成語音芯片SPCE061A 和射頻芯片CC2430 的軟件編譯和調(diào)試,進(jìn)而實(shí)現(xiàn)語音識別功能以及無線通信功能,并使SPCE061A 和射頻芯片CC2430 可以協(xié)同工作。語音識別就是要對發(fā)音者發(fā)出的語音與語音模板中的模板進(jìn)行匹配,確定發(fā)音者發(fā)出的語音指令,并根據(jù)所識別的命令作出相應(yīng)的命令對于本系統(tǒng)而言,需要識別的是特定人的語音識別,所以本系統(tǒng)沒有把語音模板寫入程序中,需要發(fā)音者自行對語音模塊進(jìn)行語音訓(xùn)練。語音識別的C 語言實(shí)現(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: //第一組的第一個(gè)命令

          PlaySnd(WELCOME);

          //播放“歡迎進(jìn)入系統(tǒng)"

          break;

          case 1:

          //第二組的第一個(gè)命令

          break;

          case 2: //第三組的第一個(gè)命令

          break;

          }b

          reak;

          case Command_One_ID:

          switch(uiBS_Team){

          case 0: //第一組的第二個(gè)命令

          *P_IOB_Data = *P_IOB_Data |

          0x0002 ; //控制燈亮

          PlaySnd(D25);

          //播放語音燈已打開

          *P_UART_Data ='1;

          //通過串口將識別結(jié)果發(fā)送至FFD

          break;

          case 1: //第二組的第二個(gè)命令

          break;

          case 2: //第三組的第二個(gè)命令

          break;

          }

          *(unsigned int *)0x7012 = 1;

          uiActivated = 0; break;

          case Command_Two_ID:

          switch(uiBS_Team){

          case 0://第一組的第三個(gè)命令(準(zhǔn)備)

          *P_IOB_Data = *P_IOB_Data &

          0xfffd; //控制燈關(guān)閉

          PlaySnd(D26);

          //播放語音提示“燈已關(guān)閉”

          *P_UART_Data =2;

          //通過串口將識別結(jié)果發(fā)送至FFD

          break;

          case 1: //第二組的第三個(gè)命令

          break;

          case 2: //第三組的第三個(gè)命令

          break;

          }

          *(unsigned int *)0x7012 = 1;

          uiActivated = 0;

          break;

          }

          4 結(jié) 語

          本文提出基于ZigBee 數(shù)傳模塊和SPCE061A 單片機(jī)語音識別系統(tǒng)的設(shè)計(jì)方案,采用ZigBee數(shù)傳模塊作為通信處理器,并完成了兩大模塊的相關(guān)硬件和軟件的設(shè)計(jì)。經(jīng)測試,本系統(tǒng)語音識別率達(dá)到98%以上,具有較高的應(yīng)用價(jià)值。

             

          posted on 2015-05-18 22:23 小王王 閱讀(109) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 乌鲁木齐市| 丰县| 龙川县| 肇东市| 丹阳市| 茂名市| 丰县| 迭部县| 孟津县| 镇巴县| 盐山县| 屯昌县| 雷山县| 伊宁县| 铁岭市| 太仓市| 永年县| 沭阳县| 江都市| 新昌县| 长丰县| 容城县| 曲水县| 修武县| 克东县| 昌图县| 大竹县| 淮阳县| 建湖县| 民乐县| 永仁县| 庐江县| 秦安县| 交城县| 双桥区| 沙河市| 苏尼特左旗| 汤阴县| 仁化县| 习水县| 松桃|