葉成彬
(華南理工大學廣州學院 電氣工程學院,廣州 510800)
對于人的感官,有視覺、觸覺、聽覺、嗅覺等感知,各個感官是人類獲取信息的重要途徑。伴隨著人類科技的高速發(fā)展,將許多感官應用到仿生技術和機器人技術等智能化技術上的夢想已逐步成為現(xiàn)實。目前,谷歌公司已將語音識別及搜索功能集成到Android手機系統(tǒng)和Chrome瀏覽器當中,蘋果公司發(fā)布的手機系統(tǒng)均集成siri語音控制功能,語音識別已從實用變成娛樂。在語音識別技術越來越成熟的大環(huán)境下,將語音識別技術應用于各類智能化系統(tǒng)中,可以充分利用人機交互技術帶來的便利性,提高使用者的工作效率[1-3]。
針對電子元器件種類多而雜,如何在碩大的元器件柜中快速查找所需電子元件,這一問題常常困擾著眾多電子愛好者。為此設計了一款語音識別電子元器件柜。它以STM32F1單片機作為主控芯片,當LD3320語音識別模塊接收到使用者所說的電子元器件的名稱之后立即進行識別,并把識別結(jié)果通過串行通信端口傳送至STM32F1單片機,單片機根據(jù)識別結(jié)果控制相應的電子元器件位置的LED指示燈的亮滅及發(fā)出提示音,以節(jié)省了使用者查找所需電子元器件的時間。
本系統(tǒng)基于對LD3320芯片的研究,結(jié)合STM32F1單片機、OLED顯示屏、LED顯示模塊等硬件設備,實現(xiàn)識別非特定人說出的電子元器件名稱,并根據(jù)識別結(jié)果點亮該電子元器件相應位置的LED燈,或在搜索不到該元器件時需在OLED屏幕顯示提示文字并發(fā)出相應的提示音。電子元器件柜共有24個小柜子,每個小柜子旁邊都安裝了紅色LED燈,并貼有相應的元器件名稱標簽。系統(tǒng)方案如圖1所示。
圖1 系統(tǒng)方案Fig.1 Block diagram of system
系統(tǒng)硬件設計主要由語音識別模塊負責接收并識別非特定人聲,并把識別結(jié)果通過串行通信端口發(fā)送至STM32F1單片機,單片機接收語音識別結(jié)果后,判斷所需元器件是否存在,OLED顯示查詢元器件結(jié)果,蜂鳴器作為結(jié)果提示音,LED顯示模塊作為元器件位置提示。
語音識別部分采用ICRoute公司研發(fā)生產(chǎn)的LD3320語音識別芯片。該芯片內(nèi)部集成語音識別處理器、功放電路、D/A轉(zhuǎn)換器等,能夠準確識別非特定人聲,最多可以識別由用戶自主設置的50項漢語單字、詞組或短句關鍵詞語。例如:用戶在語音識別模塊主控芯片的編程中,簡單地設置芯片的寄存器,把諸如“電阻”這樣的識別關鍵詞語的內(nèi)容動態(tài)地傳入芯片中,芯片就可以識別所設定的關鍵詞語了。每個關鍵詞語可以是單字、詞組、短句或者任意的中文發(fā)音的組合。STC11L08XE單片機作為該部分的主控芯片,主要負責預設語音識別芯片LD3320關鍵語句列表、處理并通過串行通信端口對外發(fā)送語音識別結(jié)果[4-6]。該語音識別模塊實物圖如圖2所示。
圖2 語音識別模塊實物Fig.2 Physical map of voice recognition module
本設計采用2.44 cm(0.96 in)OLED顯示屏,128×64點陣分辨率,可采用多種接口進行屏幕顯示控制,裸屏接口可以使用3線或4線串行SPI接口、IIC接口或使用6800和8080兩種并行接口,根據(jù)編程需要選擇I2C接口與OLED顯示屏進行通信。OLED顯示屏實物如圖3所示。
圖3 OLED顯示屏實物Fig.3 Physical map of OLED display
由于使用的電子元器件柜共有24個小柜子,每個小柜子旁邊都安裝有紅色LED燈,如果每個LED燈都用STM32F1單片機I/O口控制,顯然沒有必要。74HC595是串行輸入、并行輸出的8 b移位寄存器,具有8 b寄存器和1個儲存器,三態(tài)輸出功能。本設計使用3片74HC595芯片分別控制24個LED,只需要外接3個I/O口:DS(串行數(shù)據(jù)輸入),SHCP(移位寄存器時鐘輸入),STCP(儲存寄存器時鐘輸入)。選擇74HC595作I/O口擴展,外接I/O口少,節(jié)省了I/O口[7]。3片74HC595芯片焊接實物如圖4所示,電子元器件柜實物如圖5所示。
圖4 3片74HC595芯片焊接實物Fig.4 Physical map of 3 pieces of 74HC595 chip welding
圖5 電子元器件柜實物Fig.5 Physical map of electronic components cabinets
本設計的軟件思路是語音識別模塊接收并識別用戶口述名稱的語音信息后,判斷用戶口述名稱是否存在于語音識別模塊名稱庫中,再根據(jù)判斷的結(jié)果通過串口發(fā)送相對應的信息給主控芯片。主控芯片接收到信息之后,根據(jù)不同的信息(即一級指令、二級指令、元器件個數(shù)、元器件名稱及不存在該元器件名稱)做出相應的判斷和提示,最后該元器件柜中存在用戶所需元器件所在位置的LED燈亮,且OLED顯示“已找到”。若搜索不到該元器件,則在OLED上顯示“找不到此元器件”,且驅(qū)動蜂鳴器鳴響一聲,以提示使用者。
本語音程序設計是通過串行SPI方式對LD3320芯片內(nèi)的寄存器操作,從而達到語音識別的目的。實現(xiàn)語音識別的順序為語音識別初始化——寫入識別列表——打開中斷允許位——開始識別。
語音識別初始化通過void LD_Init_ASR()函數(shù)設置寄存器:
寫入識別列表 LD3320芯片最多支持50個識別關鍵字,分別為1個一級口令、24個電子元器件的名稱、5個元器件個數(shù)名詞、20個垃圾詞語(為了識別更準確)[8-9]。每個識別關鍵字使用1個字節(jié)的特定編號。簡單的關鍵字例子如表1所示。
表1 語音識別關鍵字例子Tab.1 Examples of speech recognition key words
語音識別功能該功能通過運行uint8 Run ASR()函數(shù)實現(xiàn),其程序代碼為
中斷函數(shù)響應功能如果駐極體話筒拾音器采集到聲音,都會產(chǎn)生一個中斷信號,進入中斷函數(shù)對寄存器的值進行分析,讀取BA寄存器的值,可得到幾個候選答案,選取C5寄存器中答案最接近、可能性最高的答案。
為了加強語音識別模塊對外發(fā)送數(shù)據(jù)的穩(wěn)定性,語音識別模塊每次通過串行通信端口對外發(fā)送有效數(shù)據(jù)之前,先發(fā)0X42,0X4D作為起始符。
在STM32F1單片機上電之后,則對PA及PB端口進行相應的初始化,然后初始化OLED顯示屏使其正常顯示文字,接著初始化該單片機與語音識別模塊所連接的第2個串行通信端口UART2,最后進入判斷是否接收到新的語音識別結(jié)果循環(huán)函數(shù)。STM32F1單片機主函數(shù)程序運行流程如圖6所示,STM32F1單片機串行通信UART2程序運行流程如圖7所示。
圖6 STM32F1單片機主函數(shù)程序運行流程Fig.6 Operation flow chart of STM32F1 MCU main function program
圖7 串行通信UART2程序運行流程Fig.7 Operation flow chart of serial communication UART2 program
對于語音識別模塊,周圍環(huán)境的聲音、識別列表各個詞語之間的相互差別程度、說話人聲音的大小、發(fā)音的清晰程度、外接麥克風的物理特征等都會對語音識別的判斷產(chǎn)生影響。經(jīng)過多次調(diào)試,語音識別模塊逐漸趨于理想效果。
在實驗室環(huán)境下采用多人與語音識別模塊距離相同情況下,分別測試了24個關鍵詞40遍,由于每個人的普通話標準程度不一,則導致語音識別準確度各不相同。部分非特定人語音識別測試的正確識別數(shù)據(jù)次數(shù)如表2所示。
由表2可知,在實驗室環(huán)境下,所設計的系統(tǒng)語音識別準確率達到90%以上。經(jīng)過多次調(diào)試,電子元器件語音識別系統(tǒng)已達到本次設計的要求[10-11]。
表2 部分非特定人語音識別測試的正確識別數(shù)據(jù)次數(shù)Tab.2 Number of correct recognition data for non specific speech recognition test
所設計的一種語音識別電子元器件柜,可以通過語音識別實現(xiàn)智能化搜索電子元器件柜電子元器件的位置,且使用者根據(jù)電子元器件的型號可自行編輯元器件的關鍵字。當一次需要查找一個或多個元器件,只要對著語音識別模塊說出一級口令之后,繼續(xù)說出需要查找元器件數(shù)量,接著連續(xù)說出元器件名稱,所查找的元器件所在位置LED燈點亮。根據(jù)試驗結(jié)果表明,該元器件柜識別正確率高、且可自行修改元器件關鍵字,為電子元器件使用者及管理者提供了方便,并具有一定的市場推廣價值。
[1]蔣偉明.中國智能家居的現(xiàn)狀及發(fā)展趨勢[J].科技視界,2014,4(18):326.
[2]王敏妲.語音識別技術的研究與發(fā)展[J].微型機與應用,2009,28(23):1-2.
[3]徐子豪,張騰飛.基于語音識別和無線傳感網(wǎng)絡的智能家居系統(tǒng)設計[J].計算機測量與控制,2012,20(20):180-182.
[4]陳喜春.基于LD3320語音識別專用芯片實現(xiàn)的語音控制[J].電子技術,2011,49(11):20-21.
[5]金鑫,田犇,闕大順.基于LD3320的語音控制系統(tǒng)設計實現(xiàn)[J].電腦與信息技術,2011,19(9):22-25,
[6]ICRoute.LD332X數(shù)據(jù)手冊[EB/OL].http://www.i-croute.com/web_cn/DownLoad.html#LD332X-DataSheet,2010-09-11.
[7]黃建新.74HC595芯片驅(qū)動LED的電路[J].科技資訊,2010,8(31):116-117.
[8]余超,羅純,黃伍成.基于LD3320的語音控制照明系統(tǒng)的設計[J].湖南理工學院學報:自然科學版,2015,28(3):48-51.
[9]洪家平.LD3320的嵌入式語音識別系統(tǒng)的應用[J].單片機與嵌入式系統(tǒng)的應用,2012,13(2):47-50.
[10]蘇鵬,周風余,陳磊.基于STM32的嵌入式語音識別模塊設計[J].單片機與嵌入式系統(tǒng)應用,2011,12(2):42-45.