王文發(fā) 張寧 尤國強
摘要:基于語音識別的智能家電控制系統(tǒng)的主控制器是MCS-51單片機,為了識別語音信號,采取LD3320語音識別模塊,電視機、電冰箱等家用電器的控制是單片機識別結(jié)果后通過無線方式傳輸?shù)狡渌麊纹瑱C模塊進行控制,從而達到家居智能化。該系統(tǒng)能夠幫助老人及行動能力障礙人士的日常生活,它的優(yōu)點在于語音識別迅速準確,是對家電使用的一次革新。
關(guān)鍵詞:智能家居;單片機;LD3320;語音識別
中圖分類號:TP311? ? 文獻標識碼:A
文章編號:1009-3044(2020)23-0160-02
1 引言
早在20世紀中葉,智能家居的概念就被提出來了,可惜一直沒有實現(xiàn),直到20世紀80年代中期,才出現(xiàn)了第一棟真正意義上的智能建筑,從此引起了智能家居的發(fā)展浪潮,并一直持續(xù)至今。智能家居系統(tǒng)不僅可以讓家中的各類家電設(shè)備具有“智能”,它還可以將居家生活中的安全舒適、科學(xué)環(huán)保、健康節(jié)能等概念聯(lián)系起來,以住宅為基站,采用仿人智能傳感器布局、無線網(wǎng)絡(luò)通信、遠程控制等技術(shù),將家庭中的各種設(shè)備有機的建立起網(wǎng)絡(luò)關(guān)系和智能控制功能,從而為人們提供了一種全新的、舒適便捷的家居生活方式。
2 語音識別技術(shù)的發(fā)展歷史和應(yīng)用領(lǐng)域
第二次工業(yè)革命后,機器的使用不但讓人類進一步從繁重的體力工作中解放出來,而且還大大提高了生產(chǎn)勞動的工作效率。但當時機器執(zhí)行各種任務(wù)時必須受到人的操控,機器還不具備智能化自動運行的功能。隨著計算機硬件設(shè)備的快速發(fā)展和軟件技術(shù)的提高,機器逐漸從一個只能服從人類指揮的配角,變?yōu)榫哂腥藱C交互功能甚至具有智能判斷功能的主角。為了讓機器能夠理解人類的語言指令,具備仿人化的智能功能,從而更有效地進行反饋與控制,因此,語音識別技術(shù)被提了出來,該技術(shù)將音頻指令轉(zhuǎn)化為信號指令,從而讓機器對整個系統(tǒng)做出反應(yīng)[1]。到了今天,經(jīng)過50多年的探索與創(chuàng)新,語音識別技術(shù)在需要電子設(shè)備的各個方面都得到了應(yīng)用,大到載人航天、工業(yè)生產(chǎn),小到家用電器、兒童玩具,語音識別系統(tǒng)都做出了巨大的貢獻[2]。從識別一個指令的語音識別系統(tǒng)到如今各種各樣的能夠識別復(fù)雜語音指令的智能語音識別系統(tǒng),語音識別技術(shù)的發(fā)展遠超人們的預(yù)期,已達到了實用化的發(fā)展階段。
智能語音識別系統(tǒng)由特定人聲到非特定人聲、少量詞匯到大量詞匯、單一發(fā)音到連續(xù)發(fā)音這些過程的突破,研究者付出了巨大的心血,做出了卓越的貢獻?,F(xiàn)如今計算機網(wǎng)絡(luò)、智能手機、家電設(shè)備等可以應(yīng)用語音識別的對象已為語音識別技術(shù)提供了充分的語音和文字方面的數(shù)據(jù)庫來源,它們?yōu)檎Z音識別模型的建立和語義識別訓(xùn)練提供了廣泛而可靠的數(shù)據(jù)來源[3],由此可見,語音識別技術(shù)未來可期。
3 智能語音家電控制系統(tǒng)的整體設(shè)計方案
3.1系統(tǒng)整體結(jié)構(gòu)圖
智能語音家電控制系統(tǒng)的整體設(shè)計框圖如圖1所示。其中,電源模塊、LD3320芯片語音識別模塊、繼電器模塊和單片機控制核心模塊等構(gòu)成了系統(tǒng)的硬件部分。LD3320芯片用來做語音識別模塊部分,MCS-51單片機用來做系統(tǒng)的整體控制以及對各個功能模塊進行初始化設(shè)定。LD3320芯片語音識別模塊由聲音傳感器(麥克風)轉(zhuǎn)化來的電信號進行語音識別處理,并將結(jié)果傳輸給單片機,單片機再做出反應(yīng)并執(zhí)行與語音指令相匹配的具體控制動作。當接收到的語音指令無法與指令庫中的指令成功匹配時,則認為此次語音識別任務(wù)失敗,LD3320芯片語音識別模塊將放棄本次識別任務(wù),轉(zhuǎn)而由單片機控制,跳轉(zhuǎn)到下一個識別程序,等待執(zhí)行新的語音識別任務(wù)。
3.2 LD3320語音識別模塊
LD3320語音識別模塊專注于語音識別技術(shù),該芯片總線支持SPI并行數(shù)據(jù)傳輸方式,并配有非特定語音識別硬件單元、片載咪頭和內(nèi)置有源晶振,它可以方便地與各種外設(shè)和控制芯片連接,易于實現(xiàn)從語音識別到指令輸出的人機交互功能,且該芯片在設(shè)計方面還側(cè)重于高效和節(jié)能。
3.2.1 LD3320語音識別芯片的主要特征
LD3320語音識別芯片采用的是非特定人語音識別技術(shù)。傳統(tǒng)的特定人語音識別技術(shù)只能識別一個人發(fā)出的語音指令,且識別控制的前提還需要對特定人聲進行反復(fù)的錄音與練習(xí)?,F(xiàn)在科技發(fā)展速度非???,LD3320芯片的非特定人語音識別技術(shù)已經(jīng)可以做到不分年齡、性別和音調(diào)特征,只要收到的語音信息能夠與語音識別庫中的指令匹配,就可以根據(jù)指令做出相應(yīng)的輸出反應(yīng),其識別效率高達95%。在不需要任何外接輔助設(shè)備、不需額外Flash、RAM存儲單元、不需AD轉(zhuǎn)換單元的條件下,LD3320芯片實現(xiàn)單芯片語音識別功能,具有硬件體積小,應(yīng)用簡便和識別準確的顯著優(yōu)點。
LD3320芯片語音指令庫中的語音指令是動態(tài)可編輯、修改的。但在語音識別的過程中,可能存在多種不同的識別問題,比如對于同一種語音指令,不同的人可能有多種不同的語句表達形式,又比如同一個語句,說話人可能會有不同的表述口音或不同的表述語氣,這都會影響最后的識別效果。LD3320芯片在語音識別過程中,會自動遍歷匹配語音指令庫中的關(guān)鍵詞列表,只要用戶語音中包含關(guān)鍵詞列表中的某個關(guān)鍵詞,就會給出相對應(yīng)的識別結(jié)果,而且不需要整句匹配或語音語調(diào)匹配。錄入到LD3320芯片語音指令庫中的關(guān)鍵詞可以是名字、操作指令或短句等任意漢字字符串的組合。在芯片的使用說明上,每個關(guān)鍵詞的額定最大包含漢字個數(shù)是30個,但從實際使用情況來看,當語句中包含8個以上的漢字時,識別效果就會大打折扣,此時識別的準確度將難以保證。另外,當用戶說話中出現(xiàn)停頓、咬字不清、說多字、說漏字、單字重復(fù)等情況時,芯片的語音識別效果都會受到不同程度的影響,并可能最終得到錯誤的語音識別結(jié)果。因此,在LD3320芯片的使用中,建議不要將其語音指令庫中的關(guān)鍵詞設(shè)置過長,且為了能夠準確識別語音指令,用戶發(fā)音要準確,以保證得到正確無誤的語音識別結(jié)果。
3.2.2 LD3320語音識別模塊使用技巧
為了避免嘈雜的環(huán)境或者其他特別的應(yīng)用場合對語音識別系統(tǒng)造成干擾,以至于單片機控制設(shè)備做出錯誤的動作,本系統(tǒng)設(shè)計采用了“用戶口令觸發(fā)模式”來提高抗干擾能力。
語音識別口令的處理過程如圖2所示?!坝脩艨诹钣|發(fā)模式”在程序中設(shè)置一個短句當成用戶發(fā)布命令的觸發(fā)口令,觸發(fā)口令可以設(shè)定為任何用戶喜歡的短句,如“小聰”“小精靈”等等。以下說明以“聰聰”為例。如果在嘈雜的環(huán)境里,噪音過多,系統(tǒng)會啟動“循環(huán)識別處理”模式,在此模式下LD3320語音識別芯片會自動識別觸發(fā)口令“聰聰”和過濾其他外界干擾噪音產(chǎn)生的錯誤語音信號。當進入語音識別程序后,LD3320芯片會等待接受外部語音信號,一旦檢測接收到用戶說出的語音信號,則程序會啟動“觸發(fā)模式”,然后將接收到的語音信號作為一級指令,與芯片語音指令庫中的關(guān)鍵詞進行匹配,若匹配成功則LD3320上的LED指示燈將閃爍2秒鐘。接下來,語音識別程序進入二級指令的檢測接受模式,此時,如果LD3320又接收到了用戶發(fā)出的語音信號(如電風扇、空調(diào)、電視機、拉開窗簾等語音指令),LD3320會開始再次識別匹配關(guān)鍵詞,識別成功后將識別指令的結(jié)果傳給單片機,單片機會控制相應(yīng)設(shè)備做出與口令相同的指令。
如果將所有語音指令不分層次進行一次性識別,那么外部干擾噪聲,或由于指令過長導(dǎo)致用戶表述不清楚等問題將可能讓識別的準確度下降。另外,當識別不準確的情況發(fā)生后,LD3320可能會進入循環(huán)識別的狀態(tài),這將會影響整體識別程序執(zhí)行的效率。因此,將語音指令分為二級層次進行識別控制,將能夠得到更穩(wěn)定和更準確的語音識別效果,從而讓用戶更易于掌握語音識別芯片的用法,提高人機交互的效率。
下面再介紹幾個本文設(shè)計的智能語音家電識別系統(tǒng)的應(yīng)用技巧。
1)巧妙運用關(guān)鍵詞語的ID,提高識別效率
每個用戶所處的地區(qū)可能不同,并且發(fā)音習(xí)慣不同,對特定詞語的發(fā)音也會不同,這樣ID的作用就發(fā)揮出來了,我們可以在程序中先設(shè)定一個語音指令的拼音串ID關(guān)鍵詞,該ID關(guān)鍵詞可以對應(yīng)多個不同的語音指令。對于ID關(guān)鍵詞的使用,當用戶說出語音指令后,如果LD3320芯片識別出該語音指令對應(yīng)著某個ID關(guān)鍵詞,則LD3320將會把預(yù)設(shè)好的ID作為識別結(jié)果輸出到單片機中。ID的設(shè)置很簡單,不需要連續(xù),編程也比較容易。同一個ID將對應(yīng)不同的關(guān)鍵詞匯,比如可以將“土豆”“馬鈴薯”和“洋芋”的識別結(jié)果均映射到同一個ID關(guān)鍵詞上,這樣當用戶說出這三個詞匯中的任意一個時,LD3320的識別結(jié)果都會是相同的ID指令。
2)利用50項語音識別候選語句,為ID關(guān)鍵詞設(shè)置多個發(fā)音備選項
不同用戶在說出相同指令時,情緒、口音、語氣、習(xí)慣等都是不一樣的,用戶不會每次發(fā)出指令時都說出一樣的詞語,比如“拉開窗簾”就有很多說法“拉開簾子”“把簾子打開”“把窗簾升起來”等,所以用戶就需要把這些自己的習(xí)慣考慮周全設(shè)計到程序中。
LD3320芯片為一個關(guān)鍵詞提供了50項動態(tài)可編輯的關(guān)鍵詞識別備選條目,據(jù)此為一個關(guān)鍵詞設(shè)置多條用戶發(fā)音備選指令,將這些語音備選項寫入LD3320中,將能夠提高語音識別的智能程度,用戶在發(fā)出指令時會更加輕松自由,并且程序的識別效率也會大大提高,進一步提高了人機交互的智能度。
3)用戶發(fā)出語音指令后,識別等待時間的說明
當用戶發(fā)出語音指令后,LD3320芯片需要大約12秒鐘去執(zhí)行識別判斷程序。在此過程中,程序首先會檢測用戶語音指令是否已經(jīng)全部發(fā)送完畢,如果在檢測到語音指令后,出現(xiàn)不間斷的連續(xù)噪聲,則LD3320會認為用戶語音指令已接收完畢,接下來再去執(zhí)行識別判斷指令的相應(yīng)程序。
4)使用過程中應(yīng)注意的問題
(1)用戶的發(fā)音快慢、大小、口音以及發(fā)音是否清晰,發(fā)音是否清晰對系統(tǒng)能不能做出準確的反應(yīng)起主導(dǎo)地位;
(2)用戶使用時噪音、雜音都會造成一定的干擾;
(3)距離麥克風的位置遠近以及接收語音的外設(shè)(麥克風等)質(zhì)量等;
(4)語音識別列表中各詞匯之間的相似程度。
4 智能語音家電控制系統(tǒng)的軟件設(shè)計
智能語音家電控制系統(tǒng)的軟件設(shè)計流程主要包括:單片機上電初始化;LD3320芯片初始化;一級語音指令的識別與處理;二級語音指令的識別與處理;單片機依據(jù)語音識別結(jié)果執(zhí)行外設(shè)控制命令等。
4.1系統(tǒng)程序流程圖
圖3為語音識別程序流程圖。
4.2具體軟件功能模塊介紹
(1)單片機初始化函數(shù):void MCU_initial()
函數(shù)功能:運行單片機初始化子程序。
(2)外部中斷處理函數(shù):void INT_0() interrupt 0
函數(shù)功能:LD3320接收到語音指令后觸發(fā)外部中斷,單片機執(zhí)行中斷處理程序。
這里需要說明的是,當LD3320接收到語音指令后,將觸發(fā)單片機的外部中斷,進入上面的中斷程序,該中斷程序執(zhí)行語音指令查找匹配任務(wù),如果得到匹配的關(guān)鍵詞結(jié)果,則將該結(jié)果賦給一個全局變量;反之如果沒有找到匹配結(jié)果,則跳出中斷程序,等待下一次的中斷到來。
(3)識別結(jié)果執(zhí)行函數(shù):void result_do(unsigned char data)
函數(shù)功能:當上面的中斷函數(shù)成功識別出匹配的關(guān)鍵詞結(jié)果后,單片機將執(zhí)行與識別結(jié)果相對應(yīng)控制函數(shù)。
(4)LD3320芯片復(fù)位函數(shù):void LD3320_reset()
函數(shù)功能:對LD3320芯片進行復(fù)位操作。
(5)LD3320芯片初始化函數(shù):void LD3320_initial()
函數(shù)功能:對LD3320芯片進行初始化操作。