freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于單片機(jī)的語音識別系統(tǒng)畢業(yè)設(shè)計-閱讀頁

2025-07-12 19:48本頁面
  

【正文】 ordID, intRespondID)初始化識別器BSR_InitRecognizer(BSR_MIC)辨識處理BSR_GetResult() 語音辨識整體框圖在程序中我們通過五條語句的訓(xùn)練演示特定人連續(xù)音識別,其中第一條語句為觸發(fā)名稱。(2) 關(guān)于語音識別庫函數(shù)的算法分析:眾所周知,嵌入式語音識別最大難點在于如何在硬件資源相對有限(相對與PC機(jī)而言)的情況下,實現(xiàn)大量數(shù)據(jù)處理的語音識別算法。時域分析中,語音信號作為緩慢時變的信號,在一小段時間里,例如10ms~20ms,語音信號的特性基本不變,這些短段具有固定特性,短段間經(jīng)常有一定的重疊,組合成一段語音,我們把語音信號分成這樣的小段(稱為“幀”)作為提取語音信號特性的單元,這樣的方法稱為“短時”處理法。 在外界噪音的干擾下,對語音起止點的判別非常重要,若聲音指令信號提取的不恰當(dāng),那么所得到的聲音指令信號和我們發(fā)出的指令信號就會有很大的出入,不但會延遲語音識別的時效性,甚至?xí)档蛯@些語音信號的識別率。常用的方法有短時能量和過零率等幾種。語音采集過程中,計算當(dāng)前一幀或多幀數(shù)據(jù)的能量或過零率數(shù)值,當(dāng)大于預(yù)先設(shè)定的閾值時,即認(rèn)為找到了語音命令的起始點,結(jié)束點的確定方法類似。選擇合適的特征參數(shù),與語音樣板參數(shù)通過動態(tài)時間彎折算法匹配,即可得出相應(yīng)的識別結(jié)果。2. 聲控功能:利用特定人語音識別實現(xiàn)小車的名稱和動作訓(xùn)練,并根據(jù)相應(yīng)的語音指令輸入執(zhí)行前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)、停車等動作。 代碼下載硬件連接完成之后,檢查無誤,接下來就可以下載程序了。(注意:,請在彈出的對話框中選擇打開類型為spj或者所有文件) 第二步:點擊菜單Project-Select Body,或者直接點擊 圖標(biāo)打開如圖 32所示的對話框: ?圖 73 Select Body對話框 第三步:在彈出的對話框中選擇Body Name為SPCE060A_061A,選擇Probe為Auto,點擊OK按鈕確定。 第五步:按F8快捷下載按鈕,下載代碼。訓(xùn)練采用應(yīng)答式訓(xùn)練,每條指令的訓(xùn)練次數(shù)為兩次,每一條命令的訓(xùn)練過程都是一樣的,以“前進(jìn)”為例說明: 步驟一:小車提示“前進(jìn)”; 步驟二:告訴小車“前進(jìn)”; 步驟三:小車提示“請再說一遍”(重復(fù)訓(xùn)練提示音); 步驟四:再次告訴小車“前進(jìn)”(重復(fù)訓(xùn)練一次)。整個的訓(xùn)練過程共有5次這樣的訓(xùn)練,依次為:名稱——前進(jìn)——后退——左拐——右拐。如果想要小車執(zhí)行其它動作,直接告訴小車將要執(zhí)行動作對應(yīng)的指令即可。如果在小車訓(xùn)練過程中想要小車停下來,可以直接呼叫小車的名字,小車準(zhǔn)確識別之后就會停下來。這樣就要求小車可以被重新訓(xùn)練。如果檢測到KEY3鍵按下,那么程序首先會把訓(xùn)練標(biāo)志位(0xe000)單元擦除,并會進(jìn)入一個死循環(huán)等待復(fù)位的到來。 總結(jié)本設(shè)計綜合應(yīng)用了SPCE061A豐富的軟硬件資源,成功的實現(xiàn)了語音控制功能。在軟件方面,標(biāo)準(zhǔn)的C語言編程,豐富的語音資源函數(shù)為編程提供了很大的方便。但是比“語音識別芯片+普通單片機(jī)”方案實現(xiàn)起來要簡單很多,而且成本也會降低很多。最后敬請各位專家、老師和同學(xué)對論文和今后的研究工作提出寶貴的指導(dǎo)意見和建議。 //外部變量BSR_SDModel[100],辨識器自帶extern void F_FlashWrite1Word(unsigned int addr,unsigned int Value)。unsigned int uiTimeset = 3。 //運行時間計時//=====================================================// 語法格式: void Delay()。 for(i=0。i++) { *P_Watchdog_Clear=0x0001。// 實現(xiàn)功能:語音播放函數(shù)// 參數(shù): SndIndex播放語音資源索引號// DAC_Channel播放聲道選擇// 返回值: 無//====================================================void PlaySnd(unsigned SndIndex,unsigned DAC_Channel){ BSR_StopRecognizer()。 //初始化為自動播放 SACM_S480_Play(SndIndex, DAC_Channel, 3)。0x0001)!= 0) //是否播放完畢? { SACM_S480_ServiceLoop()。 //清看門狗 } SACM_S480_Stop()。 //初始化識別器}//=====================================================// 語法格式: int TrainWord(int WordID,int SndID)。 PlaySnd(SndID,3)。 //訓(xùn)練兩次,獲得訓(xùn)練結(jié)果 if(Result==0)break。 return 1。 break。 return 3。 case 5: //檢測出聲音不同 PlaySnd(S_CMDDIFF,3)。 case 6: //序號錯誤 return 6。 } } return 0。// 實現(xiàn)功能: 訓(xùn)練函數(shù)// 參數(shù): 無// 返回值: 無//=====================================================void TrainSD(){while(TrainWord(NAME_ID,S_NAME) != 0) 。 //訓(xùn)練第1個動作while(TrainWord(COMMAND_BACK_ID,S_ACT2) != 0) 。 //訓(xùn)練第3個動作 while(TrainWord(COMMAND_RIGHT_ID,S_ACT4) != 0) 。// 實現(xiàn)功能: 存儲語音模型函數(shù)// 參數(shù): 無// 返回值: 無//=====================================================void StoreSD() { unsigned int ulAddr,i,mandID,g_Ret。 F_FlashErase(0xe000)。 F_FlashErase(0xe200)。//******** for(mandID=0x100。mandID++) { g_Ret=BSR_ExportSDWord(mandID)。 for(i=0。i++) //保存語音模型SD1(0xe0000xe063) { F_FlashWrite1Word(ulAddr,BSR_SDModel[i])。 } }}//=====================================================// 語法格式: void StoreSD()。 p=(int *)0xe000。jk5。k100。 BSR_SDModel[k]=Ret。 } g_Ret=BSR_ImportSDWord()。 }}//=====================================================// 語法格式: void GoAhead()。 //提示 *P_IOB_Data=0x0100。 //以下為中斷定時操作 __asm(int fiq,irq)。}//=====================================================// 語法格式: void BackUp()。 //提示 *P_IOB_Data=0x0200。 //以下為中斷定時操作 __asm(int fiq,irq)。}//=====================================================// 語法格式: void TurnLeft()。 *P_IOB_Data=0x0900。 //延時 *P_IOB_Data=0x0500。 //以下為中斷定時操作 __asm(int fiq,irq)。}//=====================================================// 語法格式: void TurnRight()。 //語音提示 *P_IOB_Data=0x0500。 //延時 *P_IOB_Data=0x0900。 //以下為中斷定時操作 __asm(int fiq,irq)。}//=====================================================// 語法格式: void Stop()。 //停車 PlaySnd(S_RDY,3)。// 實現(xiàn)功能: 辨識子函數(shù)// 參數(shù): 無// 返回值: 無//=====================================================void BSR(void){ int Result。 //獲得識別結(jié)果 if(Result0) //有語音觸發(fā)? { *P_IOB_Data=0x0000。 //停車待命 break。 //執(zhí)行動作一:直走 break。 //執(zhí)行動作二:倒車 break。 //執(zhí)行動作三:左轉(zhuǎn) break。 //執(zhí)行動作四:右轉(zhuǎn) break。 } }}//=============================================================// 語法格式: void IRQ5(void)。 //運動定時控制void IRQ5(void){ if(uiTimecont++ == uiTimeset) { *P_IOB_Data = 0x0000。}//=====================================================// 語法格式: int main(void)。 //Train標(biāo)志位 *P_IOA_Dir=0xff00。 *P_IOA_Data=0x0000。 //初始化IOB,IOB8~11同向輸出 *P_IOB_Attrib=0x0f00。 BSR_DeleteSDGroup(0)。 //讀存儲單元0xe000 if(BS_Flag==0xffff) //沒有經(jīng)過訓(xùn)練(0xe000內(nèi)容為0xffff) { TrainSD()。 //存儲訓(xùn)練結(jié)果(語音模型) } else //經(jīng)過訓(xùn)練(0xe000內(nèi)容為0x0055) { LoadSD()。 //開始識別提示 BSR_InitRecognizer(BSR_MIC)。 if((*P_IOA_Data)amp。 while(1)
點擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1