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

正文內(nèi)容

基于語音技術的智能家居系統(tǒng)的設計畢業(yè)論文(編輯修改稿)

2025-07-24 20:51 本頁面
 

【文章內(nèi)容簡介】 的采集和對比分析,同時將對比得出的一個最優(yōu)結果以串口中斷的方式傳回給單片機。最后通過紅外遙控模塊傳送給另一個單片,使繼電器的指示燈亮或者滅。語音識別模塊與主控單片機的硬件連接如圖 36 所示。唐 山 學 院 畢 業(yè) 設 計11圖 36 語音識別模塊的硬件連接圖 紅外遙控模塊紅外遙控模塊主要有兩部分構成,紅外發(fā)送部分和紅外接收部分,現(xiàn)在一一介紹這兩部分。這個模塊最大的優(yōu)點就是,不會干擾其他的信號,不影響其他設備的正常工作,而自己本身也不受其他信號的影響。 紅外發(fā)光二極管的介紹紅外發(fā)射部分的主要元件為紅外發(fā)光二極管,實際上是一只特殊的發(fā)光二極管,由于其內(nèi)部材料不同于普通發(fā)光二極管,因而在其兩端施加一定電壓時,它便發(fā)出的是紅外線而不是可見光 [9]。在其實際應用中要加上反向電壓,才可以正常工作,它發(fā)出的紅外線的波長在 940 毫米左右。在這需要注意的是:在調(diào)試時,如果不知道紅外發(fā)光二極管是好是壞,能否正常工作,可以用萬用表的電阻檔量他的正反向電阻。 紅外發(fā)射部分的介紹單片機在空閑時候,功耗比較低,比較節(jié)能。當出現(xiàn)語音命令時,語音識別模塊會在觸發(fā)狀態(tài)下采集語音命令進行分析,并將結果傳給單片機,產(chǎn)生串口中斷,這時單片機會調(diào)用命令函數(shù)關閉串口中斷,同時開啟定時器中斷,定時器 T0 作為紅外線發(fā)射頻率控制器,當 T0 定時溢出時中斷程序使紅外管接口電平反轉一次,寫入定時器的初值不同,在輸出端口就得到不同的發(fā)射頻率 [14]。在語音識別模塊的論述中講到,語音芯片會將采集到的語音信號與放好的關鍵詞列表進行匹配得到最優(yōu)結果,這個結果會以串口的方式發(fā)送給單片。單片機唐 山 學 院 畢 業(yè) 設 計12接收到這個最優(yōu)結果以后,會打開定時器,產(chǎn)生一個個的高低電平。即完成了發(fā)送信號的編碼,產(chǎn)生了一個脈沖串信號。這個脈沖串信號載有相應的信息,通過紅外發(fā)光二極管發(fā)射出去。 紅外發(fā)射部分硬件連接這一部分由 51 單片機和紅外發(fā)光二極管構成。用來發(fā)送二進制信號經(jīng)過編碼以后的脈沖串信號。它與單片機的連接方式如下圖 37 所示。圖 37 紅外發(fā)射部分的電路圖 HS0038 的介紹紅外接收部分采用一體化接收器 HS0038。HS0038 黑色環(huán)氧樹脂封裝。一共有三個管腳:地端、電源端和信號輸出端。它可以不受其他光源的干擾,功耗低,而且靈敏度高。HS0038 的抗干擾能力較強,成本低,完成對信號進行放大、檢波、整形得到 TTL 電平的編碼信號,不需要其他外圍電路,最后將編碼信號傳送給單片機,經(jīng)單片機解碼并執(zhí)行去控制相關對象 [15]。它的引腳及功能如下圖 38 所示。圖 38 HS0038 的引腳及功能圖在此需要注意,判斷 HS0038 是否可以正常工作時,需要在把上圖的第二唐 山 學 院 畢 業(yè) 設 計13和第三引腳之間連接一個二極管和一個發(fā)光二極管,手拿遙控器對著接收頭按下任意鍵,如果發(fā)光二極管閃爍,可以證明 HS0038 可以正常工作。 紅外接收過程及硬件連接紅外接收就是對紅外信號的接收、放大、檢波、整形,之后解調(diào)出紅外遙控編碼脈沖的一種過程 [16]。注意的是接收的波長為 750~1150 納米之間。它的具體實現(xiàn)過程如下圖 39 所示。單片機 紅外發(fā)射電路 一體化紅外接收頭單片機輸出調(diào)制 發(fā)送接收解調(diào)圖 39 紅外遙控的實現(xiàn)過程圖紅外接收部分只需要 HS0038 就可以完成所需要的功能,不需要外加其他設備,HS0038 與單片機的連接方式如下圖 310 所示。圖 310 紅外接收電路圖 整體實物圖模擬智能家居系統(tǒng)的實物連接如下圖 311 所示。解碼唐 山 學 院 畢 業(yè) 設 計14圖 311 整體實物圖4 智能家居系統(tǒng)軟件設計 語音識別模塊語音識別模塊的整體的流程圖如圖 41 所示。唐 山 學 院 畢 業(yè) 設 計15N 開始 是否為觸發(fā)狀態(tài) 采集語音命令 識別語音命令 傳送相應的語音命令 系統(tǒng)是否繼續(xù)識別 結束YNY 串口初始化 芯片通用初始化 語音識別初始化寫列表 等待語音輸入圖 41 語音模塊流程圖由圖 35 可以知道,語音芯片通過 與 51 單片機相連接。在送入語音命令之前,所要做的準備工作如下:把所連接的串口、語音芯片以及一些寄存器初始化;把所需要的關鍵詞列表寫入到語音芯片中;等待語音信號的輸入。當麥克風收集到語音命令時,在語音芯片內(nèi)部會以一定的算法將關鍵詞列唐 山 學 院 畢 業(yè) 設 計16表與該語音信號進行對比匹配。將最終的結果通過 送入單片機。要注意的是:對語音芯片、所連接的串口的各種操作都必須通過寄存器的操作來完成,包括設置標志位、讀取狀態(tài)、向 FIF0 寫入數(shù)據(jù)等 [16]。 通用初始化讓芯片還原最初的方式和狀態(tài),等待語音命令的輸入,這樣會更好的識別信息,完成操作。參考程序如下:Void LD_init_Common( ){bMp3play=0。LD_ReadReg(0x06)。/*soft reset.*/LD_WriteReg(0x1F,0x0)。Delay(10)。LD_WriteReg(0x89,0x03)。 LD_WriteReg(0xCF,0x43)。LD_WriteReg(0xCB,0x02)。/*PLL setting*/LD_WriteReg(0x11,LD_PLL_11)。If (nLD_Mode==LD_MODEMP3) {LD_WriteReg(0x1E,0x00)。LD_WriteReg(0x19,LD_PLL_19)。LD_WriteReg(0x1B,LD_PLL_1B)。LD_WriteReg(0x1D,LD_PLL_1D)。LD_WriteReg(0x79,LD_LEDMTR_FREQ)。 } ELSE { LD_WriteReg(0x1E,0x00)。 LD_WriteReg(0x19,0x3f)。 LD_WriteReg(0x1D,0x1f)。 LD_WriteReg(0x1B,0x08)。 } LD_WriteReg(0xCD,0x04)。唐 山 學 院 畢 業(yè) 設 計17 LD_WriteReg(0x17,0x4c)。 LD_WriteReg(0xB9,0x00) LD_WriteReg(0xCF,0x4f)。LD_WriteReg(0x6F,0xff)。 } 寄存器的初始化語音識別模塊中,寄存器有著很重要的作用,可以說大部分的操作是根據(jù)它來完成的。對寄存器設置的程序如下:Void LD_init_ASR(){nld_Mode=LD_MODE_ASR_RUN。LD_Init_Common()。LD_WriteReg(0xBD,0x00)。LD_WriteReg(0x17,0x48)。 Delay(10)。LD_WriteReg(0x3C,0x80)。LD_WriteReg(0x3E,0x07)。 LD_WriteReg(0x38,0xff)LD_WriteReg(0x3A,0x07)。LD_WriteReg(0x40,0x08)。LD_WriteReg(0x42,0x00)。 LD_WriteReg(0x44,0x08)LD_WriteReg(0x46,0x08)。LD_WriteReg(0x1b,0x48)。Delay(1)。 } 寫入識別列表LD3320 最多支持 50 個識別條目,每個識別條目可以是單字、詞組或短句,長度為不超過 10 個漢字或者 79 個字節(jié)拼音串。每個識別條目是標準普聽話的漢語拼音(小寫),每兩個字(漢語拼音)之間用一個空格間隔,編號可以相同,可以不連續(xù),但數(shù)值要小于 256(00HFFH) [17]。在寫入識別列表時,每一個待識別的語句需要一個編號。這個編號是識別出以后,通過串口返回單片唐 山 學 院 畢 業(yè) 設 計18機的值。值得注意的是,這個編號是要一字節(jié)的。同時列表中不同的待識別語句的編號可以相同。也可以不同??梢赃B續(xù),也可以不連續(xù)。如表 41 所示。 表41 編寫的語音識別列表把關鍵詞列表寫入到語音芯片的代碼如下:uint8 LD_AsrAddFixed( ) { uint8 k, flag。 uint8 nAsrAddLength。 const char sRecog[10][15] = {da kai deng, guan bi deng, da kai dian shi, guan bi dian shi, da kai kong tiao,guan bi kong tiao,”da kai re shui qi”,”guan bi re shui qi””quan bu da kai”quan bu guan bi}。const unit8 pcode[10]={code_dakaideng, code_guanbideng, code_dakaidianshi, code_guanbidianshi, code_dakaikongtiao, code_guanbikongtiao, code_dakaireshuiqi, code_guanbireshuiqi, code_quanbudakai, code_quanbuguanbi}。flag = 1。for (k=0。 k10。 k++) { if(LD_Check_AsrBusyFlag_b2() = = 0) { flag = 0。 break。 編號 字符串0x01 da kai deng0x02 guan bi deng0x03 da kai kong tiao 0x04 guan bi kong tiao 0x05 da kai dian shi0x06 guan bi dian shi0x07 da kai re shui qi0x08 guan bi re shui qi0x09 quan bu da kai0x0a quan bu guan bi唐 山 學 院 畢 業(yè) 設 計19} LD_WriteReg(0xc1, pCode[k] )。 LD_WriteReg(0xc3, 0 )。 LD_WriteReg(0x08, 0x04)。 Delay(1)。 LD_WriteReg(0x08, 0x00)。 Delay(1)。 for (nAsrAddLength=0。 nAsrAddLength20。 nAsrAddLength++) { if (sRecog[k][nAsrAddLength] == 0) break。 LD_WriteReg(0x5, sRecog[k][nAsrAddLength } LD_WriteReg(0xb9, nAsrAddLength)。 LD_WriteReg(0xb2, 0xff)。 LD_WriteReg(0x37, 0x04)。 } return flag。 } 開始識別完成各初始化,并且將關鍵詞列表寫入芯片以后,就可以等待語音命令的輸入。當有信號輸入時,語音芯片會調(diào)用識別程序。單片機程序中,一般會用一個全局變量控制當前狀態(tài),在編程時把對該狀態(tài)的設置放在 LD3320 芯片開始識別以前 [18]。uint8 LD_AsrRun() { nAsrStatus=LD_ASR_RUNING。 LD_WriteReg(0x35,MIC_VOL)。 LD_WriteReg(0x1C,0x09)。 LD_WriteReg(0xBD,0x20)。 LD_WriteReg(0x08,0x01)。 delay( 1 )。 LD_WriteReg(0x08,0x00)。 delay( 1 )。唐 山 學 院 畢 業(yè) 設 計20}將識別到的結果存放到 C5 寄存器。如果麥克風采集到聲音,不管是否是正常結果,都會產(chǎn)生一個中斷信號,而中斷程序要根據(jù)寄存器的值分析結果。讀取 BA 寄存器的值,可以知道有幾個候選答案,而 C5 寄存器里的答案是得分最高、最可能正確的答案 [18]。麥克風采集到語音信號以后,送入到 LD3320 的內(nèi)部。與寫入的關鍵詞列表進行對比與匹配,會得到一個最優(yōu)結果。將該結果所對應的序號傳遞給單片機。此時單片機會把該信號進行調(diào)制然后通過紅外發(fā)光二極管發(fā)射出去。語音控制指令所對應的返回值如下表 42 所示。表 42 語音控制指令對應的串口返回值buff=USART_Receive()。 switch (buff){case 00:clrbit( PortA, PA0 )。 //對 PA0 寫 0break。case 01:setbit( PortA, PA0 )。 //對 PA0 寫 1break。case 02:clrbit( PortA, PA2 )。 //對 PA2 寫 0break。 case 03: setbit( PortA,
點擊復制文檔內(nèi)容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1