博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AliOS Things 声源定位应用演示
阅读量:7265 次
发布时间:2019-06-29

本文共 2130 字,大约阅读时间需要 7 分钟。

摘要: 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手势识别应用演示

转载地址:http://ylgdm.baihongyu.com/

你可能感兴趣的文章
Navicat 编辑器高级功能之自动完成代码
查看>>
kafka 资料汇总
查看>>
把JFinal整合到Actframework是一种什么样的体验
查看>>
软件开发人员: 我此时想彻彻底底的加班!
查看>>
如何做好服务器安全维护工作
查看>>
安全狗获ISO27001信息安全管理体系认证
查看>>
C语言代码格式
查看>>
算法复杂度分析
查看>>
log4j配置详解
查看>>
向左滚动文字 js代码效果
查看>>
Javascript获取HTML静态页面参数传递值示例
查看>>
SOA思想
查看>>
囚徒健身
查看>>
用Javascript刷新框架子页面的七种方法
查看>>
检查单 2013-11-27
查看>>
makefile讲义(1)——makefile基础(概述)
查看>>
Cookie
查看>>
IOS上路_11-简单示例-手势识别2-2
查看>>
2.7 xargs和exec详解
查看>>
C#中New关键词的几种用法
查看>>