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