摘要: 1. 概述 利用麦克风阵列进行声源定位在智能降噪、语音增强、语音识别等领域有广泛应用和研究前景。本文介绍基于AliOS Things + STM32F413H Discovery开发板实现声源定位算法集成和功能演示。

  1. 概述

利用麦克风阵列进行声源定位在智能降噪、语音增强、语音识别等领域有广泛应用和研究前景。本文介绍基于AliOS Things + STM32F413H Discovery开发板实现声源定位算法集成和功能演示。

声源定位算法
本案例集成了STMicroelectronics的Acoustic_SL声源定位算法。Acoustic_SL是STMicroelectronics开发的声源定位算法,支持XCORR、GCC-PHAT、BMPH三种不同算法类型。本案例使用GCC-PHAT算法类型,算法基于到达时间差(TDOA)原理实现,通过测量声音信号达到不同麦克风的时间差计算声源方向。GCC-PHAT算法作为应用最为广泛的声位算法,数据计算量和资源消耗较小,并且具有一定的抗噪和抗混响能力。

  1. 环境搭建

开发板:STM32F413H Discovery(附带麦克风阵列板)
手势传感器:Seeed Grove PAJ7620
温湿度传感器:HTS221
LED数码管:Seeed Grove LED Bar

硬件说明:
使用STM32F413H作为主控芯片,提供音频输入接口、I2C接口、GPIO控制接口、显示控制接口等。
STM32F413H内置的DFSDM模块可以支持最多同时5路PDM数字麦克数据录入,并经过硬件滤波将PDM数据转换成PCM数据,降低了音频软件的复杂度和资源消耗。

硬件连接:

  1. 软件编译

软件:AliOS Things
下载AliOS Things后,切换到developer分支。

执行如下命令编译Application:
aos make sensordemo@stm32f413h-discovery

编译成功后,使用下面命令烧录镜像:
aos upload sensordemo@stm32f413h-discovery

  1. 软件介绍

AliOS Things
AliOS Things是面向IOT领域的轻量级物联网嵌入式操作系统。AliOS Things启动过程中,依次完成内核初始化、硬件资源初始化、功能组件初始化、外设驱动初始化。系统就绪后,通过用户定义的application_start()函数进入应用程序。

创建声位和音量显示界面
在application_start()函数中调用display_init()创建LCD刷新任务、显存刷新任务、定义显示界面。

切换到该界面时,声位识别算法开始运行,屏幕上指示当前声音方位。测试时建议距离mic阵列水平距离30cm,高度和mic阵列尽量接近,可以获得最佳效果。

切换到该界面时,计算mic信号的大小并转换成音量在屏上显示音量指示条,即提供声音强度检测功能。

运行声位算法
<1> 在application_start()函数中创建声源定位task,在该task中继续调用acoustic_sl_start()执行声源定位功能。

<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刷新界面音量进度条。

  1. 应用演示

视频观看:AliOS-Things声源定位应用演示

  1. 更多

参考AliOS Things手势识别应用演示

