徐飛洋 李玉曉
摘? 要:隨著語(yǔ)音識(shí)別算法的成熟和集成電路工藝的發(fā)展,設(shè)計(jì)了一種基于現(xiàn)場(chǎng)可編程門陣列實(shí)現(xiàn)對(duì)垃圾智能分類的裝置。裝置采用FPGA芯片作為控制芯片,利用片內(nèi)資源搭建邏輯電路,處理語(yǔ)音芯片采集的語(yǔ)音信號(hào)。系統(tǒng)調(diào)用IP核構(gòu)建軟核處理器對(duì)語(yǔ)音數(shù)據(jù)進(jìn)行識(shí)別,識(shí)別結(jié)果用LCD和LED進(jìn)行信息反饋。測(cè)試結(jié)果表明,該裝置在語(yǔ)音識(shí)別功能上表現(xiàn)出良好的性能,語(yǔ)音識(shí)別正確率在90.0%以上,且實(shí)現(xiàn)了將識(shí)別出來(lái)的垃圾進(jìn)行分類處理。
關(guān)鍵詞:語(yǔ)音識(shí)別;FPGA;垃圾分類;嵌入式系統(tǒng)
中圖分類號(hào):TP391.4? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2096-4706(2020)09-0022-04
Intelligent Garbage Sorting Device Based on FPGA
XU Feiyang,LI Yuxiao
(School of Science,Jiangxi University of Science and Technology,Ganzhou? 341000,China)
Abstract:With the maturity of speech recognition algorithm and the development of integrated circuit technology,a device based on field programmable gate array(FPGA) is designed to realize garbage intelligent classification. The device uses FPGA chip as the control chip,uses the on-chip resources to build the logic circuit,and processes the voice signals collected by the voice chip. The system calls IP core to build soft core processor to recognize voice data,and LCD and LED are used for information feedback. The test results show that the device has good performance in speech recognition function,the correct rate of speech recognition is more than 90.0%,and it realizes the classified disposal of the identified garbage.
Keywords:speech recognition;FPGA;garbage classification;embedded system
0? 引? 言
隨著城市化建設(shè)步伐的推進(jìn),生活垃圾處理已是不可避免的一個(gè)問(wèn)題。實(shí)施垃圾分類處理,可以有效改善城鄉(xiāng)環(huán)境,垃圾也能變廢為寶。分類垃圾桶是目前最為常用的垃圾分類裝置,其結(jié)構(gòu)形式單一采用傳統(tǒng)的開放式或手動(dòng)封蓋式,用戶體驗(yàn)差,衛(wèi)生條件不好。同時(shí),廣大人民群眾對(duì)垃圾分類知識(shí)掌握程度不高,導(dǎo)致人民群眾難以長(zhǎng)期堅(jiān)持執(zhí)行垃圾分類,阻礙了垃圾分類工作的進(jìn)一步推廣和應(yīng)用。
筆者基于校內(nèi)江西省教育廳科學(xué)技術(shù)研究項(xiàng)目及大學(xué)生創(chuàng)新創(chuàng)業(yè)項(xiàng)目,對(duì)一種新的智能垃圾分類裝置進(jìn)行了研究。為解決現(xiàn)有垃圾分類存在的問(wèn)題,本文設(shè)計(jì)一種基于現(xiàn)場(chǎng)可編程門陣列(Field Programmable Gate Array,F(xiàn)PGA)的智能垃圾分類裝置[1]。通過(guò)投放者說(shuō)出待投放的垃圾名稱,自動(dòng)判斷投放的垃圾類別,并對(duì)投放者進(jìn)行信息提示,引導(dǎo)投放者將垃圾投放到正確的位置。可以有效解決投放者因未培訓(xùn)或培訓(xùn)不足,而不能正確選擇垃圾類別帶來(lái)的問(wèn)題,同時(shí)在一定程度上可以抑制環(huán)境的污染。
1? 總體方案設(shè)計(jì)
本文SOPC系統(tǒng)設(shè)計(jì)基于語(yǔ)音識(shí)別理論知識(shí)[2,3]和嵌入式系統(tǒng)開發(fā)[4]技術(shù),實(shí)現(xiàn)一種根據(jù)投放者說(shuō)出垃圾的名稱,自動(dòng)判斷投放的垃圾類別,并對(duì)投放者進(jìn)行信息提示的裝置。使用Verilog HDL硬件描述語(yǔ)言[5]在FPGA內(nèi)部搭建各個(gè)功能模塊,并使用嵌入式軟核的方式進(jìn)行對(duì)語(yǔ)音識(shí)別算法的處理,整體系統(tǒng)硬件結(jié)構(gòu)框圖如圖1所示[6,7]。按下錄音按鍵,利用WM8978芯片作為語(yǔ)音數(shù)據(jù)采集和處理芯片,并將實(shí)時(shí)錄制的語(yǔ)音數(shù)據(jù)緩存在SDRAM中。選用EP4CE10F17C8芯片,利用內(nèi)部資源搭建與各個(gè)功能模塊的操作接口,調(diào)用IP核搭建Nios Ⅱ軟核處理器,用于處理語(yǔ)音識(shí)別算法和對(duì)外部器件進(jìn)行控制。LCD顯示屏和LED燈作為識(shí)別結(jié)果的信息反饋,對(duì)用戶進(jìn)行提示。外部擴(kuò)展大容量的SDRAM和FLASH芯片,分別在系統(tǒng)中承擔(dān)程序運(yùn)行和數(shù)據(jù)儲(chǔ)存的工作。
2? 部分硬件設(shè)計(jì)
2.1? 語(yǔ)音采集控制模塊
WM8978是一個(gè)低功耗、高質(zhì)量的立體聲多媒體數(shù)字信號(hào)編譯碼器。該芯片內(nèi)部集成了AD/DA轉(zhuǎn)換器和語(yǔ)音信號(hào)處理器,帶有靈活的音頻線輸入,麥克風(fēng)輸入和音頻輸出處理。可通過(guò)I2S或PCM音頻接口(I2S/PCM AUDIO INTERFACE)與FPGA進(jìn)行音頻數(shù)據(jù)傳輸。
在硬件電路中,如圖2所示,LIP、LIN、RIP和RIN連接到麥克風(fēng)(MIC)作為音頻輸入,L2/GPIO2和R2/GPIO3通過(guò)音頻線作為音頻輸入(LINE_IN),ROUT1和LOUT1作為輸出接口(PHONE),輸出給外接耳機(jī),ROUT2和LOUT2為喇叭接口。WM8978的MODE引腳接地,選擇的是兩線接口模式,等同于I2C接口,F(xiàn)PGA以此來(lái)配置WM8978。FPGA與芯片引腳序號(hào)7-11并口連接,同時(shí)FPGA通過(guò)I2S MCLK接口輸出12 MHz時(shí)鐘作為WM8978芯片主時(shí)鐘,進(jìn)行音頻數(shù)據(jù)輸入、輸出的控制操作。
2.2? LCD顯示模塊
TFT-LCD(Thin Film Transistor Liquid Crystal Display,薄膜晶體管液晶顯示器)能夠低電壓驅(qū)動(dòng),具有功耗低,使用壽命長(zhǎng),環(huán)保特性好等特點(diǎn),是設(shè)計(jì)用戶友好型圖形界面的優(yōu)良載體。
本設(shè)計(jì)選用ATK-3.5'TFTLCD,是一款高性能3.5寸電阻觸摸屏,分辨率為320*480。該產(chǎn)品自帶GRAM,無(wú)需外加驅(qū)動(dòng)器,因而FPGA可以輕易驅(qū)動(dòng)。采用Intel 18080接口,根據(jù)相應(yīng)的操作時(shí)序來(lái)控制顯示。
圖3中,芯片功能引腳序號(hào)1~4,用來(lái)控制向LCD屏讀寫命令或數(shù)據(jù);引腳6~21與FPGA并口連接,進(jìn)行待寫指令、數(shù)據(jù)的雙向傳輸;LCD_BL接口控制液晶的背光效果。LCD基本使用流程:硬復(fù)位→初始化序列→設(shè)置坐標(biāo)→寫GRAM指令→寫入顏色數(shù)據(jù),然后在LCD顯示屏上面就可以打印出要提示的結(jié)果信息。
3? 部分軟件設(shè)計(jì)
3.1? 寫入語(yǔ)音模型和識(shí)別列表
提前在PC機(jī)上訓(xùn)練好預(yù)識(shí)別詞匯模型,本實(shí)驗(yàn)對(duì)可回收垃圾:“報(bào)紙”“塑料瓶”“易拉罐”;有害垃圾:“燈泡”“電池”“酒精”;廚余垃圾:“剩菜”“骨頭”“蛋殼”;其他垃圾:“貝殼”“陶瓷”“毛巾”這12個(gè)詞匯分別進(jìn)行模型訓(xùn)練,如表1所示。對(duì)訓(xùn)練好的模型進(jìn)行編號(hào),制成C語(yǔ)言頭文件供程序調(diào)用。在程序中給每一個(gè)編號(hào)匹配對(duì)應(yīng)詞匯的漢語(yǔ)拼音字符串,將每一個(gè)詞匯所屬的垃圾類別用英文名稱表示,應(yīng)用實(shí)例如表1所示。最后,系統(tǒng)識(shí)別結(jié)果將在LCD屏上打印詞匯的漢語(yǔ)拼音和所屬垃圾類別的英文名稱,同時(shí)將所屬垃圾類別對(duì)應(yīng)的LED燈點(diǎn)亮。
3.2? FPGA內(nèi)部搭建
在基于FPGA的系統(tǒng)開發(fā)過(guò)程中,如果采用純硬件描述語(yǔ)言去實(shí)現(xiàn)這些比較復(fù)雜的系統(tǒng),工作量是十分巨大的。本文通過(guò)Qsys來(lái)調(diào)用官方所提供的IP核的方法,根據(jù)需求搭建硬件環(huán)境,加速系統(tǒng)設(shè)計(jì)。圖4為FPGA內(nèi)部架構(gòu)圖。
(1)Nios Ⅱ處理器是一個(gè)32位精簡(jiǎn)指令集(Reduced Instruction Set Computer,RISC)架構(gòu)的軟核處理器,內(nèi)部包含了算術(shù)邏輯單元,可以進(jìn)行語(yǔ)音識(shí)別算法的實(shí)現(xiàn)。Nios Ⅱ還提供JTAG接口,供下載和調(diào)試程序。
(2)系統(tǒng)利用Qsys提供的存儲(chǔ)器控制IP核,來(lái)對(duì)SDRAM芯片和FLASH芯片進(jìn)行讀寫操作,極大方便了存儲(chǔ)芯片的使用。
(3)PIO IP核為總線端口和通用I/O端口提供了一個(gè)存儲(chǔ)器映射(Memory-mapped)接口。PIO的I/O端口可以連接到片內(nèi)用戶邏輯(Verilog語(yǔ)言完成的電路部分),也可以連接到與外部器件相連的FPGA引腳。利用PIO IP核,搭建外設(shè)模塊的邏輯功能電路,用于實(shí)現(xiàn)系統(tǒng)與外設(shè)的簡(jiǎn)單通信。
初始化上電后,程序從外部的FLASH將數(shù)據(jù)和語(yǔ)音模型轉(zhuǎn)移到SDRAM中。此時(shí),其他模塊全部處于復(fù)位狀態(tài)中。等系統(tǒng)裝載程序完成后,釋放其他的復(fù)位信號(hào),Nios Ⅱ處理器工作于系統(tǒng)時(shí)鐘頻率下。
3.3? 識(shí)別程序
裝置上電啟動(dòng)后,錄制好待識(shí)別的詞匯后,按下識(shí)別功能按鍵,裝置就可以進(jìn)行語(yǔ)音識(shí)別。語(yǔ)音識(shí)別算法在Nios Ⅱ SBT for Eclipse工具中完成,包括編寫、編譯和調(diào)試程序。關(guān)鍵程序如下:
for(i=0;i<((number-6000)/2.2);i+=6)
{
x[j++]= *(ram_disp);
if(abs(*(ram_disp))>abs(max))
{
max =abs(*(ram_disp));
}
ram_disp += 6;
}
//滑動(dòng)窗口濾波
for(i=1;i { x[i]=MID(x[i-1],x[i],x[i+1]); } //歸一化處理 for(i=0;i { xx[i]=(double)x[i]/(double)max; } xn[0]=xx[0]; //預(yù)加重處理 for(i=1;i { xn[i]=xx[i]-0.97*xx[i-1]; } m=j+1; fn=(m - FRAMESIZE + INC) / INC; mfcc=MFCC(xn,F(xiàn)S,F(xiàn)RAMESIZE,INC,m,fn);//梅爾倒譜提升方法對(duì)信號(hào)提取特征 result=viterbi_max(I, mfcc,fn-4);//維特比算法得出識(shí)別結(jié)果編號(hào) 4? 系統(tǒng)測(cè)試實(shí)例 4.1? 錄入語(yǔ)音數(shù)據(jù)分析 將錄制好的語(yǔ)音數(shù)據(jù)打印在Eclipse工具的控制臺(tái)上,對(duì)數(shù)據(jù)用MATLAB[8]播放與繪圖分析[7],繪圖結(jié)果如圖5所示。結(jié)合圖像(a)(b)進(jìn)行分析,測(cè)試結(jié)果表明,F(xiàn)PGA正常狀態(tài)下錄制的語(yǔ)音中摻雜著嚴(yán)重的噪聲和毛刺,導(dǎo)致識(shí)別正確率下降。為此,系統(tǒng)需要對(duì)語(yǔ)音信號(hào)采用滑動(dòng)窗口濾波處理,提高整體識(shí)別性能。 4.2? 系統(tǒng)識(shí)別結(jié)果 正確率是衡量一個(gè)語(yǔ)音識(shí)別系統(tǒng)重要的性能指標(biāo),是設(shè)計(jì)能否達(dá)到需求的標(biāo)準(zhǔn)。測(cè)試環(huán)境要求: (1)測(cè)試周圍環(huán)境安靜,沒(méi)有較大的背景噪音。 (2)說(shuō)話人發(fā)音清晰,音量在50~60 db左右。 (3)無(wú)旁人語(yǔ)音干擾,一次只能識(shí)別一個(gè)人的指令語(yǔ)音。 (4)說(shuō)話人距離語(yǔ)音識(shí)別裝置范圍在0.2~0.4 m。 本次語(yǔ)音測(cè)試樣本采集共有7個(gè)人,男女比例為4:3,發(fā)音人中文普通話標(biāo)準(zhǔn)。以正常聲音語(yǔ)速朗讀這12個(gè)詞匯名稱,兩個(gè)詞匯之間間隔10 s以上。表2為測(cè)試結(jié)果。 實(shí)驗(yàn)數(shù)據(jù)得出平均識(shí)別率為90.0%以上。模型訓(xùn)練的樣本數(shù)據(jù)越多,識(shí)別成功率也就越高。對(duì)模型樣本訓(xùn)練是在PC機(jī)上單獨(dú)完成的,增加一定的訓(xùn)練樣本數(shù)不會(huì)對(duì)識(shí)別速度造成影響。 5? 結(jié)? 論 本文通過(guò)對(duì)語(yǔ)音識(shí)別技術(shù)和FPGA硬件知識(shí)的研究,設(shè)計(jì)了基于FPGA的智能垃圾分類裝置,其正確率基本達(dá)到識(shí)別性能指標(biāo)。通過(guò)在原有分類垃圾桶的基礎(chǔ)上加入了語(yǔ)音識(shí)別裝置,投放者即使未經(jīng)系統(tǒng)培訓(xùn)也可以通過(guò)與裝置進(jìn)行語(yǔ)音交互,從而提高投放垃圾的正確性,達(dá)成了智能垃圾分類的目的。為垃圾分類的順利推廣提供技術(shù)支持,為垃圾分類的節(jié)能減排帶來(lái)巨大的社會(huì)效益和經(jīng)濟(jì)效益。 參考文獻(xiàn): [1] 肖明堯.基于嵌入式的語(yǔ)音識(shí)別系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) [J].長(zhǎng)春師范大學(xué)學(xué)報(bào),2017,36(10):37-39. [2] 韓紀(jì)慶,張磊,鄭鐵然.語(yǔ)音信號(hào)處理:第2版 [M].北京:清華大學(xué)出版社,2013. [3] 李航.統(tǒng)計(jì)學(xué)習(xí)方法 [M].北京:清華大學(xué)出版社,2019. [4] 嚴(yán)翔,張屯厚,鄧威.FPGA嵌入式語(yǔ)音識(shí)別控制系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn) [J].計(jì)算機(jī)與網(wǎng)絡(luò),2017,43(19):65-67. [5] 夏宇聞,韓斌.Verilog數(shù)字系統(tǒng)設(shè)計(jì)教程:第4版 [M].北京:北京航空航天大學(xué)出版社,2017. [6] 陳芝牟.基于FPGA的語(yǔ)音識(shí)別系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) [D].成都:電子科技大學(xué),2012. [7] 黃帥凱.基于FPGA的語(yǔ)音識(shí)別系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) [D].廣州:華南理工大學(xué),2017. [8] 宋知用.MATLAB語(yǔ)音信號(hào)分析與合成:第2版 [M].北京:北京航空航天大學(xué)出版社,2017. 作者簡(jiǎn)介:徐飛洋(1999—),男,漢族,江西奉新人,本科在讀,研究方向:信號(hào)與信息處理、智能語(yǔ)音識(shí)別算法。