AliOS Things声源定位应用演示

1. 概述

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

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

2. 环境搭建

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

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

硬件连接:

 

3. 软件编译

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

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

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

4. 软件介绍

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

5. 应用演示

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

6. 更多

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


原文链接
本文为云栖社区原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/520880.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

可优比和aag哪个好_火花塞多级和单级哪个性能更好?多就等于好?这可未必

从电极数量来判断火花塞性能&#xff0c;选择火花塞的一个误区&#xff01;不知从何时开始&#xff0c;很多车友选择火花塞特别迷信侧电极数量&#xff0c;认为侧电极数量越多&#xff0c;火花塞就越好&#xff0c;点火火花就越大。我估计这是被一些别有用心的人带节奏了&#…

Quick BI v3.0版本全新起航——2018杭州云栖大会

在9月22日杭州云栖大会云上数据中台专场中&#xff0c;阿里巴巴产品专家陌停跟现场的观众们分享了Quick BI v3.0版本的新体验、新分析和新功能。 作为一个高效数据分析与展现的BI套件&#xff0c;Quick BI通过拖拽式的可视化分析能力&#xff0c;让懂业务的人自助式实现数据分析…

IDEA配置JDK

IDEA配置JDK 项目应用JDK

漫画:我用深度学习框架画下女朋友最美的脸

这不&#xff0c;又一个程序员为爱变身灵魂画手&#xff0c;看得我都想学画画了。阿华是幸运的&#xff0c;因为他找到了对的方法&#xff0c;事半功倍&#xff0c;最终有情人终成眷属。这也得益于 PyTorch 的易学易用&#xff0c;大多数人第一次使用 PyTorch 几乎可以做到无痛…

云端一体化差分+安全升级,AliOS Things物联网升级“利器”

1.1 OTA升级简介 随着物联网的日益发展&#xff0c;OTA升级逐渐成为物联网设备的刚性需求&#xff0c;目前物联网设备种类繁多&#xff0c;但并未提供统一的OTA升级方案&#xff0c;针对日益发展的物联网设备&#xff0c;开发者迫切需要一套云端一体化的OTA升级方案来满足快速迭…

startlogging中设置setstdout=false来禁用这个功能。_Windows 10禁用USB选择性暂停设置,峰哥教你解决USB设备失灵问题...

最近发现在 Win10 笔记本中使用 U 盘或者连接一些 USB 外设的情况下&#xff0c;时不时会有设备失灵的现象。经过研究发现&#xff0c;微软为了节省电力&#xff0c;在 Win10 系统中内置了一项「USB 选择性暂停设置」&#xff0c;而这个功能默认还处于启用状态。启用「USB 选择…

数据库“新解”,看这里,get!

自从第一台通用计算机诞生至今&#xff0c;围绕计算机系统硬件的创新迭代就一直“在路上”&#xff0c;伴随着硬件能力的不断提升&#xff0c;软件更新自然不可缺少。通常来说在传统的计算机软件工程领域&#xff0c;操作系统、编译器与数据库被并称为最具难度的“三剑客”系统…

阿里云发布链路追踪服务Tracing Analysis

近日&#xff0c;在杭州云栖大会上&#xff0c;阿里云发布了链路追踪服务Tracing Analysis&#xff0c;成本是自建链路追踪系统的1/5或更少&#xff0c;可为分布式应用的开发者提供完整的调用链路还原、调用请求量统计、链路拓扑、应用依赖分析等工具&#xff0c;帮助开发者快速…

深入体验php项目开发.pdf,《深入体验PHP项目开发》.(谭贞军).[PDF]

090756q2fwgddoa5qto2kz.jpg (65.13 KB, 下载次数: 0)2018-8-8 14:24 上传本书介绍:php语言是当今使用最为频繁的网络编程语言之一&#xff0c;一直在开发web领域占据重要的地位。本书通过10个综合实例的实现过程&#xff0c;详细讲解了php语言在实践项目中的综合运用过程&…

DT时代下 数据库灾备的探索与实践

