劉傳玉 熊偉麗 呂全彬 劉正茂 林玉惠
(1.江南大學(xué)物聯(lián)網(wǎng)工程學(xué)院江蘇,江蘇無錫 214122;2.廣東天際電器股份有限公司,廣東汕頭 515000;3.汕頭市天悅科技創(chuàng)新研究院有限公司,廣東汕頭 515000)
隨著新興產(chǎn)業(yè)發(fā)展,各種新技術(shù)的產(chǎn)生,人們對于生活的選擇也具有更多的可能,電飯煲作為一種家庭必備的生活電器正在向集煮飯、煲湯、保溫于一體的方向發(fā)展[1-2],雖然現(xiàn)在的電飯煲有各種各樣的功能,但是受控制面板面積的影響,實現(xiàn)復(fù)雜功能的按鍵操作起來比較繁瑣,而且人們對電器的交互功能以及智能化水平的要求越來越高,這個時候就體現(xiàn)了語音控制的優(yōu)越性。近些年來,語音識別準確率和處理能力不斷上升[3],實現(xiàn)了從單個詞的識別到關(guān)鍵詞的識別,以及到連續(xù)時間內(nèi)的語音識別的飛躍,進而語音識別的應(yīng)用也不斷增加,給人們的生活帶來方便和更多的選擇。
本文設(shè)計的一種帶語音識別功能的智能電飯煲控制系統(tǒng),利用語音識別技術(shù),一方面可以避免功能復(fù)雜的按鍵,另一方面可以提升電飯煲的交互功能。該控制系統(tǒng)通過語音芯片識別用戶發(fā)出的指令,在其內(nèi)部對語音信號進行處理,然后將處理后的信號傳輸給單片機,單片機發(fā)出控制指令和文本信號傳輸給語音合成芯片,語音合成模塊再把接收到的文本信號合成語音信號傳輸給功率放大器,經(jīng)過放大后的語音信號再傳輸給喇叭播放,達到人機交互的效果,更加方便于一些特殊人群及場景中的應(yīng)用。
智能語音電飯煲控制系統(tǒng)主要由以下幾個部分組成:語音識別模塊、單片機模塊、電源模塊、語音合成模塊、功率放大器以及喇叭。該系統(tǒng)所采用的識別方案是本地語音識別,其中包括語音信號采集、預(yù)處理、特征提取、匹配搜索等主要步驟。此系統(tǒng)在不占用系統(tǒng)的大量計算資源和儲存空間的前提下,可以保證識別速度盡可能快,而且控制過程可以在本地實現(xiàn)。
系統(tǒng)的整體結(jié)構(gòu)圖如圖1所示。
圖1 系統(tǒng)整體結(jié)構(gòu)圖Fig.1 The overall structure of the system
控制指令通過麥克風(fēng)進行采集,然后將采集來的信號傳輸給語音識別模塊進行詞條搜索與選取,再將選取到的詞條所對應(yīng)的信號傳輸給單片機,單片機接收到信號一方面做出針對于電飯煲所涉及的相應(yīng)的控制動作,另一方面將信號傳輸給語音輸出模塊進行相應(yīng)的語音回復(fù),達到人機交互的目的。如果在進行詞條搜索時,沒有搜索到詞條,也就是匹配不成功時,系統(tǒng)就會認定當前語音識別不成功,會返回到語音采集的狀態(tài),此時需要再次進行語音采集和識別,直到識別到正確的能夠與語音庫相匹配的詞條為止。
STM32F103C8T6是一款基于ARM Cortex-M內(nèi)核STM32系列的32位的微控制器,程序存儲器容量是64KB,采用3.3V電壓供電[4]。單片機中包含中央處理器(CPU)、程序存儲器(Flash)、數(shù)據(jù)存儲器(SRAM)、定時/計數(shù)器、UART串口、I/O接口及片內(nèi)RC振蕩器和外部晶體振蕩電路等模塊[5]。此單片機相當于一個片上系統(tǒng),因為其功能豐富,含有多種單元模塊,可以實現(xiàn)數(shù)據(jù)采集和控制。
LD3320芯片是一款專門用于語音識別的芯片。為了使芯片使用起來更方便、節(jié)能和高效,不需要再外接其他的輔助芯片,因此在該芯片的基礎(chǔ)上集成了聲音處理器,包括識別、轉(zhuǎn)換和處理,例如數(shù)模、模數(shù)轉(zhuǎn)換器,也集成了一些外部電路,例如語音輸出接口、麥克風(fēng)接口等。集成后的芯片功能更加全面,不但可以實現(xiàn)語音識別、語音處理、語音操控、人機交互等功能,而且芯片具有的五十條關(guān)鍵詞語列表是可以按照自身需要來進行任意修改的。
先是麥克風(fēng)完成對語音信號的采集,接著對采集到的語音信號進行頻譜分析,然后對其進行特征提取,將提取后的特征與芯片中的詞條進行對比,最后會把評分第一的詞條當作識別成功的結(jié)果輸出。
語音識別芯片有兩種識別情況:其一是提前設(shè)定一個時間,該芯片能夠?qū)Υ藭r間內(nèi)輸入的語音數(shù)據(jù)進行算法分析、特征提取和詞條匹配,最后輸出識別結(jié)果。但是一旦超過預(yù)定時間,芯片則會中斷語音識別通道,根據(jù)設(shè)定的時間段內(nèi)所采集到的語音信號進行運算分析,輸出識別結(jié)果。其二是語音芯片自動識別檢測外部聲音是否停止輸入,通過運用端點檢測VAD技術(shù)檢測外部輸入的語音數(shù)據(jù),如果檢測到外部語音輸入已經(jīng)停止,則會對該時間段內(nèi)輸入的語音數(shù)據(jù)進行算法分析,最終輸出一個識別結(jié)果。
語音輸出模塊主要由語音合成模塊、功放模塊和喇叭組成。控制器通過串口向語音輸出模塊發(fā)送指令,控制器發(fā)出控制命令與指令對語音合成芯片進行控制,控制器和語音輸出模塊的連接圖如圖2所示。
圖2 語音輸出模塊與控制器連接圖Fig.2 Connection diagram of voice output module and controller
SYN6288語音合成芯片支持任意的中文文本和英文字母的合成,單次合成具有較高的字節(jié)數(shù),遇到英文單詞時按字母方式發(fā)音,可以采用GB2312、GBK、BIG5和UNICODE四種編碼方式,可支持多種通訊波特率其中包括:9600bps,19200bps,38400bps。同時芯片具有很強的文本智能分析與處理能力,對于一些常見的數(shù)字文本、時間文本、符號文本等格式的信號,芯片能夠?qū)ζ渥龀稣_的識別、處理與合成,所依據(jù)的規(guī)則就是芯片內(nèi)部存在的文本匹配規(guī)則,并且,該芯片對于多音字和中文姓氏有較好的處理方法,當帶有多音字的文本輸入進來時,芯片可以根據(jù)文本匹配規(guī)則判斷多音字的正確讀法并合成正確的讀音。在對芯片進行控制的時候,可以對其進行文本合成控制,也可以在其合成文本的時候?qū)ζ渚帉憜为毜耐V刮谋竞铣苫蛘邥和N谋竞铣傻某绦?芯片可以支持多種控制命令,包括狀態(tài)查詢和改寫波特率等。
在進行語音識別之前要先進行初始化,初始化之后輸入語音信號,系統(tǒng)則開始對輸入的信號進行識別,識別結(jié)果產(chǎn)生的標志是寄存器B2H的值為21H,識別成功后進行判斷,判斷其指令是否為一級指令,若是一級指令,則執(zhí)行一級口令動作;反之,若不是一級口令,則系統(tǒng)識別不成功,不會進行下一步動作,需要操作者繼續(xù)發(fā)出正確的口令。當識別為一級口令后,操作者若想進行第二步操作,只需再對其發(fā)出控制語句,系統(tǒng)則繼續(xù)識別并判斷是否為二級口令,若是二級口令則執(zhí)行二級口令動作;反之,則識別不成功,返回語音輸入,需要操作者繼續(xù)向其發(fā)出正確的口令。值得一提的是,在進行語音識別的時候,最先要準備的就是打開中斷。
系統(tǒng)測試時,借助OLED顯示屏來觀測是否達到控制目標。顯示屏顯示的每一個編碼都有相對應(yīng)的單片機動作。
首先,該系統(tǒng)有一個喚醒指令“小天,你好”,當系統(tǒng)識別到喚醒指令時,會在內(nèi)部進行詞條搜索,選擇正確的識別語句,識別成功時,顯示屏顯示CODE8,此條語句的回復(fù)語為“你好,主人”。每條正確的詞條都會設(shè)計一條系統(tǒng)回復(fù)語,當系統(tǒng)回復(fù)的語句是正確語句時表示系統(tǒng)識別成功。再進一步對它施加控制命令。經(jīng)測試,其他的指令均對應(yīng)相應(yīng)的提示音以及OLED顯示編碼,達到預(yù)計的控制效果。
經(jīng)過實驗測試,本文提出的一種基于語音識別技術(shù)的智能電飯煲控制系統(tǒng),利用語音識別和語音合成,不僅可以達到對電飯煲基本功能的控制,而且可以提高電飯煲的智能交互功能。該系統(tǒng)操作方便,在很多情況下可以滿足人們對智能化的需求,可以提供給人們更加便利的家庭生活。此外,該系統(tǒng)設(shè)計時可以設(shè)計多種口令對應(yīng)于一個詞條的工作模式,這種模式可以提高語音識別的范圍性和準確度,讓人機交互更加完善、更加智能、更加精確。同時該系統(tǒng)功能較強,操作簡便,系統(tǒng)較穩(wěn)定,有一定的實際應(yīng)用價值。