利用麥克風陣列進行聲源定位在智慧型降噪、語音增強、語音識別等領域有廣泛應用和研究前景。本文介紹基於alios things + stm32f413h discovery開發板實現聲源定位演算法整合和功能演示。
開發板:stm32f413h discovery(附帶麥克風陣列板)
手勢感測器:seeed grove paj7620
溫濕度感測器:hts221
led數碼管:seeed grove led bar
硬體說明:
使用stm32f413h作為主控晶元,提供音訊輸入介面、i2c介面、gpio控制介面、顯示控制介面等。
stm32f413h內建的dfsdm模組可以支援最多同時5路pdm數字麥克資料錄入,並經過硬體濾波將pdm資料轉換成pcm資料,降低了音訊軟體的複雜度和資源消耗。
硬體連線:
軟體:alios things
編譯成功後,使用下面命令燒錄映象:
aos upload sensordemo@stm32f413h-discovery
聲位顯示介面:
切換到該介面時,聲位識別演算法開始執行,螢幕上指示當前聲音方位。測試時建議距離mic陣列水平距離30cm,高度和mic陣列盡量接近,可以獲得最佳效果。
音量顯示介面:
切換到該介面時,計算mic訊號的大小並轉換成音量在屏上顯示音量指示條,即提供聲音強度檢測功能。
<2> 在acoustic_sl_start()函式中呼叫dfsdm_init()和hal_dfsdm_filterregularstart_dma()初始化並啟動dfsdm錄音程式。開啟4路dfsdm濾波通道,獲取4個麥克風的pdm資料,經過內部處理轉換成pcm後通過dma傳輸到快取中。
<3> 呼叫acoustic_sl_init()庫函式初始化acoustic_sl演算法。這一步需要設定演算法引數,例如配置演算法型別、channel number、麥克風陣列間距以及識別角度最小單位、聲音檢測門限。
<4> dfsdm錄音程式每次分別從4個mic錄入512個取樣點的pdm資料資料,經過內部處理轉換成pcm後通過dma傳輸到快取中。
<5> 快取資料到達後,對pcm資料進行簡單的high pass濾波演算法處理,然後呼叫acousticsl_data_input()以每次16samples的大小送入演算法後,觸發外部中斷,在中斷函式中再呼叫acousticsl_process()進行演算法處理和聲位計算,得到代表聲音方位的角度資訊。
<6> 根據角度的範圍可以確定麥克的位置,然後在顯示任務fb_refresh_task中根據麥克位置更新顯示介面。
麥克陣列採用2x2矩陣形式,通過這種布局方式可以實現360度聲音方位的識別。
另外,acousticsl演算法提供聲音檢測門限和識別角度最小單位兩個除錯引數。可以根據需要修改引數,適應不同的環境條件和應用需求。
通過手勢切換到該介面後,首先對dfsdm輸出的512個取樣點的pcm資料先計算均值,再進行對數計算,得到對應pcm資料的音量資訊,同時根據音量資訊在顯示任務fb_refresh_task重新整理介面音量進度條。
參考alios things手勢識別應用演示
使用TDOA進行聲源定位
目錄 1.tdoa簡介 2.時延估計 3.定位估計 4.聲源定位 根據現有的研究成果來看,聲源定位 sound source localization,ssl 存在以下幾種方法 基於最大輸出功率的可控波束成形的定位方法 基於高分辨譜估計的定位方法和基於到達時延差 time difference of...
麥克風聲源定位原理 聲音測距原理
很多動物依賴於聲音來感知外部的環境,像夜間活動的蝙蝠 樹鼩,海洋裡的生物鯨魚 海豚等。聲吶定位不僅給它們提供了追蹤獵物 躲避天敵的方法,有時也為尋覓配偶提供方便。依靠聽覺定位的動物 工業革命之後,人類開始利用聲吶技術去探測海洋 地球內部 身體超聲檢測等。下面通過實際訊號延遲測量,說明聲音測距原理。根...
AliOS Things開發入門
按照慣例,先po出效果圖,使用alios things的lcd來顯示學校logo 核心 鏈結在此 效果如圖中所示。1 環境搭建 搭建環境時,需要的軟體包括 vscode安裝包 stlinkdrv等,1 首先安裝vscode vscode安裝成功後,安裝擴充套件alios stdio 提示我們安裝py...