北方工業(yè)大學(xué)信息學(xué)院 喬子凌 柳子涵 鮑志平 蔡希昌 董紅霞 劉都鑫 劉子逸
近年來,基于深度學(xué)習(xí)的音頻事件分類方法成為研究熱點(diǎn),但其嵌入式實(shí)現(xiàn)仍存在較多難點(diǎn)。論文由此出發(fā),研究嵌入式GPU下的音頻事件分類算法及軟硬件實(shí)現(xiàn)。硬件上,采用環(huán)形麥克風(fēng)陣列和Jetson Nano完成音頻采集及音頻分類處理。算法上,研究兩張基于多重卷積神經(jīng)網(wǎng)絡(luò)塊結(jié)合池化層的方法,并在卷積層后疊加BN層和RELU激活函數(shù)。軟件上,實(shí)現(xiàn)Python下的音頻采集、算法實(shí)現(xiàn)及指標(biāo)輸出。實(shí)驗(yàn)對比證明,論文提出的網(wǎng)絡(luò)一和網(wǎng)絡(luò)二的分類準(zhǔn)確指標(biāo)mAP的值為0.431/0.343、AUC的值為0.973/0.965、d-prime的值為2.732/2.568。指標(biāo)值明顯高于與谷歌提供的基線值,且網(wǎng)絡(luò)一較為優(yōu)化。
目前難點(diǎn)在多個(gè)方面,一個(gè)是算法的成熟度方面,另一個(gè)是嵌入式實(shí)現(xiàn)方面。對于音頻事件分類而言,其實(shí)時(shí)性有一定要求。應(yīng)用上,通常在監(jiān)測點(diǎn)布置需要多個(gè)音頻采集點(diǎn),并將音頻數(shù)據(jù)進(jìn)行實(shí)時(shí)分析與分類輸出。
目前,在工程驅(qū)動的需求下,嵌入式GPU發(fā)展迅速。典型方案為NVIDIA公司的嵌入式GPU。但由于嵌入式GPU的平臺性能有限,如何選擇復(fù)雜度合適的神經(jīng)網(wǎng)絡(luò)算法,將復(fù)雜算法移植,并保證足夠的準(zhǔn)確度,這方面的研究已積累較多的經(jīng)驗(yàn)。
本文通過研究兩種組成不同的多層卷積神經(jīng)網(wǎng)絡(luò)塊在嵌入式GPU下的建模與對比實(shí)驗(yàn),完成一種工程可用的音頻事件分類方法探索。
在實(shí)時(shí)音頻事件分類實(shí)現(xiàn)中,硬件平臺的小型化與運(yùn)算速度的平衡尤為重要。一方面,要求硬件平臺功耗低,體積小;另一方面要求算力較為強(qiáng)悍,接口較為豐富,且生態(tài)環(huán)境較好,便于移植和深入研究。
綜合上面兩方面要求,嵌入式GPU選擇為NVIDIA公司的Jetson Nano平臺。該平臺的硬件主要性能如下:采用四核64位ARM CPU和128CUDA集成的NVIDIA GPU;提供472 GFLOPS的計(jì)算性能;4GB LPDDR4存儲器。生態(tài)環(huán)境方面,NVIDIA提供了CUDA及各深度學(xué)習(xí)框架的支持,便于模型的移植與應(yīng)用。
另外,為更好提高分類效果與提高升級潛力,前端應(yīng)采用麥克風(fēng)陣列。經(jīng)綜合考慮,采用Seeed公司的Respeaker USB Mic array。該板采用4顆數(shù)字麥克風(fēng)組成環(huán)形陣列,且通過MicroUSB接口提供供電功能支持。驅(qū)動方面,支持USB Audio Class 1.0(UAC 1.0),可適配Jetson Nano的Linux系統(tǒng)。
綜上所述,硬件平臺選擇Jetson Nano平臺和Respeaker環(huán)形麥克風(fēng)陣列,其搭配具有高靈活度,驅(qū)動方便等優(yōu)勢,具備音頻采集及算法實(shí)現(xiàn)的必要支撐。
考慮到算法需要在嵌入式移植,設(shè)計(jì)了兩種網(wǎng)絡(luò)結(jié)構(gòu)。其中,網(wǎng)絡(luò)一主要考慮推理的準(zhǔn)確率,其網(wǎng)絡(luò)結(jié)構(gòu)相對復(fù)雜;網(wǎng)絡(luò)二主要考慮推理的速度,其網(wǎng)絡(luò)結(jié)構(gòu)相對簡單。兩個(gè)模型的共同點(diǎn)在于兩點(diǎn),一方面在卷積塊后加入平均池化層可以在縮減特征矩陣尺寸的同時(shí)保留矩陣中更多有效信息;另一方面為降低內(nèi)存容量要求,并加快模型推理速度,均采用全局池化層進(jìn)行輸出。具體設(shè)計(jì)如下。
網(wǎng)絡(luò)一采用了五個(gè)3×3卷積核來增加神經(jīng)節(jié)點(diǎn)數(shù),網(wǎng)絡(luò)參數(shù)量達(dá)到80,753,615。網(wǎng)絡(luò)一包含五個(gè)卷積塊和兩個(gè)2×2平均池化層,每個(gè)卷積塊由3×3卷積層、BN層、RELU激活層組成。輸出部分采用了平均池化層和全局池化層。網(wǎng)絡(luò)一模型示意圖如圖1(左)所示。
網(wǎng)絡(luò)二采用了三個(gè)5×5卷積核減少了參數(shù)量,網(wǎng)絡(luò)參數(shù)量為4,837,455。網(wǎng)絡(luò)二包含三個(gè)卷積塊和一個(gè)2×2池化層,每個(gè)卷積塊由5×5卷積層、BN層以及RELU激活層組成,最后通過全局池化層進(jìn)行輸出。網(wǎng)絡(luò)二模型示意圖如圖1(右)所示。
圖1 兩種網(wǎng)絡(luò)的實(shí)現(xiàn)框圖
在訓(xùn)練方面,本文采用了AudioSet數(shù)據(jù)集。AudioSet是一個(gè)大型音頻數(shù)據(jù)集,具有527個(gè)音頻類。其中,訓(xùn)練集由2063839個(gè)剪輯音頻組成,包括22,160個(gè)剪輯音頻的“平衡子集”,該測試集由20,371個(gè)音頻剪輯組成。訓(xùn)練過程中保存最優(yōu)網(wǎng)絡(luò)模型,將最優(yōu)模型下載至嵌入式平臺。
綜上所述,本文設(shè)計(jì)了兩個(gè)網(wǎng)絡(luò)模型作為音頻事件分類方法,各有所側(cè)重。訓(xùn)練方面,采用AudioSet數(shù)據(jù)集,并對訓(xùn)練后的網(wǎng)絡(luò)模型下載到嵌入式GPU。
為實(shí)現(xiàn)算法的評估與驗(yàn)證,需要在JetsonNano的Linux系統(tǒng)編寫程序?qū)崿F(xiàn)算法及硬件驅(qū)動,由此程序設(shè)計(jì)主要分為音頻采集模塊、網(wǎng)絡(luò)實(shí)現(xiàn)模塊及指標(biāo)計(jì)算三部分。為了提高運(yùn)行效率,采用C++實(shí)現(xiàn)音頻采集模塊的設(shè)計(jì),采用pytorch深度學(xué)習(xí)框架與Python語言完成網(wǎng)絡(luò)實(shí)現(xiàn)及指標(biāo)計(jì)算模塊。下面進(jìn)行詳細(xì)說明。
音頻采集模塊通過libasound2(ALSA庫)實(shí)現(xiàn)音頻采集。網(wǎng)絡(luò)實(shí)現(xiàn)模塊中,預(yù)處理部分通過采集到的音頻使用librosa庫取梅爾頻譜,將圖譜序列化得到音頻特征矩陣。網(wǎng)絡(luò)推理模塊是將保存的模型進(jìn)行調(diào)用并賦值給模型函數(shù),將音頻采集模塊返回的特征序列傳入模型進(jìn)行推理,最后保存推理得到的概率最大的五個(gè)分類。指標(biāo)計(jì)算模塊利用pytorch提供的計(jì)算函數(shù)實(shí)現(xiàn),在此不做贅述。
實(shí)驗(yàn)驗(yàn)證環(huán)節(jié)按照實(shí)驗(yàn)步驟,完成實(shí)驗(yàn),并進(jìn)一步完成數(shù)據(jù)分析。實(shí)驗(yàn)步驟為如下三步:
(1)硬件連接與配置:將ReSpeaker_6麥克風(fēng)與Jetson Nano的I/O接口連接,并在Jetson Nano上將麥克風(fēng)配置為Jetson Nano的音頻采集設(shè)備。
(2)程序運(yùn)行:依次啟動模型一/二的音頻事件分類程序。
(3)結(jié)果比對:分析比較各模型的指標(biāo)輸出,評價(jià)模型優(yōu)劣。
最終,根據(jù)mAP(mean Average Precision/平均精度)、AUC(Area Under Curve/ROC曲線下方的面積大?。-prime(靈敏度指數(shù)d)三個(gè)指標(biāo)對模型進(jìn)行評估,如表1所示。其中,Google CNN為谷歌發(fā)布的基于卷積神經(jīng)網(wǎng)絡(luò)的音頻事件分類模型。和Google CNN相比,網(wǎng)絡(luò)一/二在平均精度、準(zhǔn)確率和靈敏度方面均有提升且網(wǎng)絡(luò)一提升較大。
表1 三個(gè)模型指標(biāo)比對表
在實(shí)驗(yàn)過程中,使用網(wǎng)絡(luò)一和網(wǎng)絡(luò)二的音頻事件分類程序均未出現(xiàn)延時(shí)過長、內(nèi)存溢出等現(xiàn)象,實(shí)時(shí)性與可靠性得到初步驗(yàn)證,因此本文認(rèn)定網(wǎng)絡(luò)一為較優(yōu)選擇。
結(jié)論:論文從嵌入式音頻處理算法的需求出發(fā),完成了硬件設(shè)備的選型,比較了兩類基于CNN的對輕量化神經(jīng)網(wǎng)絡(luò),并完成系統(tǒng)驗(yàn)證與評估。實(shí)踐證明,本論文提出的嵌入式GPU及音頻事件分類算法具備較高的準(zhǔn)確度,能夠滿足實(shí)時(shí)性要求,可廣泛應(yīng)用于智能家居、智能安防等音頻信號處理領(lǐng)域中。