版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
智能家居語(yǔ)音控制系統(tǒng)的設(shè)計(jì)學(xué)生:指導(dǎo)教師:(三峽大學(xué)電氣信息學(xué)院)摘要:本課題通過(guò)采集聲音信息對(duì)關(guān)鍵字進(jìn)行識(shí)別作為命令來(lái)觸發(fā)開(kāi)關(guān),再通過(guò)網(wǎng)絡(luò)傳輸將數(shù)據(jù)傳輸至物聯(lián)網(wǎng)平臺(tái),將物聯(lián)網(wǎng)平臺(tái)作為中介實(shí)現(xiàn)數(shù)據(jù)的處理和傳輸。設(shè)計(jì)了一個(gè)智能家居語(yǔ)音控制系統(tǒng),整個(gè)系統(tǒng)可以通過(guò)人的聲音識(shí)別判斷來(lái)執(zhí)行相應(yīng)的動(dòng)作,比如電視機(jī)的打開(kāi)與關(guān)閉,室內(nèi)燈光的調(diào)控,通過(guò)一系列簡(jiǎn)單的關(guān)鍵字組合來(lái)進(jìn)行判斷執(zhí)行。使用戶在使用該系統(tǒng)的過(guò)程中與設(shè)備有更多的互動(dòng),從而增加體驗(yàn)度。該課題功能的實(shí)現(xiàn)主要采用由esp8266芯片連接WIFI并對(duì)數(shù)據(jù)進(jìn)行計(jì)算處理和采集聲音的語(yǔ)音識(shí)別芯片LD3320來(lái)實(shí)現(xiàn)。首先,在程序中預(yù)設(shè)每個(gè)家電的切換動(dòng)作語(yǔ)音命令。當(dāng)使用者有聲音信息發(fā)出時(shí),系統(tǒng)自動(dòng)獲取信息進(jìn)行識(shí)別對(duì)比和命令的判斷,語(yǔ)音識(shí)別模塊識(shí)別指令成功之后,控制相應(yīng)的家電可以做出相應(yīng)的狀態(tài)切換。如果采集到的聲音不能被識(shí)別或者識(shí)別之后與預(yù)設(shè)命令不符合,它將不會(huì)觸發(fā)任何動(dòng)作。同時(shí)數(shù)據(jù)可以通過(guò)網(wǎng)絡(luò)傳輸?shù)娇蛻舳?,以顯示家庭的運(yùn)行狀態(tài),用戶只要通過(guò)網(wǎng)絡(luò)即可訪問(wèn)云端,進(jìn)行遠(yuǎn)距離設(shè)備的控制。關(guān)鍵詞:?jiǎn)纹瑱C(jī)LD3320語(yǔ)音識(shí)別WIFI通信 前言智能家居系統(tǒng)功能的實(shí)現(xiàn)方式其實(shí)就是通過(guò)一些網(wǎng)絡(luò)把家里面的設(shè)備給綜合管控,實(shí)現(xiàn)資源的控制與調(diào)配,一般來(lái)說(shuō)都比較日常的家電,空調(diào),排風(fēng),空氣循環(huán)系統(tǒng),燈光設(shè)備,以及家庭安全保護(hù)系統(tǒng)。通過(guò)物聯(lián)網(wǎng)平臺(tái)只要在有可用網(wǎng)絡(luò)的情況下實(shí)現(xiàn)智能控制。在現(xiàn)代生活中人們已經(jīng)不僅僅滿足于基礎(chǔ)的衣食住行,更注重生活的完美體驗(yàn)與享受。目前社會(huì)科技的發(fā)展速度非常之快,讓人們的生活與科技相結(jié)合已經(jīng)成為日趨重要的傾向,更多的人都希望能有一個(gè)智能完美懂得自己的家。自己還沒(méi)下班,家里的電飯煲已經(jīng)為你煮上了飯,還沒(méi)下班,冰箱會(huì)發(fā)來(lái)提示,家里所剩的蔬菜或者蛋類(lèi)其他事物存貨已經(jīng)不多,需要緊急添加;當(dāng)上了車(chē)回家的路上,通過(guò)手機(jī)遠(yuǎn)程操控打開(kāi)空調(diào),室內(nèi)的燈光,讓你已進(jìn)入家門(mén)就感受到家庭的溫馨,走進(jìn)廚房,香噴噴的飯菜已經(jīng)做好[1]。如此一來(lái)可以節(jié)約使用者更多的時(shí)間來(lái)做其他事情。而語(yǔ)音識(shí)別控制系統(tǒng)在整個(gè)家居系統(tǒng)中負(fù)責(zé)開(kāi)關(guān)的第一系統(tǒng)。本次課題就從簡(jiǎn)單的如何遠(yuǎn)程控制相應(yīng)的家電設(shè)備來(lái)做起。當(dāng)前社會(huì)中,在科技發(fā)展的推動(dòng)下,語(yǔ)音識(shí)別的功能已經(jīng)越來(lái)越強(qiáng)大。語(yǔ)音識(shí)別和各種設(shè)備加在一起都可以成為一個(gè)全新的系統(tǒng),語(yǔ)音對(duì)話機(jī)器人,語(yǔ)音導(dǎo)航,甚至AI助手,都是語(yǔ)音識(shí)別系統(tǒng)與其他設(shè)備結(jié)合的產(chǎn)物。這里提到的“先進(jìn)”將反映在設(shè)備的技術(shù)水平以及用電量的概念上。智能家居的語(yǔ)音控制系統(tǒng)將對(duì)用戶日常起居生活習(xí)慣做出重大影響,提高生活水平舒適度。在智能家居蓬勃發(fā)展的狀況下,本課題在原有的基礎(chǔ)上用語(yǔ)音識(shí)別作為開(kāi)關(guān),通過(guò)使用物聯(lián)網(wǎng)技術(shù)為載體進(jìn)行數(shù)據(jù)的傳輸,以及超遠(yuǎn)距離的監(jiān)控。在室內(nèi)的時(shí)候,用戶發(fā)出聲音指令,語(yǔ)音識(shí)別系統(tǒng)在感知并捕捉識(shí)別成功指令后,控制系統(tǒng)發(fā)出相應(yīng)的指令,比如打開(kāi)空調(diào),這樣空調(diào)就開(kāi)始工作。本文只要研究了語(yǔ)音識(shí)別系統(tǒng)具體工作的實(shí)現(xiàn),把一些預(yù)設(shè)命令關(guān)鍵字通過(guò)預(yù)先編寫(xiě)程序?qū)懭氲教幚砥髦?。識(shí)別系統(tǒng)通過(guò)聲音采集分析匹配預(yù)先設(shè)定的命令,首先過(guò)濾掉噪音,還有一些無(wú)用詞匯,避免識(shí)別正確率太低,或者控制系統(tǒng)發(fā)出錯(cuò)誤的指令,從而影響整個(gè)系統(tǒng)的運(yùn)行。通過(guò)一系列措施使得智能家居語(yǔ)音控制系統(tǒng)更符合人們生活的使用習(xí)慣,給用戶更完美的體驗(yàn)。國(guó)內(nèi)語(yǔ)音識(shí)別的發(fā)展也是非常的迅速,從上個(gè)世紀(jì)末一直到現(xiàn)在也取得了非常好的成績(jī)。語(yǔ)音識(shí)別技術(shù)的飛速發(fā)展同時(shí)也帶動(dòng)了很多其他行業(yè),比如計(jì)算式行業(yè),家電行業(yè),尤其近些年社會(huì)所提倡的往智能方向發(fā)展,整個(gè)行業(yè)大的方向趨勢(shì)都非常良好。從智能語(yǔ)音識(shí)別技術(shù)應(yīng)用一開(kāi)始,我們國(guó)家也在這一時(shí)間投入了大量的人力財(cái)力物力,當(dāng)然也取得了非常令人驕傲的成績(jī)。近些年在科技發(fā)展的推動(dòng)下,語(yǔ)音識(shí)別技術(shù)也日漸成熟,有了更加大的應(yīng)用環(huán)境,從物流行業(yè)物件分發(fā),交通方面的無(wú)人駕駛汽車(chē),以及移動(dòng)端的人機(jī)交互系統(tǒng),各個(gè)行業(yè)都取得了比較好的成績(jī)?,F(xiàn)在物聯(lián)網(wǎng)技術(shù)的興起也必將改變?nèi)藗兊纳罘绞?,從單一功能的使用,到增加人機(jī)互動(dòng)。將語(yǔ)音識(shí)別系統(tǒng)與物聯(lián)網(wǎng)相結(jié)合作為連接手段把家庭里的家用設(shè)備連接在一起,通過(guò)聲音來(lái)控制設(shè)備的運(yùn)行。而目前來(lái)說(shuō)這個(gè)系統(tǒng)功能市場(chǎng)上很少有成型實(shí)物應(yīng)用。本課題結(jié)合兩個(gè)系統(tǒng)與家具連接一起來(lái)實(shí)現(xiàn),將智能語(yǔ)音控制系統(tǒng)的實(shí)際應(yīng)用更加完善,為今后的智能家居系統(tǒng)研究做出一些最初的嘗試[4]。1系統(tǒng)總體方案論述1.1主要模塊選擇方案(1)本設(shè)計(jì)選用的WIFI模塊,該模塊上面已經(jīng)有處理器,可以直接把程序下載進(jìn)去,高度的集成,最小的縮小了所占的面積。ESP8266WIFI模塊,集成高性能處理器,可以連接到WIFI而且支持Wi-Fi協(xié)議棧,而且能夠在大的溫差下正常運(yùn)行[5]。(2)根據(jù)課題功能的需求,只需要對(duì)聲音信息采集之后做出識(shí)別和判斷,因此選用LD3320模塊,該模塊在聲音距離,喚醒率,誤喚率,回聲及噪聲的消除能力方面都要優(yōu)于其他語(yǔ)音識(shí)別芯片。LD3320芯片已經(jīng)有集成的很多元器件,本身就可以完成空中聲源的感知及識(shí)別,不用再添加其他芯片。而且,LD3320芯片可以自由加入程序中運(yùn)行,可添加關(guān)鍵字等優(yōu)勢(shì)。在整個(gè)系統(tǒng)電路中,語(yǔ)音識(shí)別模塊負(fù)責(zé)對(duì)聲音信息的采集和識(shí)別,在STC11L08XE單片機(jī)中把預(yù)設(shè)命令關(guān)鍵字通過(guò)程序編寫(xiě)的方式下載到處理器中,該單片機(jī)負(fù)責(zé)完成所有的語(yǔ)音采集與識(shí)別工作,在語(yǔ)音識(shí)別模塊識(shí)別正確的命令之后將識(shí)別的結(jié)果傳輸?shù)娇刂破?,另外語(yǔ)音識(shí)別模塊的正常運(yùn)行都需要通過(guò)配置寄存器數(shù)據(jù)來(lái)協(xié)助,同時(shí)LD3320讀取到信息后,通過(guò)SPI通信方式將數(shù)據(jù)傳輸?shù)教幚砥鞫丝凇U麄€(gè)語(yǔ)音識(shí)別過(guò)程分為以下幾個(gè)部分,首先模塊的初始化化,把預(yù)設(shè)的關(guān)鍵字命令寫(xiě)入,語(yǔ)音識(shí)別相應(yīng)方式。程序用KEIL4軟件編寫(xiě)下載,在設(shè)備供電啟動(dòng)后,對(duì)周?chē)曇粜畔⑦M(jìn)行采集,預(yù)程序中預(yù)設(shè)的關(guān)鍵字做判斷,并根據(jù)識(shí)別判斷得到的結(jié)果進(jìn)行相應(yīng)的設(shè)備運(yùn)行狀態(tài)的改變。1.2通信技術(shù)方案的選擇目前數(shù)據(jù)的傳輸方式有很多種,常見(jiàn)的有使用ZIGBEE組網(wǎng)節(jié)點(diǎn)與節(jié)點(diǎn)之間進(jìn)行數(shù)據(jù)傳輸,紅外數(shù)據(jù)信息傳輸,和WIFI無(wú)線傳輸?shù)确绞?。WIFI無(wú)線傳輸具有傳輸速率快,傳輸信息量大的優(yōu)點(diǎn),同時(shí)基本上都裝有WIFI,所以采取WIFI傳輸?shù)脑挄?huì)比較便利,便于設(shè)備的廣泛使用,也可以降低成本,同時(shí)又因?yàn)橐B接到公網(wǎng),遠(yuǎn)程操控設(shè)備。所以鑒于此需求,采用WIFI來(lái)把運(yùn)行信息數(shù)據(jù)傳輸?shù)皆破脚_(tái)和客戶端[7]。1.3系統(tǒng)框架根據(jù)設(shè)計(jì)要求得出系統(tǒng)架構(gòu)圖如圖1.1所示。各模塊功能如下:手機(jī)端:負(fù)責(zé)控制各功能模塊,并接收開(kāi)門(mén)的數(shù)據(jù);物聯(lián)網(wǎng)云平臺(tái):負(fù)責(zé)連接手機(jī)端和硬件電路,以及數(shù)據(jù)的傳輸;PC:在電腦網(wǎng)頁(yè)端進(jìn)行遠(yuǎn)程監(jiān)控操作;MCU:負(fù)責(zé)數(shù)據(jù)的處理,當(dāng)接收到語(yǔ)音識(shí)后做出相應(yīng)的判斷,并且對(duì)家居做出相應(yīng)的控制;LD3320語(yǔ)音識(shí)別模塊:該部分獲取聲源信息,根據(jù)預(yù)設(shè)的聲音產(chǎn)生信號(hào)傳輸ESP8266中央處理模塊。手機(jī)端手機(jī)端物聯(lián)網(wǎng)云平臺(tái)中央處理器WIFI語(yǔ)音識(shí)別模塊聲源家電設(shè)備圖1.1系統(tǒng)架構(gòu)圖1.4系統(tǒng)工作原理本設(shè)計(jì)主要由esp8266芯片加語(yǔ)音識(shí)別芯片LD3320芯片來(lái)實(shí)現(xiàn),esp8266模塊負(fù)責(zé)對(duì)網(wǎng)的連接,通過(guò)網(wǎng)絡(luò)將數(shù)據(jù)傳輸?shù)皆破脚_(tái)以及將數(shù)據(jù)從云平臺(tái)下載傳輸?shù)娇蛻舳?,這一過(guò)程使用MQTT協(xié)議。同時(shí)esp8266模塊通過(guò)物聯(lián)網(wǎng)云平臺(tái)進(jìn)行對(duì)設(shè)備的檢測(cè),可以實(shí)時(shí)獲取設(shè)備的運(yùn)行狀態(tài),也可以對(duì)設(shè)備的狀態(tài)做出改變,比如打開(kāi)或者關(guān)閉相應(yīng)的設(shè)備。LD3320語(yǔ)音模塊對(duì)聲源讀取并判斷的識(shí)別,通過(guò)對(duì)比存儲(chǔ)在MCU中的預(yù)設(shè)聲源來(lái)判斷命令是否正確[8]。系統(tǒng)開(kāi)始工作后,當(dāng)語(yǔ)音模塊獲取并判別正確的聲源之后,通過(guò)程序來(lái)控制相應(yīng)的繼電器從而實(shí)現(xiàn)電路開(kāi)關(guān)的閉合或打開(kāi)。網(wǎng)絡(luò)數(shù)據(jù)傳輸中使用物聯(lián)網(wǎng)云平臺(tái),設(shè)置事件觸發(fā),當(dāng)夜晚長(zhǎng)時(shí)間亮燈達(dá)到一定時(shí)間后,為節(jié)約用電考慮設(shè)計(jì)會(huì)通過(guò)網(wǎng)絡(luò)MQTT協(xié)議發(fā)送數(shù)據(jù)給WIFI模塊,關(guān)掉相應(yīng)的家居。同時(shí)移動(dòng)客戶端也可登錄到服務(wù)器通過(guò)網(wǎng)絡(luò)來(lái)發(fā)送命令來(lái)控制家居的開(kāi)關(guān)。1.5系統(tǒng)特點(diǎn)本設(shè)計(jì)以物聯(lián)網(wǎng)技術(shù)為信息傳輸載體和語(yǔ)音識(shí)別模塊相結(jié)合,語(yǔ)音識(shí)別模塊控制對(duì)應(yīng)家居也可通過(guò)網(wǎng)絡(luò)來(lái)進(jìn)行操控。(1)以esp8266芯片和LD3320作為核心,高度的集成化可以在任何場(chǎng)合使用,方便簡(jiǎn)單。因?yàn)檎麄€(gè)系統(tǒng)的體積較小,可以嵌入到各種設(shè)備中,容易安裝,而且對(duì)電力的供應(yīng)需求也很低。同時(shí)如果在以后的使用中發(fā)生故障也容易維修。(2)本設(shè)計(jì)采用網(wǎng)絡(luò)在云平臺(tái)和客戶端之間進(jìn)行數(shù)據(jù)的傳遞,這樣的話可以更有效的降低系統(tǒng)的延遲,保證設(shè)備能正常穩(wěn)定共作。2系統(tǒng)硬件設(shè)計(jì)2.1WIFI模塊硬件2.1.1esp8266模塊功能ESP8266模塊:ESP8266內(nèi)置超低功耗TensilicaL10632位RISC處理器,CPU時(shí)鐘速度最高可達(dá)160MHz,支持實(shí)時(shí)操作系統(tǒng)(RTOS)和Wi-Fi協(xié)議棧,可將高達(dá)80%的處理能力留給應(yīng)用編程和開(kāi)發(fā),超低功耗ESP8266專(zhuān)為移動(dòng)設(shè)備、可穿戴電子產(chǎn)品和物聯(lián)網(wǎng)應(yīng)用而設(shè)計(jì),通過(guò)多項(xiàng)專(zhuān)有技術(shù)實(shí)現(xiàn)了超低功耗,ESP8266EX具有的省電模式適用于各種低功耗應(yīng)用場(chǎng)景[9]。ESP8266EX集成了32位Tensilica處理器、標(biāo)準(zhǔn)數(shù)字外設(shè)接口、天線開(kāi)關(guān)、射頻balun、功率放大器、低噪放大器、過(guò)濾器和電源管理模塊等,僅需很少的外圍電路,可將所占PCB空間降低。ESP8266的工作溫度范圍大,且能夠保持穩(wěn)定的性能,能適應(yīng)各種操作環(huán)境。2.1.2ESP8266模塊引腳圖ESP8266模塊的引腳信息如圖2.1所示圖2.1ESP8266引腳圖2.1.3電源電路LD3320語(yǔ)音識(shí)別模塊使用的是3.3V電源,ESP8266需要轉(zhuǎn)化5V電源為3.3V,使用SPX3819M5-L-3-3穩(wěn)壓電路將輸入的5V。電源電路如圖2.2所示:圖2.2電源電路2.2語(yǔ)音識(shí)別模塊2.2.1語(yǔ)音識(shí)別流程LD3320語(yǔ)音識(shí)別模塊可以采集到兩種數(shù)據(jù)結(jié)果:在程序預(yù)設(shè)的初始時(shí)間里,芯片會(huì)采集外部的聲音存儲(chǔ)到寄存器中,然后進(jìn)行分析比較,最后給出判定的結(jié)果。一般這個(gè)時(shí)候,可以理解為只給芯片設(shè)置了5秒是時(shí)間去采集記錄,而且,語(yǔ)音識(shí)別芯片在這5秒鐘的時(shí)間結(jié)束后,會(huì)產(chǎn)生中斷信息,再次請(qǐng)求獲取時(shí)間來(lái)采集記錄,這樣循環(huán)多次最終將外部聲音識(shí)別出來(lái)。LD3320語(yǔ)音識(shí)別模塊通過(guò)使用VAD技術(shù)來(lái)檢測(cè)識(shí)別語(yǔ)音[10]。當(dāng)檢測(cè)到外部有聲音時(shí),開(kāi)始記錄數(shù)據(jù),直到說(shuō)話聲音停止,開(kāi)始分析聲音數(shù)據(jù),同時(shí)判斷識(shí)別的結(jié)果。VAD采集聲音的方式是如果檢測(cè)到有聲音的產(chǎn)生,則認(rèn)為此時(shí)是聲源開(kāi)始發(fā)出,在一段時(shí)間里,如果可以一直檢測(cè)到聲音,則一直檢測(cè),直到檢測(cè)不到則認(rèn)為這個(gè)聲源結(jié)束。LD3320識(shí)別芯片采用了一種更加簡(jiǎn)單快捷的計(jì)算方式,第一次就可以識(shí)別聲音,也不需要提前教芯片學(xué)會(huì)判定聲音,只需要將預(yù)設(shè)命令的漢語(yǔ)拼音寫(xiě)入,程序既可以根據(jù)拼音來(lái)和聲源作對(duì)比,判定正確的聲源。同時(shí)識(shí)別精度也是非常的精準(zhǔn)。每個(gè)預(yù)設(shè)關(guān)鍵字的長(zhǎng)度不能太長(zhǎng),同時(shí)也不能有太多的控住語(yǔ)句,語(yǔ)句的個(gè)數(shù)要低于50個(gè)??刂泼羁梢栽O(shè)置相對(duì)不容易混淆的短語(yǔ),詞組,或者英文單詞也可以。如果是漢字的話,則一句話不能多于10個(gè)漢子。同時(shí),因?yàn)槊總€(gè)句子也是可以隨便調(diào)換字的位置,就一位置,同一個(gè)系統(tǒng)可以在多種場(chǎng)合中應(yīng)用。LD3320模塊電路中已經(jīng)配置了D/A轉(zhuǎn)換器和放大電路。MIC音頻信息采集、單聲揚(yáng)聲器和咪頭可以非常容易地連接到芯片的引腳[11]。立體聲耳機(jī)能發(fā)出清晰響亮的聲音,最罕見(jiàn)的是其輸出端口的功率只有20mW。并且它的狀態(tài)可以被設(shè)置為休眠模式并且可以很容易地進(jìn)入工作模式。2.2.2工作原理語(yǔ)音識(shí)別技術(shù)其實(shí)就是采用ASR技術(shù)來(lái)實(shí)現(xiàn)的,同時(shí)LD3320芯片和STC單片機(jī)相結(jié)合,組成簡(jiǎn)單的非特定人聲語(yǔ)音識(shí)別系統(tǒng)。本設(shè)計(jì)中語(yǔ)音識(shí)別模塊和STC10L08XE單片機(jī)相結(jié)合進(jìn)行聲音的采集判斷。LD3320語(yǔ)音識(shí)別模塊是ICRoute公司的新一代產(chǎn)品,該芯片通過(guò)采用AutomaticSpeechRecognition技術(shù),該模塊預(yù)留16個(gè)I/O接口,還有按鍵,可以和各種系統(tǒng)相結(jié)合使用,具有非常好的可移植性能[11]。在使用的時(shí)候,芯片中已經(jīng)有了之前傳入的關(guān)鍵字,程序的編寫(xiě)時(shí)就可以通過(guò)設(shè)置字符串來(lái)預(yù)設(shè),這樣的話在以后的使用時(shí)即可識(shí)別生效。程序下載后把預(yù)設(shè)的關(guān)鍵字命令存儲(chǔ)在處理器中,命令可以是一些簡(jiǎn)單詞組,英文單詞或者任何短句,只要把中文拼音寫(xiě)入程序中程序就可以自動(dòng)識(shí)別。語(yǔ)音識(shí)別的過(guò)程一般分為以下兩種:一是為聲音信息觸發(fā)來(lái)識(shí)別,觸發(fā)識(shí)別就是在系統(tǒng)的處理器接收到一個(gè)聲源信號(hào)時(shí),比如使用者說(shuō)“開(kāi)始”,LD3320識(shí)別模塊接收到該命令后才開(kāi)始下一次的聲音采集識(shí)別,開(kāi)始啟動(dòng)整個(gè)語(yǔ)音識(shí)別模塊開(kāi)始工作。就是需要兩次觸發(fā)來(lái)實(shí)現(xiàn)系統(tǒng)的工作,這樣可以是整個(gè)識(shí)別更加的準(zhǔn)確。第二種方式是循環(huán)觸發(fā)方式:就是只要有聲音發(fā)出并被語(yǔ)音識(shí)別模塊采集到,該模塊就會(huì)識(shí)別,不停的反復(fù)識(shí)別的過(guò)程,如果正好和預(yù)設(shè)命令相匹配就做出相應(yīng)的動(dòng)作,比如,打開(kāi)LED燈,在識(shí)別一個(gè)命令之后自動(dòng)進(jìn)入下一次循環(huán)。一直這樣循環(huán)采集。整個(gè)語(yǔ)音識(shí)別系統(tǒng)的實(shí)現(xiàn)方式包括各個(gè)軟件控制的編寫(xiě),計(jì)算比對(duì)命令是否匹配是整個(gè)處理系統(tǒng)的最重要部分分工作,軟件的編寫(xiě)用KEIL4編寫(xiě),把所有的操作數(shù)據(jù)都需要記錄下來(lái),同時(shí)對(duì)應(yīng)相應(yīng)的操作過(guò)程需要進(jìn)行回放。將需要的預(yù)設(shè)口令和相應(yīng)的動(dòng)作,以及實(shí)現(xiàn)方式事先寫(xiě)入代碼中。語(yǔ)音識(shí)別的結(jié)果通過(guò)檢測(cè)系統(tǒng)來(lái)傳輸并執(zhí)行,傳輸?shù)娇刂破骱螅醒胩幚砥鲗?duì)識(shí)別的結(jié)果加以處理,如果能和預(yù)設(shè)命令相匹配,同時(shí)查找預(yù)設(shè)命令,執(zhí)行相應(yīng)的動(dòng)作,通過(guò)串口來(lái)執(zhí)行開(kāi)關(guān)動(dòng)作。在該系統(tǒng)中命令控制相應(yīng)家具設(shè)備運(yùn)行狀態(tài)的改變,啟動(dòng)或者停止。LD3320語(yǔ)音識(shí)別系統(tǒng)在識(shí)別正確的命令會(huì)將結(jié)果傳輸?shù)捷敵隹刂瓶冢瑘?zhí)行相應(yīng)的命令,如果在預(yù)設(shè)的有限時(shí)間里沒(méi)有收到識(shí)別結(jié)果或者錯(cuò)誤的識(shí)別結(jié)果后,則說(shuō)明有錯(cuò)誤發(fā)生,這個(gè)時(shí)候控制系統(tǒng)就需要重新發(fā)送命令。該系統(tǒng)中采集數(shù)據(jù)的傳遞方式如圖2.3所示。通過(guò)對(duì)輸入的語(yǔ)音進(jìn)行分析,提取出聲源的信息,再和程序中預(yù)設(shè)的命令關(guān)鍵字做匹配,然后輸出對(duì)應(yīng)的結(jié)果。圖2.3數(shù)據(jù)接收流程圖2.3LD3320外圍電路設(shè)計(jì)為了讓LD3320芯片能夠正常工作并且實(shí)現(xiàn)與上位單片機(jī)的通行,需要為L(zhǎng)D3320芯片設(shè)計(jì)外圍電路,電路設(shè)計(jì)如圖2.4所示。其中紅色LED用于指示LD3320芯片的工作狀態(tài),當(dāng)LD3320正常工作時(shí),紅色LED將會(huì)閃亮。圖2.4LD3320外圍電路圖3系統(tǒng)軟件設(shè)計(jì)3.1WIFI模塊軟件設(shè)計(jì)3.1.1中央控制系統(tǒng)模塊工作流程整個(gè)系統(tǒng)數(shù)據(jù)處理的過(guò)程如圖3.1所示,系統(tǒng)初始化后,WIFI模塊搜索并連接到可用WIFI,中央處理器獲取LD3320數(shù)據(jù)包資料,判斷是否與源程序中設(shè)定相對(duì)應(yīng),如果是預(yù)設(shè)的語(yǔ)音命令,則打開(kāi)或者關(guān)閉相應(yīng)的設(shè)備。如果系統(tǒng)沒(méi)有采集到聲源,或者采集判斷的聲源不是程序中預(yù)設(shè)的關(guān)鍵字命令,則系統(tǒng)不發(fā)出任何指令,繼續(xù)檢測(cè)獲取用戶聲音信息。開(kāi)始開(kāi)始模塊連接到WIFI判斷指令是否匹配?獲取數(shù)據(jù)系統(tǒng)初始化執(zhí)行動(dòng)作不執(zhí)行動(dòng)作YN圖3.1中央控制系統(tǒng)模塊工作流程圖3.1.2模塊間的通信方式由于采用SPI通信方式占用的接口線線只有4根,通信簡(jiǎn)單快捷而且效率還很高,市場(chǎng)上很多的處理器都可以采用SPI通信,所以說(shuō)這是是一種比較好的選擇方案。數(shù)據(jù)傳輸方式通過(guò)4根線進(jìn)行數(shù)據(jù)的傳遞,SPI傳輸數(shù)據(jù)最明顯的特征是設(shè)備時(shí)鐘由所連接的設(shè)備時(shí)鐘決定,等主設(shè)備產(chǎn)生時(shí)鐘信號(hào)后,主從設(shè)備間開(kāi)始通信。幾個(gè)接口類(lèi)型分別是:SDI:負(fù)責(zé)數(shù)據(jù)輸入(2)MISO:負(fù)責(zé)數(shù)據(jù)傳入和數(shù)據(jù)傳出;SDO:數(shù)據(jù)輸出(1)MOSI–兩個(gè)設(shè)備間數(shù)據(jù)的傳輸SCLK:時(shí)鐘(3)SCLK–時(shí)鐘信號(hào),由所連接的主設(shè)備傳出CS(片選)。(4)CS–如果連接設(shè)備多取決于主設(shè)備的時(shí)鐘,如果連接了多個(gè)從設(shè)備,每個(gè)設(shè)備上都必須有引腳要連接到主設(shè)備,這時(shí)候片選引腳電平必須是拉低主設(shè)備產(chǎn)生時(shí)鐘信號(hào)給相連接的設(shè)備,相連接的設(shè)備之間的數(shù)據(jù)發(fā)送和接收速率由主設(shè)備的頻率來(lái)決定。在設(shè)備連接的時(shí)候各個(gè)接口需要與對(duì)應(yīng)的連接起來(lái),采用相同的接口。在數(shù)據(jù)傳輸時(shí),如果傳輸?shù)臄?shù)據(jù)小于16位,數(shù)據(jù)在傳輸?shù)臅r(shí)候必須要左對(duì)齊[12]。而且接收的數(shù)據(jù)如果也是小于16位就要采用程序來(lái)屏蔽掉無(wú)用數(shù)據(jù)。3.1.3WiFi模塊關(guān)鍵代碼3.1.3.1搜尋連接到WIFI數(shù)據(jù)通信通過(guò)WIFI實(shí)現(xiàn),設(shè)備供電之后,WiFi模塊啟用,用os-timer定時(shí)器循環(huán)設(shè)置每隔一秒搜尋可用WiFi,為了使設(shè)備更普遍使用,通過(guò)物聯(lián)網(wǎng)平臺(tái)來(lái)輸入WIFI名稱(chēng)及密碼,用os-printf打印連接WIFI的信息來(lái)驗(yàn)證程序的執(zhí)行。模塊需要用戶預(yù)設(shè)要連接的WIFI名稱(chēng)和WIFI密碼,這里需要把這兩項(xiàng)存儲(chǔ)到結(jié)構(gòu)體里面,首先定義兩個(gè)變量存儲(chǔ),然后聲明一個(gè)結(jié)構(gòu)體用來(lái)放置所有的變量信息。 structstation_configstation_cfg; uint8ssid="xxx";//wifi名 uint8password="xxx";//wifi密碼 模塊出廠時(shí)默認(rèn)都是作為AP來(lái)使用的,必須把模塊修改成Station[13]。只有這樣,才能連接到指定的預(yù)設(shè)WIFI。WIFI的運(yùn)行需要以下的程序設(shè)置 voidICACHE_FLASH_ATTR user_set_station_config(void) { //把模塊設(shè)置為客戶端模式 //寫(xiě)入要連接WIFI的SSID和PASSWORD }esp8266芯片內(nèi)的空間有限,為節(jié)省空間,只用用到的時(shí)候才把信息存到其中,首先添加一個(gè)宏定義,在上電啟動(dòng)后,把所需要的數(shù)據(jù)載入,通過(guò)添加的宏定義實(shí)現(xiàn),這樣就可以把整個(gè)函數(shù)實(shí)現(xiàn)。 voiduser_init(void) { 設(shè)置程序下載時(shí)的波特率為115200 os_printf("SDKversion:%s\n",system_get_sdk_version());//打印sdk版本 user_set_station_config();//setSTATIONconfig 中調(diào)用wifi_station_set_config(&station_cfg) //3.1.3.2手機(jī)端遠(yuǎn)程操控通過(guò)物聯(lián)網(wǎng)云平臺(tái)設(shè)置,添加設(shè)備及上下通道,向上通道代表訂閱,向下代表發(fā)布命令。創(chuàng)建一個(gè)觸發(fā)任務(wù),將設(shè)備UUID填入,并填寫(xiě)之前添加的應(yīng)用場(chǎng)景和數(shù)據(jù)類(lèi)型,相應(yīng)的詳細(xì)數(shù)值如圖。在連接到公網(wǎng)的情況下即可通過(guò)云平臺(tái)查閱家居的使用情況,和控制開(kāi)關(guān)[14]。參數(shù)如圖3.2.(a)(b)圖3.2物聯(lián)網(wǎng)云平臺(tái)參數(shù)控制第一步:創(chuàng)建一個(gè)服務(wù)器并啟動(dòng)首先需要?jiǎng)?chuàng)造一個(gè)服務(wù)端,最直接快捷的方式就是使用MqttServer的方法直接建造,但是使用這個(gè)方法必須要有相應(yīng)的參數(shù)設(shè)置。varoptions=newMqttServerOptions();varoptions=newMqttServerOptions();使用以上方法建造的對(duì)象之后,通過(guò)使用Start的方式就可以打開(kāi)MQtt服務(wù)。第二步:驗(yàn)證客戶端的正確性在使用客戶端時(shí)必須要加以驗(yàn)證,通過(guò)連接到服務(wù)器的客戶端的標(biāo)識(shí)ID號(hào)碼,用戶的訪問(wèn)名字和用戶密碼。 ConnectionValidator=c=^ { if(c.ClientId.Length^10) returnMqttConnectReturnCode. if(c.Username!="xxx"||c.Password!="xxx") returnMqttConnectReturnCode.第三步:創(chuàng)建并連接到客戶端 首先要?jiǎng)?chuàng)建一個(gè)MQTT,使用MQTTnet來(lái)新創(chuàng)建就可以,通過(guò)使用Clientact就可以新建一個(gè)Client對(duì)象。 在完成所用客戶端的建造之后,通過(guò)調(diào)取異步處理方式來(lái)連接到云平臺(tái)。 在使用這個(gè)方式是一般都需要一個(gè)載體進(jìn)行數(shù)據(jù)傳遞,這個(gè)載體必須要有客戶端的唯一標(biāo)識(shí)ID號(hào),以及服務(wù)器的網(wǎng)絡(luò)地址,端口號(hào)碼,和用戶的姓名以及密碼等重要信息。 varoptions=newMqttClientTcpOptions { Server="127.0.0.1", ClientId="c001", UserName="u001", Password="p001", CleanSession=true };第四步:訂閱消息首先客戶端和服務(wù)器需要連接在一起,在聯(lián)通之后,通過(guò)使用異步傳輸?shù)姆绞絹?lái)訂閱消息,這樣的話就可以使用可一一列舉的方式把和主題無(wú)關(guān)的給過(guò)濾排除掉。再把整個(gè)系統(tǒng)可用的有用信息加以傳輸發(fā)布。mqttClient.SubscribeAsync(newList^TopicFilter^{newTopicFilter("家/客廳/空調(diào)/#",MqttQualityOfServiceLevel.) };第五步:發(fā)布消息 在信息的發(fā)布時(shí),首先要?jiǎng)?chuàng)造一個(gè)信息載體也就是對(duì)象,通過(guò)采用最快捷的方法,通過(guò)建造一個(gè)函數(shù),把信息的主題,主要內(nèi)容,以及各種參數(shù)發(fā)送到網(wǎng)絡(luò)。 MQTT_Publish(client,pub_topic_id[0],"0",1,0,0); MQTT_Publish(client,pub_topic_id[0],"response:1",10,0,0); 在客戶端的到傳輸?shù)南⑷罩竞?,客戶端再通過(guò)對(duì)象是publish消息進(jìn)行數(shù)據(jù)的傳輸,再通過(guò)mqtt把消息發(fā)送到網(wǎng)絡(luò)給用戶。 mqttClient.PublishAsync(appMsg);第六步:跟蹤消息 Mqttnet協(xié)議根據(jù)Mqttnet信息來(lái)實(shí)現(xiàn)數(shù)據(jù)傳輸這個(gè)Mqttnettrace可以在服務(wù)端傳輸數(shù)據(jù)給客戶端。Trace的傳輸用來(lái)做服務(wù)器與客戶端傳輸信息記錄,包括該信息的發(fā)布源頭,以及進(jìn)程ID,日志的等級(jí)程度,有錯(cuò)誤不識(shí)別的消息也會(huì)實(shí)時(shí)顯示出來(lái)。 MqttNetTrace.TraceMessagePublished+=MqttNetTrace_TraceMessagePublished; privatestaticvoidMqttNetTrace_TraceMessagePublished(objectsender,MqttNetTraceMessagePublishedEventArgse) Console.WriteLine($"運(yùn)行ID:{e.ThreadId}數(shù)據(jù)來(lái)源:{e.Source}程序查看:{e.Level}訂閱消息:{e.Message}"); if(e.Exception!=null) Console.WriteLine(e.Exception);3.2語(yǔ)音識(shí)別模塊軟件設(shè)計(jì)3.2.1語(yǔ)音識(shí)別模塊工作過(guò)程整個(gè)系統(tǒng)工作數(shù)據(jù)傳輸過(guò)程如圖3.3所示。LD3320模塊在初始化后隨時(shí)收集聲源信息,并在收集后將信息存儲(chǔ)在寄存器中。MCU模塊讀取剛剛收集的聲源信息,并將其與預(yù)設(shè)的聲源進(jìn)行比較。如果它符合預(yù)設(shè)的聲源,它會(huì)產(chǎn)生一個(gè)中斷信號(hào),發(fā)送到ESP8266模塊,從而控制相應(yīng)家庭的開(kāi)關(guān)。如果不是預(yù)設(shè)信息,則屬于垃圾信息,并清空以繼續(xù)監(jiān)視和收集。MCUMCU讀取LD3320的寄存器LD3320音頻采樣并識(shí)別根據(jù)單片機(jī)里編好的程序進(jìn)行具體判斷ESP8266模塊結(jié)果存儲(chǔ)在LD3320中的寄存器中圖3.3語(yǔ)音識(shí)別模塊工作過(guò)程3.2.2語(yǔ)音識(shí)別模塊關(guān)鍵代碼3.2.2.1初始化代碼硬件初始化工作的時(shí)候很有可能會(huì)因?yàn)橐恍╇娐穯?wèn)題不能正常工作,解決辦法是多啟動(dòng)幾次,這里我用了5次啟動(dòng)流程。把一些識(shí)別的數(shù)值也要初始化設(shè)置。程序的具體識(shí)別計(jì)算方式來(lái)改寫(xiě)。初始化過(guò)程中一般都需要把一些詳細(xì)的參數(shù)給設(shè)置了。參數(shù)包括,語(yǔ)音識(shí)別工作的時(shí)間,讀取背景音的時(shí)間,同時(shí)靈敏度也要做修改,靈敏度越高識(shí)別的正確率就會(huì)相應(yīng)的降低。靈敏度指的是采集語(yǔ)音的距離,所以要多次調(diào)整,才能合適。ASR初始化voidLD_Init_ASR(void){ nLD_Mode=LD_MODE_ASR_RUN; LD_Init_Common(); GUI_DispDecAt(LD_ReadReg(0xBD),300,20,3); //text LD_WriteReg(0x17,0x48); LD3320_delay(10); LD_WriteReg(0x3C,0x80); GUI_DispDecAt(LD_ReadReg(0x3C),300,40,3); //1text LD_WriteReg(0x3E,0x07); GUI_DispDecAt(LD_ReadReg(0x3e),300,60,3); //text LD_WriteReg(0x38,0xff); GUI_DispDecAt(LD_ReadReg(0x38),300,80,3); //text LD_WriteReg(0x3A,0x07); GUI_DispDecAt(LD_ReadReg(0x3a),300,100,3); //text LD_WriteReg(0x40,0); GUI_DispDecAt(LD_ReadReg(0x40),300,120,3); //text LD_WriteReg(0x42,8); GUI_DispDecAt(LD_ReadReg(0x42),300,140,3); //text LD_WriteReg(0x44,0); GUI_DispDecAt(LD_ReadReg(0x44),300,160,3); //text LD_WriteReg(0x46,8); GUI_DispDecAt(LD_ReadReg(0x46),300,180,3); //text LD3320_delay(1);}uint8RunASR(void){ uint8i=0; uint8asrflag=0; for(i=0;i<5;i++) // { LD_AsrStart(); //初始化ASR LD3320_delay(100); if(LD_AsrAddFixed()==0) //添加關(guān)鍵詞語(yǔ)到LD3320芯片中 { LD_reset(); // 看門(mén)狗檢測(cè)到硬件采集聲源信息出現(xiàn)錯(cuò)誤,硬件重新供電復(fù)位 LD3320_delay(50); // continue; } LD3320_delay(10); if(LD_AsrRun()==0) { LD_reset(); // 硬件出現(xiàn)致命錯(cuò)誤,系統(tǒng)重新啟動(dòng) LD3320_delay(50); // 并從初始化開(kāi)始重新ASR識(shí)別流程 continue; } asrflag=1; break; // } returnasrflag;}3.2.2.2聲音采集代碼語(yǔ)音識(shí)別模塊在對(duì)聲源識(shí)別之后將數(shù)據(jù)結(jié)果傳輸?shù)接?jì)算機(jī)的控制系統(tǒng),把采集的數(shù)據(jù)結(jié)果加以計(jì)算處理,得到的命令將通過(guò)中斷傳輸?shù)姆绞竭M(jìn)行命令的傳輸或者接收。把寄存器中存儲(chǔ)的識(shí)別結(jié)果與預(yù)設(shè)關(guān)鍵字作對(duì)比。通過(guò)定義字符串存放在MCU中,然后一起把程序下載到單片機(jī)中。采集過(guò)程如圖3.4所示:設(shè)定編號(hào)設(shè)定編號(hào)等待芯片空閑將字符串中的字符按順序?qū)懭雽⒆址L(zhǎng)度寫(xiě)入寄存器B9向寄存器B2寫(xiě)入FF循環(huán)結(jié)束?結(jié)束開(kāi)始NY圖3.4聲音采集流程圖 uint8nAsrResCount=0; ucRegVal=LD_ReadReg(0x2B); if(nLD_Mode==LD_MODE_ASR_RUN) { //GUI_DispDecAt(2,20,70,5); //text //通過(guò)語(yǔ)音識(shí)別結(jié)果發(fā)出的中斷 //(當(dāng)接收到聲音輸入,無(wú)論如何都會(huì)有中斷信號(hào)產(chǎn)生) LD_WriteReg(0x29,0); LD_WriteReg(0x02,0) GUI_DispDecAt(ucRegVal,200,100,3); GUI_DispDecAt(LD_ReadReg(0xb2),200,120,3); GUI_DispDecAt(LD_ReadReg(0xbf),200,140,3); if((ucRegVal&0x10)&&LD_ReadReg(0xb2)==0x21&&LD_ReadReg(0xbf)==0x35) { GUI_DispDecAt(3,20,90,5); //text if(nAsrResCount>0&&nAsrResCount<=4) { } } else { GUI_DispDecAt(4,20,100,5); //不會(huì)執(zhí)行識(shí)別 } LD_WriteReg(0x2b,0); //這里開(kāi)關(guān)設(shè)置為空閑 } 3.2.2.3聲音識(shí)別過(guò)程要控制整個(gè)語(yǔ)音采集識(shí)別系統(tǒng),首先要通過(guò)設(shè)置數(shù)據(jù)的存儲(chǔ)方式。通過(guò)定義的系統(tǒng)變量來(lái)實(shí)現(xiàn)對(duì)整個(gè)處理過(guò)程的控制。識(shí)別過(guò)程如圖3.5所示:LD_RUNING狀態(tài),這些命令需要在編程的時(shí)候提前加入到LD3320啟動(dòng)識(shí)別之前。定義語(yǔ)句nAsrStatus=LD_ASR_RUNING;這個(gè)地方需要聲明設(shè)置一個(gè)全局變量。把這一局程序放置在在LD3320正式啟動(dòng)開(kāi)始工作之前:將寄存器29和02清零將寄存器29和02清零檢查寄存B2,2B,是否正常寄存器BA的值在[1..4]之間?最佳識(shí)別結(jié)果在寄存器C5,如有必要可獲取其他備選結(jié)果。結(jié)束運(yùn)算結(jié)果是無(wú)法識(shí)別開(kāi)始圖3.5聲源識(shí)別流程圖nAsrStatus=LD_ASR_RUNING;LD_AsrRun();在寫(xiě)入關(guān)鍵字的時(shí)候需要注意一些事項(xiàng),每個(gè)關(guān)鍵字都需要指定一個(gè)編號(hào),如表3.6所示,但是不同的識(shí)別關(guān)鍵字是可以用同一個(gè)編號(hào)的,但是相同的編號(hào)一定會(huì)有相同的結(jié)果輸出。LD3320語(yǔ)音識(shí)別芯片,關(guān)鍵字的條數(shù)最多只能寫(xiě)入50條,而且寫(xiě)入的關(guān)鍵字必須是普通話,否則不能識(shí)別。寫(xiě)的關(guān)鍵指令如果是多個(gè)拼音,拼音之間必須要有占位,另外關(guān)鍵字的總占位不能超過(guò)256個(gè)。在聲音的采集過(guò)程中,只要咪頭采集到聲音,就算是不能正確識(shí)別或者識(shí)別成功,系統(tǒng)都會(huì)生成一個(gè)中斷信號(hào)。然后把聲音信息存儲(chǔ)到寄存器中,處理器再根據(jù)生成的中斷信號(hào)與寄存器中的預(yù)設(shè)關(guān)鍵字拼音作分析判斷。通過(guò)提取寄存器中的值,就可以知道有哪些相似的預(yù)備答案,然后在進(jìn)一步挑選出與聲源最為相似的關(guān)鍵字,做出相應(yīng)狀態(tài)切換。表3.6編號(hào)表編號(hào)字符串1開(kāi)燈1開(kāi)白燈3打開(kāi)紅燈7關(guān)紅燈8打開(kāi)風(fēng)扇4系統(tǒng)調(diào)試4.1語(yǔ)音識(shí)別準(zhǔn)確度調(diào)試語(yǔ)音識(shí)別調(diào)試時(shí)用不同人的聲音,非特定人聲代表不同的人聲,分別在安靜環(huán)境和吵鬧環(huán)境下對(duì)系統(tǒng)進(jìn)行測(cè)試。調(diào)試結(jié)果如表4.1和圖4.1所示表4.1語(yǔ)音識(shí)別精準(zhǔn)度調(diào)試識(shí)別環(huán)境次數(shù)語(yǔ)句安靜吵鬧非特定人1非特定人2非特定人3非特定人1非特定人2非特定人3開(kāi)燈19/2018/2016/2016/2015/2016/20關(guān)燈20/2017/2017/2015/2014/2014/20打開(kāi)風(fēng)扇20/2017/2019/2017/2016/2015/20關(guān)閉風(fēng)扇18/2018/2019/2015/2015/2016/20打開(kāi)紅燈19/2018/2018/2015/2014/2015/20關(guān)紅燈17/2016/2018/2016/2012/2014/20正確率94.16%86.67%85.0%78.33%72.5%75.0%圖4.1語(yǔ)音識(shí)別精準(zhǔn)度調(diào)試解決辦法:(1)通過(guò)在程序中增加無(wú)用關(guān)鍵字來(lái)降低錯(cuò)誤。在程序預(yù)設(shè)關(guān)鍵字的時(shí)候可以通過(guò)加入另外一些其他容易和關(guān)鍵字混淆的詞語(yǔ)或者句子,當(dāng)語(yǔ)音識(shí)別時(shí),如果識(shí)別到無(wú)用垃圾詞匯則不執(zhí)行任何動(dòng)作,這樣就可以大幅度吸收錯(cuò)誤的識(shí)別結(jié)果,增加正確率。比如在本課題設(shè)計(jì)中:需要識(shí)別的關(guān)鍵詞語(yǔ)是4條,“打開(kāi)”,“關(guān)閉”,“打開(kāi)風(fēng)扇”,“關(guān)閉風(fēng)扇”,“打開(kāi)紅燈”,“關(guān)閉紅燈”。在把這6個(gè)關(guān)鍵詞語(yǔ)在程序中寫(xiě)入D3320后,可以再另外設(shè)置10~30個(gè)詞語(yǔ)進(jìn)LD3320,比如“開(kāi)的”,“卡卡”,“阿阿阿”,“嗚嗚嗚”等等。(2)使用口令觸發(fā)識(shí)別方式。在實(shí)際應(yīng)用中,肯定是希望識(shí)別正確率越高越好,但是肯定不可能通過(guò)一個(gè)按鍵來(lái)觸發(fā),太繁瑣。在程序編寫(xiě)時(shí),通過(guò)定義不同的短語(yǔ)來(lái)做為觸發(fā)口令方式。因?yàn)橐粋€(gè)家居語(yǔ)音控制系統(tǒng)肯定不是僅僅控制一個(gè)家電。這樣的話,比如要控制LED燈,先把整個(gè)系統(tǒng)設(shè)置為循環(huán)識(shí)別模式,先喊一句“打開(kāi)燈泡”,這樣一個(gè)提示音接下里的任何聲音識(shí)別結(jié)果都是對(duì)LED等來(lái)進(jìn)行操作,就算有聲源和和別的家電命令關(guān)鍵字相匹配也不會(huì)有任何操作。通過(guò)這樣的方式系統(tǒng)在識(shí)別聲源信息的時(shí)候就會(huì)降低很多錯(cuò)誤。然后再喊一句退出LED,則系統(tǒng)再次進(jìn)入循環(huán)模式,再次等待有其他命令的傳出。通過(guò)采用這種口令方式會(huì)大大提高了正確識(shí)別率,但同時(shí)也增加了用戶的體驗(yàn),因?yàn)橐尤雱e的詞語(yǔ),會(huì)影響系統(tǒng)的運(yùn)行速度。4.2遠(yuǎn)程監(jiān)控調(diào)試遠(yuǎn)程控制的延時(shí)主要取決于網(wǎng)絡(luò)狀況,設(shè)備幾乎沒(méi)有影響,設(shè)備在剛上電時(shí)WiFi正在連接,所以延時(shí)會(huì)高一點(diǎn),另一方面也與物聯(lián)網(wǎng)云平臺(tái)有關(guān)系。調(diào)試結(jié)果如表4.4表4.2延時(shí)測(cè)試結(jié)果
語(yǔ)句執(zhí)行次數(shù)延時(shí)開(kāi)燈20/200.5s關(guān)燈19/200.1s打開(kāi)風(fēng)扇20/200.1s關(guān)閉風(fēng)扇20/200.1s打開(kāi)紅燈19
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)學(xué)教師工作計(jì)劃
- 中學(xué)歷史教學(xué)工作計(jì)劃范本
- 2025年度大學(xué)生學(xué)習(xí)個(gè)人工作計(jì)劃范文
- 2025年音樂(lè)教研員個(gè)人工作計(jì)劃范例
- 幼兒園后勤工作計(jì)劃024年
- 醫(yī)院弱電系統(tǒng)工程施工勞動(dòng)力進(jìn)場(chǎng)與需求計(jì)劃
- 小學(xué)第一學(xué)期體育教學(xué)工作計(jì)劃
- 2025員工個(gè)人年終工作總結(jié)及計(jì)劃
- 《塑膠模具知識(shí)》課件
- 《塑料模具與設(shè)備》課件
- GB/T 45008-2024稀土熱障涂層材料鋯酸釓鐿粉末
- 經(jīng)理與領(lǐng)導(dǎo)人員管理制度
- 全國(guó)第三屆職業(yè)技能大賽(數(shù)字孿生應(yīng)用技術(shù))選拔賽理論考試題庫(kù)(含答案)
- 2024年湖北省襄陽(yáng)市高新區(qū)招聘46人歷年管理單位遴選500模擬題附帶答案詳解
- 物理實(shí)驗(yàn)知到智慧樹(shù)章節(jié)測(cè)試課后答案2024年秋沈陽(yáng)理工大學(xué)
- 高血壓課件教學(xué)課件
- 孕期常見(jiàn)癥狀及處理課件
- 應(yīng)用數(shù)理統(tǒng)計(jì)知到智慧樹(shù)章節(jié)測(cè)試課后答案2024年秋中國(guó)農(nóng)業(yè)大學(xué)
- 《2025酒店預(yù)算的進(jìn)與退》
- 肺癌的介入治療護(hù)理
- 民辦學(xué)校教職工入職背景審查制度
評(píng)論
0/150
提交評(píng)論