AliOS Things声源定位应用演示 1相关推荐

  1. AliOS Things声源定位应用演示

    1. 概述 利用麦克风阵列进行声源定位在智能降噪.语音增强.语音识别等领域有广泛应用和研究前景.本文介绍基于AliOS Things + STM32F413H Discovery开发板实现声源定位算法 ...

  2. 【声源定位】 球面散乱数据插值方法/似然估计hybrid spherical interpolation/maximum likelihood (SI/ML) 麦克风阵列声源定位

    1.软件版本 MATLAB2021a 2.本算法理论知识点 球面散乱数据插值方法/似然估计SI/ML 麦克风阵列声源定位 3.算法具体理论 这个部分的程序如下所示: 这个部分理论如下所示: 本文最后的 ...

  3. 波束形成、回声消除、声源定位及端到端等语音信号处理算法

    现今信息技术飞速发展,语音技术源源不断地融入到各个领域,语音信号处理是人机接口的关键技术,已广泛应用于直播.在线通话.智能音箱等产品中. (落地应用) 随着语音产品广泛落地应用,语音行业飞速发展,各大 ...

  4. mui 实现a锚点定位 (demo演示)【建议:仅作为参考】

    mui 实现<a>锚点定位(演示) - [建议:仅作为参考] 更改了js部分的源码class类名,可对比官方代码,匹配学习. 重要说明: 本案例,改编自"官方demo演示地址 · ...

  5. 麦克风阵列树莓派python_使用Python代码进行树莓派上的麦阵列声源定位

    偶然发现seeedstudio更新了他们的英文版说明书,然而中文版还没更新[捂脸].关于DOA的部分,除了原来的使用ODAS Studio的方法以外,又多加了一些使用Python代码直接进行DOA的章 ...

  6. 人工智能领域中声源定位的研究与发展------第一章 绪论

    人工智能领域中声源定位的研究与发展------第一章 绪论 转自: https://blog.csdn.net/jojozhangju/article/details/45157309 版权声明:本文 ...

  7. 麦克风阵列声源定位 GCC-PHAT

    麦克风阵列声源定位 GCC-PHAT 麦克风阵列声源定位(一) 利用麦克风阵列可以实现声源到达方向估计(direction-of-arrival (DOA) estimation),DOA估计的其中一 ...

  8. 基于双麦克风声源定位的视频跟踪

    基于双麦克风声源定位的视频跟踪 声源定位跟踪技术在当今社会有着越来越广泛的应用.在此使用两个高灵敏度麦克风作为传感器,配以音频信号处理芯片,接收音频信号并进行模数转换,使用FPGA器件作为核心控制器, ...

  9. 音视频开发(40)---麦克风阵列声源定位 GCC-PHAT

    麦克风阵列声源定位 GCC-PHAT 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u010592995/article/details/79735 ...

最新文章

  1. boost::graph模块实现closeness中心性的测试程序
  2. SpringMVC Hello World 实例
  3. Thinkphp 3.2中控制页面不缓存
  4. Centos7 使用Docker 部署Nginx+mysql+tomcat+调试联通_03
  5. 微信或手机浏览器在线显示office文件(已測试ios、android)
  6. weak_ptr概述,weak_ptr常用操作、尺寸
  7. 网盘搜索引擎(持续更新中)
  8. 边缘计算开源项目概述
  9. @【 ENVI】“应用程序无法正常启动0x0000007b”问题
  10. 数据库基础知识【 1 】
  11. PAT L1-046 整除光棍 光棍当然不是单身汪呢
  12. 微信小程序服务器和app互通,解读:App 与小程序的互通能力和限制
  13. Hibernate的搭建
  14. 01.04_计算机基础知识(键盘功能键和快捷键)
  15. 6个Excel操作技巧,期待明年更好的自己
  16. Educational Codeforces Round 128 (Rated for Div. 2) E. Moving Chips(玄学)
  17. 2012 lt;c语言综合实验gt;答案,厦门理工学院c语言实验4循环答案.doc
  18. 毫无剧透!电影《我不是药神》,“活该”你零差评,口碑炸裂!
  19. SQL Server错误18456,window身份验证登录失败解决办法
  20. 简单的企业电子传真解决方案

热门文章

  1. C语言 函数指针和指针函数区别 - C语言零基础入门教程
  2. 远程桌面服务器office版本,在启用远程桌面服务的计算机上部署 Office 2010
  3. gifcam使用缩小内存_Fedora 上的桌面环境内存占用测试 | Linux 中国
  4. flink 不设置水印_从0到1学习Flink—— Flink parallelism 和 Slot 介绍
  5. java7 异常继承_Java基础7-异常;jar包
  6. 脉冲宽度调制pdm_PWM (脉冲宽度调制)原理与实现
  7. 前端html预览,HTML5 上传前预览
  8. 2020.2idea怎么创建html项目_陈肆横项目日记:百度百科怎么创建自己的名字
  9. Win7系统转到Win10系统的装机方法
  10. 我两小时学完指针,你学会数组/指针与函数需要多久?