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

正文內(nèi)容

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

2024-07-24 20:51 本頁面
 

【文章內(nèi)容簡介】 的采集和對比分析,同時(shí)將對比得出的一個(gè)最優(yōu)結(jié)果以串口中斷的方式傳回給單片機(jī)。最后通過紅外遙控模塊傳送給另一個(gè)單片,使繼電器的指示燈亮或者滅。語音識別模塊與主控單片機(jī)的硬件連接如圖 36 所示。唐 山 學(xué) 院 畢 業(yè) 設(shè) 計(jì)11圖 36 語音識別模塊的硬件連接圖 紅外遙控模塊紅外遙控模塊主要有兩部分構(gòu)成,紅外發(fā)送部分和紅外接收部分,現(xiàn)在一一介紹這兩部分。這個(gè)模塊最大的優(yōu)點(diǎn)就是,不會干擾其他的信號,不影響其他設(shè)備的正常工作,而自己本身也不受其他信號的影響。 紅外發(fā)光二極管的介紹紅外發(fā)射部分的主要元件為紅外發(fā)光二極管,實(shí)際上是一只特殊的發(fā)光二極管,由于其內(nèi)部材料不同于普通發(fā)光二極管,因而在其兩端施加一定電壓時(shí),它便發(fā)出的是紅外線而不是可見光 [9]。在其實(shí)際應(yīng)用中要加上反向電壓,才可以正常工作,它發(fā)出的紅外線的波長在 940 毫米左右。在這需要注意的是:在調(diào)試時(shí),如果不知道紅外發(fā)光二極管是好是壞,能否正常工作,可以用萬用表的電阻檔量他的正反向電阻。 紅外發(fā)射部分的介紹單片機(jī)在空閑時(shí)候,功耗比較低,比較節(jié)能。當(dāng)出現(xiàn)語音命令時(shí),語音識別模塊會在觸發(fā)狀態(tài)下采集語音命令進(jìn)行分析,并將結(jié)果傳給單片機(jī),產(chǎn)生串口中斷,這時(shí)單片機(jī)會調(diào)用命令函數(shù)關(guān)閉串口中斷,同時(shí)開啟定時(shí)器中斷,定時(shí)器 T0 作為紅外線發(fā)射頻率控制器,當(dāng) T0 定時(shí)溢出時(shí)中斷程序使紅外管接口電平反轉(zhuǎn)一次,寫入定時(shí)器的初值不同,在輸出端口就得到不同的發(fā)射頻率 [14]。在語音識別模塊的論述中講到,語音芯片會將采集到的語音信號與放好的關(guān)鍵詞列表進(jìn)行匹配得到最優(yōu)結(jié)果,這個(gè)結(jié)果會以串口的方式發(fā)送給單片。單片機(jī)唐 山 學(xué) 院 畢 業(yè) 設(shè) 計(jì)12接收到這個(gè)最優(yōu)結(jié)果以后,會打開定時(shí)器,產(chǎn)生一個(gè)個(gè)的高低電平。即完成了發(fā)送信號的編碼,產(chǎn)生了一個(gè)脈沖串信號。這個(gè)脈沖串信號載有相應(yīng)的信息,通過紅外發(fā)光二極管發(fā)射出去。 紅外發(fā)射部分硬件連接這一部分由 51 單片機(jī)和紅外發(fā)光二極管構(gòu)成。用來發(fā)送二進(jìn)制信號經(jīng)過編碼以后的脈沖串信號。它與單片機(jī)的連接方式如下圖 37 所示。圖 37 紅外發(fā)射部分的電路圖 HS0038 的介紹紅外接收部分采用一體化接收器 HS0038。HS0038 黑色環(huán)氧樹脂封裝。一共有三個(gè)管腳:地端、電源端和信號輸出端。它可以不受其他光源的干擾,功耗低,而且靈敏度高。HS0038 的抗干擾能力較強(qiáng),成本低,完成對信號進(jìn)行放大、檢波、整形得到 TTL 電平的編碼信號,不需要其他外圍電路,最后將編碼信號傳送給單片機(jī),經(jīng)單片機(jī)解碼并執(zhí)行去控制相關(guān)對象 [15]。它的引腳及功能如下圖 38 所示。圖 38 HS0038 的引腳及功能圖在此需要注意,判斷 HS0038 是否可以正常工作時(shí),需要在把上圖的第二唐 山 學(xué) 院 畢 業(yè) 設(shè) 計(jì)13和第三引腳之間連接一個(gè)二極管和一個(gè)發(fā)光二極管,手拿遙控器對著接收頭按下任意鍵,如果發(fā)光二極管閃爍,可以證明 HS0038 可以正常工作。 紅外接收過程及硬件連接紅外接收就是對紅外信號的接收、放大、檢波、整形,之后解調(diào)出紅外遙控編碼脈沖的一種過程 [16]。注意的是接收的波長為 750~1150 納米之間。它的具體實(shí)現(xiàn)過程如下圖 39 所示。單片機(jī) 紅外發(fā)射電路 一體化紅外接收頭單片機(jī)輸出調(diào)制 發(fā)送接收解調(diào)圖 39 紅外遙控的實(shí)現(xiàn)過程圖紅外接收部分只需要 HS0038 就可以完成所需要的功能,不需要外加其他設(shè)備,HS0038 與單片機(jī)的連接方式如下圖 310 所示。圖 310 紅外接收電路圖 整體實(shí)物圖模擬智能家居系統(tǒng)的實(shí)物連接如下圖 311 所示。解碼唐 山 學(xué) 院 畢 業(yè) 設(shè) 計(jì)14圖 311 整體實(shí)物圖4 智能家居系統(tǒng)軟件設(shè)計(jì) 語音識別模塊語音識別模塊的整體的流程圖如圖 41 所示。唐 山 學(xué) 院 畢 業(yè) 設(shè) 計(jì)15N 開始 是否為觸發(fā)狀態(tài) 采集語音命令 識別語音命令 傳送相應(yīng)的語音命令 系統(tǒng)是否繼續(xù)識別 結(jié)束YNY 串口初始化 芯片通用初始化 語音識別初始化寫列表 等待語音輸入圖 41 語音模塊流程圖由圖 35 可以知道,語音芯片通過 與 51 單片機(jī)相連接。在送入語音命令之前,所要做的準(zhǔn)備工作如下:把所連接的串口、語音芯片以及一些寄存器初始化;把所需要的關(guān)鍵詞列表寫入到語音芯片中;等待語音信號的輸入。當(dāng)麥克風(fēng)收集到語音命令時(shí),在語音芯片內(nèi)部會以一定的算法將關(guān)鍵詞列唐 山 學(xué) 院 畢 業(yè) 設(shè) 計(jì)16表與該語音信號進(jìn)行對比匹配。將最終的結(jié)果通過 送入單片機(jī)。要注意的是:對語音芯片、所連接的串口的各種操作都必須通過寄存器的操作來完成,包括設(shè)置標(biāo)志位、讀取狀態(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)。唐 山 學(xué) 院 畢 業(yè) 設(shè) 計(jì)17 LD_WriteReg(0x17,0x4c)。 LD_WriteReg(0xB9,0x00) LD_WriteReg(0xCF,0x4f)。LD_WriteReg(0x6F,0xff)。 } 寄存器的初始化語音識別模塊中,寄存器有著很重要的作用,可以說大部分的操作是根據(jù)它來完成的。對寄存器設(shè)置的程序如下: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 個(gè)識別條目,每個(gè)識別條目可以是單字、詞組或短句,長度為不超過 10 個(gè)漢字或者 79 個(gè)字節(jié)拼音串。每個(gè)識別條目是標(biāo)準(zhǔn)普聽話的漢語拼音(小寫),每兩個(gè)字(漢語拼音)之間用一個(gè)空格間隔,編號可以相同,可以不連續(xù),但數(shù)值要小于 256(00HFFH) [17]。在寫入識別列表時(shí),每一個(gè)待識別的語句需要一個(gè)編號。這個(gè)編號是識別出以后,通過串口返回單片唐 山 學(xué) 院 畢 業(yè) 設(shè) 計(jì)18機(jī)的值。值得注意的是,這個(gè)編號是要一字節(jié)的。同時(shí)列表中不同的待識別語句的編號可以相同。也可以不同。可以連續(xù),也可以不連續(xù)。如表 41 所示。 表41 編寫的語音識別列表把關(guān)鍵詞列表寫入到語音芯片的代碼如下: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唐 山 學(xué) 院 畢 業(yè) 設(shè) 計(jì)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。 } 開始識別完成各初始化,并且將關(guān)鍵詞列表寫入芯片以后,就可以等待語音命令的輸入。當(dāng)有信號輸入時(shí),語音芯片會調(diào)用識別程序。單片機(jī)程序中,一般會用一個(gè)全局變量控制當(dāng)前狀態(tài),在編程時(shí)把對該狀態(tài)的設(shè)置放在 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 )。唐 山 學(xué) 院 畢 業(yè) 設(shè) 計(jì)20}將識別到的結(jié)果存放到 C5 寄存器。如果麥克風(fēng)采集到聲音,不管是否是正常結(jié)果,都會產(chǎn)生一個(gè)中斷信號,而中斷程序要根據(jù)寄存器的值分析結(jié)果。讀取 BA 寄存器的值,可以知道有幾個(gè)候選答案,而 C5 寄存器里的答案是得分最高、最可能正確的答案 [18]。麥克風(fēng)采集到語音信號以后,送入到 LD3320 的內(nèi)部。與寫入的關(guān)鍵詞列表進(jìn)行對比與匹配,會得到一個(gè)最優(yōu)結(jié)果。將該結(jié)果所對應(yīng)的序號傳遞給單片機(jī)。此時(shí)單片機(jī)會把該信號進(jìn)行調(diào)制然后通過紅外發(fā)光二極管發(fā)射出去。語音控制指令所對應(yīng)的返回值如下表 42 所示。表 42 語音控制指令對應(yīng)的串口返回值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,
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1