<ul id="qxxfc"><fieldset id="qxxfc"><tr id="qxxfc"></tr></fieldset></ul>


      1. 概述

      利用麥克風(fēng)陣列進(jìn)行聲源定位在智能降噪、語音增強(qiáng)、語音識(shí)別等領(lǐng)域有廣泛應(yīng)用和研究前景。本文介紹基于AliOS Things + STM32F413H
      Discovery開發(fā)板實(shí)現(xiàn)聲源定位算法集成和功能演示。

      * 聲源定位算法

      本案例集成了STMicroelectronics的Acoustic_SL聲源定位算法。Acoustic_SL是STMicroelectronics開發(fā)的聲源定位算法,支持XCORR、GCC-PHAT、BMPH三種不同算法類型。本案例使用GCC-PHAT算法類型,算法基于到達(dá)時(shí)間差(TDOA)原理實(shí)現(xiàn),通過測量聲音信號(hào)達(dá)到不同麥克風(fēng)的時(shí)間差計(jì)算聲源方向。GCC-PHAT算法作為應(yīng)用最為廣泛的聲位算法,數(shù)據(jù)計(jì)算量和資源消耗較小,并且具有一定的抗噪和抗混響能力。
      2. 環(huán)境搭建

      開發(fā)板:STM32F413H Discovery(附帶麥克風(fēng)陣列板)
      手勢傳感器:Seeed Grove PAJ7620
      溫濕度傳感器:HTS221
      LED數(shù)碼管:Seeed Grove LED Bar

      硬件說明:
      使用STM32F413H作為主控芯片,提供音頻輸入接口、I2C接口、GPIO控制接口、顯示控制接口等。

      STM32F413H內(nèi)置的DFSDM模塊可以支持最多同時(shí)5路PDM數(shù)字麥克數(shù)據(jù)錄入,并經(jīng)過硬件濾波將PDM數(shù)據(jù)轉(zhuǎn)換成PCM數(shù)據(jù),降低了音頻軟件的復(fù)雜度和資源消耗。

      硬件連接:



      3. 軟件編譯

      軟件:AliOS Things
      <https://yq.aliyun.com/go/articleRenderRedirect?url=https%3A%2F%2Fgithub.com%2Falibaba%2FAliOS-Things>
      下載AliOS Things后,切換到developer分支。

      執(zhí)行如下命令編譯Application:
      aos make sensordemo@stm32f413h-discovery

      編譯成功后,使用下面命令燒錄鏡像:
      aos upload sensordemo@stm32f413h-discovery

      4. 軟件介紹

      * AliOS Things
      AliOS Things是面向IOT領(lǐng)域的輕量級物聯(lián)網(wǎng)嵌入式操作系統(tǒng)。AliOS
      Things啟動(dòng)過程中,依次完成內(nèi)核初始化、硬件資源初始化、功能組件初始化、外設(shè)驅(qū)動(dòng)初始化。系統(tǒng)就緒后,通過用戶定義的application_start()函數(shù)進(jìn)入應(yīng)用程序。

      * 創(chuàng)建聲位和音量顯示界面
      在application_start()函數(shù)中調(diào)用display_init()創(chuàng)建LCD刷新任務(wù)、顯存刷新任務(wù)、定義顯示界面。

      聲位顯示界面:


      切換到該界面時(shí),聲位識(shí)別算法開始運(yùn)行,屏幕上指示當(dāng)前聲音方位。測試時(shí)建議距離mic陣列水平距離30cm,高度和mic陣列盡量接近,可以獲得最佳效果。

      音量顯示界面:


      切換到該界面時(shí),計(jì)算mic信號(hào)的大小并轉(zhuǎn)換成音量在屏上顯示音量指示條,即提供聲音強(qiáng)度檢測功能。

      * 運(yùn)行聲位算法
      <1> 在application_start()函數(shù)中創(chuàng)建聲源定位task,在該task中繼續(xù)調(diào)用acoustic_sl_start()執(zhí)行聲源定位功能。

      <2>
      在acoustic_sl_start()函數(shù)中調(diào)用DFSDM_Init()和HAL_DFSDM_FilterRegularStart_DMA()初始化并啟動(dòng)DFSDM錄音程序。打開4路DFSDM濾波通道,獲取4個(gè)麥克風(fēng)的PDM數(shù)據(jù),經(jīng)過內(nèi)部處理轉(zhuǎn)換成PCM后通過DMA傳輸?shù)骄彺嬷小?br>
      <3> 調(diào)用acoustic_sl_init()庫函數(shù)初始化Acoustic_SL算法。這一步需要設(shè)置算法參數(shù),例如配置算法類型、channel
      number、麥克風(fēng)陣列間距以及識(shí)別角度最小單位、聲音檢測門限。

      <4> DFSDM錄音程序每次分別從4個(gè)mic錄入512個(gè)采樣點(diǎn)的PDM數(shù)據(jù)數(shù)據(jù),經(jīng)過內(nèi)部處理轉(zhuǎn)換成PCM后通過DMA傳輸?shù)骄彺嬷小?br>
      <5> 緩存數(shù)據(jù)到達(dá)后,對PCM數(shù)據(jù)進(jìn)行簡單的High
      Pass濾波算法處理,然后調(diào)用AcousticSL_Data_Input()以每次16samples的大小送入算法后,觸發(fā)外部中斷,在中斷函數(shù)中再調(diào)用AcousticSL_Process()進(jìn)行算法處理和聲位計(jì)算,得到代表聲音方位的角度信息。

      <6> 根據(jù)角度的范圍可以確定麥克的位置,然后在顯示任務(wù)fb_refresh_task中根據(jù)麥克位置更新顯示界面。

      麥克陣列采用2x2矩陣形式,通過這種布局方式可以實(shí)現(xiàn)360度聲音方位的識(shí)別。

      另外,AcousticSL算法提供聲音檢測門限和識(shí)別角度最小單位兩個(gè)調(diào)試參數(shù)??梢愿鶕?jù)需要修改參數(shù),適應(yīng)不同的環(huán)境條件和應(yīng)用需求。

      * 音量計(jì)算

      通過手勢切換到該界面后,首先對DFSDM輸出的512個(gè)采樣點(diǎn)的pcm數(shù)據(jù)先計(jì)算均值,再進(jìn)行對數(shù)計(jì)算,得到對應(yīng)pcm數(shù)據(jù)的音量信息,同時(shí)根據(jù)音量信息在顯示任務(wù)fb_refresh_task刷新界面音量進(jìn)度條。

      5. 應(yīng)用演示

      視頻觀看:AliOS-Things聲源定位應(yīng)用演示
      <http://v.youku.com/v_show/id_XMzg0MDEzMzAwNA==.html?spm=a2h3j.8428770.3416059.1>

      6. 更多

      參考AliOS Things手勢識(shí)別應(yīng)用演示
      <https://yq.aliyun.com/articles/645862?spm=a2c4e.11155435.0.0.82203312HNPa6C>

      友情鏈接
      ioDraw流程圖
      API參考文檔
      OK工具箱
      云服務(wù)器優(yōu)惠
      阿里云優(yōu)惠券
      騰訊云優(yōu)惠券
      京東云優(yōu)惠券
      站點(diǎn)信息
      問題反饋
      郵箱:[email protected]
      QQ群:637538335
      關(guān)注微信

        <ul id="qxxfc"><fieldset id="qxxfc"><tr id="qxxfc"></tr></fieldset></ul>
          亚洲最大中文字幕在线 | 豆花性爱视频网址 | 最新毛片网址 | 精品国产乱码久久久久久老虎 | 欧美一级婬片A片免费老牛 | 欧美性动态图 | 91视频久久久久久 | 国产在线xxxx | 国产精品久久久九九Av免费看 | 欧美亚洲日韩电影 |