資料介紹
描述
從原始音頻數據中檢測火花聲音
抽象的:
該項目的目的是從原始時域信號中解決模式識別任務。我們使用 Sparkfun RedBoard Artemis ATP 模塊和集成 MEMS 麥克風來記錄和分類環境聲音。在這個項目摘要中,我們為初學者提供了一個簡單的管道來訓練和部署一個簡單的神經網絡 (NN) 以及可用于提高模型性能的高級方法。我們希望在這次挑戰中收集到的經驗可以用于我們為大象設計的槍聲探測器。
介紹:
用于聲音分類的神經網絡通常將其輸入解釋為圖像。這是通過計算原始音頻記錄的 2D 頻譜圖來完成的。但是,也存在頻譜圖轉換導致相關信息丟失的情況。一個例子是槍聲檢測,其中彈道沖擊波聲音具有如此獨特的形狀(類似于大寫字母 N),基于這種原始信號形狀的檢測器比基于頻譜圖的解決方案更準確地工作。我們的想法來自這種情況,因為在時域中可能有許多具有特定形狀的可能事件。
在我們的例子中,這些獨特形狀的音頻信號是由火花產生的。火花是一種突然的放電,會產生短暫的光發射和尖銳的裂紋或啪啪聲。這種聲音包含非常高的頻率并且時間長度很短(大約 4 毫秒)。這種火花聲事件可以通過集成在 Redboard Artemis ATP 上的 MEMS 麥克風進行記錄,圖 1 顯示了一個示例記錄。
記錄的火花噪聲的形狀并不完全相同,但它們都包含幾個長度相似的尖峰。NN 應該理解這些相似性以執行檢測任務。
目標、實驗設置和數據收集:
總之,我們構建了一個可以檢測火花噪聲的分類器。為了實現這一目標,我們使用揚聲器、火花發生器和 RedBoard Artemis 作為數據收集器,收集了具有不同脈沖背景噪聲的火花聲音。背景噪聲有助于概括檢測器的知識。并使檢測任務更加困難。
使用的背景噪音是:汽車喇叭、說話的數字、狗叫聲、高斯噪音、槍聲、手提鉆、各種音樂、警報器、沉默。
基本管道如下:
- 記錄揚聲器產生的具有不同背景噪音的火花
- 僅將背景噪音記錄為負樣本
- 將這些記錄收集到帶有二進制標簽的數據集中——0:沒有火花;1:包含火花
- 訓練一個簡單的模型并將其部署在 Sparkfun Redboard Artemis ATP 上
- 使用涉及的高級方法訓練各種模型
- 評估模型
數據收集設置包含 RedBoard Artemis 作為記錄設備。一個額外的設備,一個 Arduino Due 控制一個繼電器,該繼電器通過大電流通過 DC-DC 升壓器產生火花。整個過程由 PC 同步,PC 還通過揚聲器播放各種背景噪音。設置如圖 2 所示。RedBoard Artemis ATP 記錄了背景噪聲和火花聲的疊加。圖 3 說明了一種這樣的組合記錄,其中car_horn
在測量過程中產生了噪聲。可以發現錄音中間的脈沖區域,對應于火花聲。在錄音中,火花的位置會有所不同,以防止過度擬合到特定位置。
生成的數據集包含:
從所有類中,100 個樣本被添加到訓練集,30 個樣本被添加到測試集,20 個樣本被添加到驗證集。
我們已將訓練過程的源代碼添加到該項目中,但它也可以在此處作為 Python 筆記本獲得:Training notebook 。Google Colaboratory 是初學者在受控環境中使用免費提供的 GPU 測試他們的想法的好地方。
本筆記本包含模型訓練的主要步驟,包括:
- 數據加載:正面和負面的例子
- 數據分離為訓練集、驗證集和測試集:100 + 20 + 30 個樣本
- 神經網絡模型創建:簡單的卷積神經網絡
- 模型擬合 - 訓練:默認訓練參數
- 模型評估:在測試數據集上評估
- 模型轉換為 TensorFlow Lite 模型。
- 模型轉換為字節數組,可以上傳到 Artemis Board。
本例中使用的模型由一個具有 2 個內核的卷積層和一個最大池化層組成。它涵蓋了卷積產生的整個特征向量。由于其簡單性,該模型幾乎無法泛化知識,但在測試數據集上可以達到 94% 左右的高精度,在可接受的范圍內。架構如圖 4 所示。(注意:使用了 Conv2D,因為 TF Lite Micro 僅支持此操作,否則需要使用 Conv1D。)
訓練有素的模型有利有弊:
+ 體積小,只有 71 個可訓練參數
+ 可以處理 12000 個樣本的長輸入
+ Artemis 板可在 1 秒內運行
- 對噪音非常敏感,不能一概而論
[數據收集詳細信息] -> [在 GPU 上訓練] -> [模型部署] -> [推理]
部署從字節數組開始,字節數組是在上一節訓練期間生成的。左側可見Arduino連接,表示當發送一個's'字符時,會產生火花。很快,“檢測到火花!” 右側應該有消息,它會打印來自 Artemis Board 的消息。
概括:
在本節中,我們提出了一個檢測問題的基線解決方案,旨在基于火花聲音包含對錄音進行分類。我們包括用于數據收集、模型訓練以及模型部署和推理的源代碼。
進階方法:
上一節中訓練的簡單模型在測試數據集上達到了可接受的準確度,但是,在其真實世界的評估過程中,我們可以測試它對鼓掌或敲擊等其他脈沖響亮事件的魯棒性。基于這些實驗,可以得出結論,該模型能夠識別響亮的脈沖事件,而不僅僅是火花聲。如此簡單的架構無法泛化知識以檢測復雜背景噪聲中的這些復雜模式是合理的。
在本節中,我們展示了高級方法的使用,這些方法可以幫助找到更合適的模型,具有更高的準確性和魯棒性,以及最佳的內存和計算復雜性。
準確率:正確分類示例的比率
魯棒性:誤導分類器的平均輸入擾動幅度的度量
內存復雜度:運行模型所需的內存總量
計算復雜度:運行模型必須執行的浮點運算總數
前面介紹的簡單模型是根據一些經驗以臨時方式創建的。即使初始架構已知,其提供最佳結果的超參數也是未知的。因此,我們從基線模型開始,實現了一種能夠找到優越超參數集的搜索算法。這種方法稱為網格搜索,它從給定的間隔將超參數收集到集合中,并根據一些指標測試這些配置。在我們的案例中,考慮的參數如下:
- 卷積層中的內核數:[3, 5, 8, 13]
- 卷積核的膨脹率:[1, 2, 3]
- 卷積核的大小:[15, 36, 57, 93, 150]
為了評估特定的超參數集,我們使用了準確性和魯棒性指標。準確率很簡單,就是正確分類的樣本數與樣本總數的比值。魯棒性更復雜。在沒有完整的科學背景的情況下,它可以概括為模型對輸入擾動不敏感的度量,而這些暗示錯誤分類的擾動的平均幅度就是該屬性的度量。研究這個參數的研究領域稱為對抗性機器學習。我們使用了DeepFool方法的略微修改版本來測量我們的 NN 的這一屬性。
除了超參數優化之外,我們還通過在輸入中添加具有不同標準差值的高斯噪聲來擴展模型性能檢查。隨著噪聲水平的增加,信噪比降低,這使得檢測問題變得更加困難。噪聲參數選自 [0.00, 0.01, 0.05, 0.1] 集合。為了使這些值具有可解釋性,圖 5 顯示了具有不同噪聲級別的示例記錄。可以觀察到,在最極端的情況下,火花形狀完全消失在噪聲中。
選擇來自呈現的參數值區間的所有組合,并相應地生成相應的神經網絡。這產生了240 個生成的模型。每個網絡都在相同的訓練數據集上進行了訓練,并在驗證數據集上進行了評估。高斯噪聲是在訓練期間動態生成的,使用以下參數進行:
- 批量:5
- Early Stopping:以 10 個 epoch 的耐心監測訓練損失
- 優化器:亞當
網格搜索的結果如圖 6 所示。這里,x 軸表示精度,y 軸表示平均擾動大小的對數。較大的擾動表示更好的魯棒性。圖上的每個符號都有一個編碼噪聲水平的形狀、一個表示記憶復雜度的直徑和一個編碼神經網絡計算復雜度的顏色。噪音等級符號:star
- 不添加噪音;circle
- 噪聲級 0.01;square
- 噪聲級 0.05;triangle
- 噪音水平 0.1。
在圖 6 中,可以識別出幾個點簇。例如,可以觀察到較高的噪聲水平會降低準確性,但會增強魯棒性(triangles
在左上角)。另一個例子是squares
中間的簇,它同時從左到右,從下到上同時進化,這意味著一些參數集也提高了準確性和魯棒性。
在我們的案例中,需要具有良好性能和魯棒性的模型,但由于我們希望將其部署在微控制器上,因此還必須考慮內存和計算復雜性。這些參數被編碼成一個點的顏色和大小。根據彩條,需要一個小直徑的藍色點,從圖的右側開始,該點也可以最大限度地提高魯棒性。我們選擇了模型,它由位于circle
集群頂部右側的圓圈集群上方的單個離群藍色表示squares
。該模型在測試數據集上進行了評估。模型的參數和性能如下:
Accuracy on the test dataset: 0.99074
Accuracy on the training dataset: 0.99444
Robustness: 0.00136
---------------------------------------------
Dilation rate: 1
Kernel size: 57
Number of kernels: 5
Added noise level: 0.01
---------------------------------------------
Memory complexity: 238 KB
Computational complexity: 3.4 MFLOP (12kS input size)
該模型的計算復雜度高于我們的基準模型,因此推斷需要激活 Apollo 3 MCU 的突發模式。在這種狀態下,核心時鐘頻率從 48 MHz 翻倍到 96 MHz。
所提出的 NN 架構的另一個優點是全窗口最大池化(稱為 GlobalMaxPooling,但 TF Lite Micro 不支持)使模型能夠接受各種輸入長度。例如,我們發現如果我們將輸入長度從 12000 個樣本減少到 3000 個樣本,內存復雜度可以顯著降低:從 238 KB 到 14 KB。一個缺點是,如果我們想要在具有重疊區域的信號上運行檢測器以確保完全包含火花事件,我們必須調用推理 7 次,而不是之前的 2 次。但是,MCU 足夠快以處理計算開銷(總共 5.6 個 MFLOP)。
當我們應用對抗性攻擊來測量 NN 結構的魯棒性時,很容易將這些對抗性示例中的一些可視化。圖 7 顯示了一個這樣的示例。這里的目標是生成一個記錄,該記錄位于已訓練的神經網絡結構的決策表面的邊緣。這個例子是從一個最初的負樣本(絕對沉默)生成的,但在當前的形式中,它欺騙了網絡,以便它產生一個正標簽。
這些方法很復雜,我們認為源代碼的發布不會有助于上述說明的普遍適用性,因此我們僅應要求通過電子郵件共享這些文件。
項目總結:
我們實現了一個基于神經網絡的火花聲音檢測器,可以部署在 SparkFun RedBoard Artemis ATP 上。數據是通過使用相同的設備及其集成的 MEMS 麥克風收集的。數據采集??采用具有不同背景噪聲的火花產生。
為初學者解釋了一個簡單的管道,并部署了一個基線神經網絡模型。我們共享了解決類似問題所需的所有主要步驟的源代碼。
此外,還包括更先進的方法和想法,可以提高模型性能和魯棒性。
未來,我們計劃將 Artemis 板集成到我們正在積極開發的獸傳槍聲探測器中。本報告中呈現的先進成果可為這些方向的研究提供基礎。
?
- Amiga立體聲音頻數字轉換器開源
- 基于LabVIEW的音頻數據采集系統設計.pdf 34次下載
- 采用PIC32的高質量音頻應用 14次下載
- IS2062和IS2064立體聲音頻SoC的詳細中文數據手冊免費下載
- MPEG2/AC-3兼容立體聲音頻數位類比轉換器 5次下載
- 18位96kHz采樣立體聲音頻數位類比轉換器 6次下載
- 立體聲音頻數位類比轉換器 7次下載
- 1路雙向視音頻數據多業務光端機用戶手冊V1.1 0次下載
- 1路雙向視音頻數據光端機用戶手冊V1.1 0次下載
- 網絡傳輸中實時音頻數據丟包恢復方法 32次下載
- 音頻數據加工標準與工作規范標準規范
- MAX9217/MAX9218 視頻鏈路中的音頻數據傳輸
- 基于變換域的音頻數字零水印算法研究
- 廣播音頻數據文件格式規范—廣播波形格式(BWF) GY T
- ATMEL音頻數碼產品
- Hi-Fi音頻的具體特點 354次閱讀
- 立體聲音頻放大器電路圖分享 2159次閱讀
- 沉浸式音頻的未來:計算機視覺輔助下的聲音重現 1171次閱讀
- 如何使用10位LVDS串行器/解串器IC對I2S音頻數據流進行STP布線 2817次閱讀
- I2S音頻總線基本知識科普 2.8w次閱讀
- digilent立體聲音頻輸出簡介 1541次閱讀
- 電火花加工有哪些類型 3w次閱讀
- 藍牙的音頻通路 5267次閱讀
- 音頻幾個很重要的參數 6956次閱讀
- 如何使用Python編寫能夠從原始文本提取信息的程序 1w次閱讀
- 基于Kinetis MK60N512和MAX5556的立體聲音頻接口設計 2765次閱讀
- 音頻卡怎么打開_音頻卡調試教程詳解 5948次閱讀
- 一文了解音頻卡工作原理及主要特點 1w次閱讀
- 基于Kinetis微控制器和16位/24位MAX5556的立體聲音頻接口設計 1512次閱讀
- 基于火花塞離子電流檢測技術設計應用 4137次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多