170余场主题峰会和分论坛完美呈现&#xff0c;上千位分享嘉宾、数万名创新创业导师齐聚一堂&#xff0c;刚刚结束的2018杭州云栖大会让云栖小镇又一次成为探索数字世界的中心。 随着DT时代的到来&#xff0c;企业对数据的依赖程度与日俱增&#xff0c;数据保护早已成为企业的一…

2019工作榜单:程序员吸金榜,AI排第一,这个我服!

先来看一个2019工作榜单&#xff1a;作为全球知名的招聘网站Indeed最近发布了一份2019年最佳工作榜单&#xff0c;公布了最有前景的行业和相应的岗位薪资:排名第一的是机器学习人工智能相关的岗位&#xff0c;从2015-2018岗位增加了3倍多&#xff0c;平均的年薪接近百万(98万)。…

node js fork php,Node.js中execFile,spawn,exec和fork简介

Node.js中execFile,spawn,exec和fork简介Node.js子流程child_process模块提供四种不同方法执行外部应用&#xff1a;所有这些都是异步&#xff0c;调用这些方法会返回一个对象&#xff0c;这对象是ChildProcess类的实例。1. execFile用于执行一个外部应用&#xff0c;应用退出后…

阿里云应用配置管理ACM发布,重新定义云上配置的存放方式

9月26日&#xff0c;阿里云宣布应用配置管理ACM产品正式商用&#xff0c;将重新定义云上配置的存放方式。 据了解&#xff0c;该产品具备亿级应用配置处理能力&#xff0c;将分布式架构下的应用配置管理智能化&#xff0c;极大的降低了在微服务、Devops、大数据等场景下配置管…

IDEA远程连接mysq数据库

#测试连接串 jdbc:mysql://localhost:3306/flowable-base?useUnicodetrue&characterEncodingutf8&zeroDateTimeBehaviorconvertToNull&useSSLtrue&serverTimezoneGMT%2B8

黑科技揭秘:网红“天空物联网飞艇”服务范围为何能突破30公里

2018杭州云栖大会的网红飞艇&#xff0c;搭载LoRaWAN网关&#xff0c;与地面网关一起组成上天入地的天空物联网服务&#xff0c;获得众多关注。其最主要的核心是Link WAN物联网络管理平台&#xff0c;提供了网关管理与设备快数接入云端&#xff0c;使得飞艇挂载网关十分容易。 …

雪花算法(snowflake) :分布式环境,生成全局唯一的订单号 | CSDN 博文精选

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 琦彦 责编 | 阿秃转自 &#xff5c; CSDN 博客snowflake方案snowflake是Twitter开源的分布式ID生成算法&#xff0c;结果是一个long型的ID。这种方案大致来说是一种以划分命名空间&#xff08;UUID也算&#xff0c;由于比较…

RabbitMQ+haproxy+keeplived 高可用负载均衡高可用镜像集群队列_01

文章目录一、RabbitMQ 集群节点说明二、服务器hosts文件统一修改三、RabbitMQ 镜像集群队列搭建部署一、RabbitMQ 集群节点说明 服务器IPhostname节点说明端口管控台地址账号密码192.168.0.115mq-01rabbitmq master5672http://192.168.0.115:15672guestguest192.168.0.117mq-0…

vue click事件_Vue.js---实现前后端分离架构中前端页面搭建(二)

【Vue.js实现前后端分离架构中前端页面搭建】九、Vue的事件处理Vue的事件都是使用 v-on:事件类型 进行绑定。也可以使用事件类型进行操作。其中事件类型和之前学习jQuery中事件名称是一样。示例中都是以点击事件为例。1. 直接操作属性值代码示例中通过点击按钮对counter值加一。…

边缘计算的五个大坑,里面一定有你跳过的

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 砍柴网责编 | 阿秃在规模和增速方面&#xff0c;美国市场调研公司CB Insights估算&#xff0c;到2023年全球边缘计算行业&#xff0c;整体市场容量有望达到340亿美元。Technavio估计&#xff0c;从2018年到2022年&#xff0…