Sound Source Tracking

0. 准备工作

硬件为ReSpeaker 4-Mic,将其与树莓片连接。

SoundSourceTracking.zip拷贝至home目录。运行如下指令。请全部使用我们修改后的代码,不要使用github上官方源码,会有各种问题。

cd ~
unzip SoundSourceTracking.zip
cd ~/SoundSourceTracking
unzip 4mics_hat-master.zip
unzip odas.zip
unzip seeed-voicecard-5.9.zip

1. 安装ReSpeaker 4-Mic驱动

Step 1. 安装驱动并重启。

cd ~/SoundSourceTracking/seeed-voicecard-5.9
sudo ./install.sh
sudo reboot now

打印如下内容则为安装成功:

Step 2. 选择声卡

sudo raspi-config
# Select 1 System options
# Select S2 Audio
# Select MAI PCM i2s-hifi-0
# Select Finish

Step3. 检查声卡是否安装成功,打印出四个seeed4micvoicec即为成功

(base) mman@raspberrypi:~ $ arecord -L
nullDiscard all samples (playback) or generate zero samples (capture)
lavrateRate Converter Plugin Using Libav/FFmpeg Library
samplerateRate Converter Plugin Using Samplerate Library
speexrateRate Converter Plugin Using Speex Resampler
jackJACK Audio Connection Kit
ossOpen Sound System
pulsePulseAudio Sound Server
upmixPlugin for channel upmix (4,6,8)
vdownmixPlugin for channel downmix (stereo) with a simple spacialization
defaultPlayback/recording through the PulseAudio sound server
playback
ac108
usbstream:CARD=Headphonesbcm2835 HeadphonesUSB Stream Output
usbstream:CARD=vc4hdmi0vc4-hdmi-0USB Stream Output
usbstream:CARD=vc4hdmi1vc4-hdmi-1USB Stream Output
hw:CARD=seeed4micvoicec,DEV=0seeed-4mic-voicecard, bcm2835-i2s-ac10x-codec0 ac10x-codec0-0Direct hardware device without any conversions
plughw:CARD=seeed4micvoicec,DEV=0seeed-4mic-voicecard, bcm2835-i2s-ac10x-codec0 ac10x-codec0-0Hardware device with all software conversions
sysdefault:CARD=seeed4micvoicecseeed-4mic-voicecard, bcm2835-i2s-ac10x-codec0 ac10x-codec0-0Default Audio Device
dsnoop:CARD=seeed4micvoicec,DEV=0seeed-4mic-voicecard, bcm2835-i2s-ac10x-codec0 ac10x-codec0-0Direct sample snooping device
usbstream:CARD=seeed4micvoicecseeed-4mic-voicecardUSB Stream Output

Step 4. 通过audacity测试麦克风是否正常

sudo apt install audacity
audacity                      // run audacity

Step 5. 灯光测试,运行下列程序观察灯光是否闪烁

cd ~/SoundSourceTracking/4mics_hat-master
sudo apt-get install portaudio19-dev libatlas-base-dev
pip3 install -r requirements.txt
python3 interfaces/pixels.py

2. 声源定位与跟踪

Step 1. 安装依赖项

sudo apt-get install libfftw3-dev libconfig-dev libasound2-dev libgconf-2-4
sudo apt-get install cmake
sudo apt-get install libfftw3-dev
sudo apt-get install libconfig-dev
sudo apt-get install libasound2-dev
sudo apt-get install libpulse-dev

Step 2. 编译我们改版的ODAS程序

cd ~/SoundSourceTracking/odas/build
cmake ..
make

Step3. 运行声源定位程序

cd ~/SoundSourceTracking/odas/build/bin
./odaslive -c ~/SoundSourceTracking/odas/config/odaslive/respeaker_4_mic_array.cfg

正常会打印如下数据:(报错请看后面)

{"timeStamp": 334,"src": [{ "x": 0.082, "y": -0.678, "z": 0.731, "E": 0.167 },{ "x": -0.123, "y": -0.621, "z": 0.774, "E": 0.079 },{ "x": -0.375, "y": -0.516, "z": 0.770, "E": 0.036 },{ "x": -0.434, "y": -0.597, "z": 0.675, "E": 0.027 }]
}
{"timeStamp": 334,"src": [{ "id": 4, "tag": "dynamic", "x": -0.126, "y": -0.967, "z": 0.222, "activity": 0.005, "sita": -97.450, "h": 1.347 },{ "id": 0, "tag": "", "x": 0.000, "y": 0.000, "z": 0.000, "activity": 0.000, "sita": 0.000, "h": nan },{ "id": 0, "tag": "", "x": 0.000, "y": 0.000, "z": 0.000, "activity": 0.000, "sita": 0.000, "h": nan },{ "id": 0, "tag": "", "x": 0.000, "y": 0.000, "z": 0.000, "activity": 0.000, "sita": 0.000, "h": nan }]
}

重点查看第二个大括号内的数据,sita为音源在xOy平面(麦克风所在平面)的角度,h为音源的高度,注意h与现实的极性相反。

无报错跳过此部分,若遇到报错:Source hops: Cannot open audio device hw:x,0: No such file or directory

运行

python ~/SoundSourceTracking/odas/audio_dev.py

打印如下

ALSA lib pcm.c:2660:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.front
ALSA lib pcm.c:2660:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2660:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2660:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm.c:2660:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround21
ALSA lib pcm.c:2660:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround21
ALSA lib pcm.c:2660:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround40
ALSA lib pcm.c:2660:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround41
ALSA lib pcm.c:2660:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround50
ALSA lib pcm.c:2660:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround51
ALSA lib pcm.c:2660:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround71
ALSA lib pcm.c:2660:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.iec958
ALSA lib pcm.c:2660:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.iec958
ALSA lib pcm.c:2660:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.iec958
ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find definition 'cards.bcm2835_headpho.pcm.hdmi.0:CARD=0,AES0=4,AES1=130,AES2=0,AES3=2'
ALSA lib conf.c:4745:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5233:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2660:(snd_pcm_open_noupdate) Unknown PCM hdmi
ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find definition 'cards.bcm2835_headpho.pcm.hdmi.0:CARD=0,AES0=4,AES1=130,AES2=0,AES3=2'
ALSA lib conf.c:4745:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5233:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2660:(snd_pcm_open_noupdate) Unknown PCM hdmi
ALSA lib pcm.c:2660:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem
ALSA lib pcm.c:2660:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem
ALSA lib pcm.c:2660:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline
ALSA lib pcm.c:2660:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline
ALSA lib pcm_oss.c:377:(_snd_pcm_oss_open) Unknown field port
ALSA lib pcm_oss.c:377:(_snd_pcm_oss_open) Unknown field port
ALSA lib pcm_a52.c:823:(_snd_pcm_a52_open) a52 is only for playback
ALSA lib conf.c:5200:(snd_config_expand) Unknown parameters {AES0 0x6 AES1 0x82 AES2 0x0 AES3 0x2  CARD 0}
ALSA lib pcm.c:2660:(snd_pcm_open_noupdate) Unknown PCM iec958:{AES0 0x6 AES1 0x82 AES2 0x0 AES3 0x2  CARD 0}
ALSA lib pcm_usb_stream.c:486:(_snd_pcm_usb_stream_open) Invalid type for card
ALSA lib pcm_usb_stream.c:486:(_snd_pcm_usb_stream_open) Invalid type for card
ALSA lib pcm_hw.c:1829:(_snd_pcm_hw_open) Invalid value for card
ALSA lib pcm_hw.c:1829:(_snd_pcm_hw_open) Invalid value for card
Input Device id  2  -  seeed-4mic-voicecard: bcm2835-i2s-ac10x-codec0 ac10x-codec0-0 (hw:5,0)
Input Device id  7  -  pulse
Input Device id  10  -  ac108
Input Device id  12  -  default

定位这一行

Input Device id  2  -  seeed-4mic-voicecard: bcm2835-i2s-ac10x-codec0 ac10x-codec0-0 (hw:5,0)

看最后hw:5,0,请记住这个5

修改文件~/SoundSourceTracking/odas/config/odaslive/respeaker_4_mic_array.cfg的第18行,将card = 3;中的3修改为前面记住的数字5即可

Step 4. 获取音源跟踪的数据

音源跟踪的数据位于~/SoundSourceTracking/odas/build/bin/sst.txt中,重新启动后改文本会同步更新,只需不断读取该文本的数据即可。以下为文本中的数据的事例。

{"timeStamp": 303,"src": [{ "id": 4, "tag": "dynamic", "x": -0.125, "y": -0.967, "z": 0.222, "activity": 0.094, "sita": -97.346, "h": 1.347 },{ "id": 0, "tag": "", "x": 0.000, "y": 0.000, "z": 0.000, "activity": 0.000, "sita": 0.000, "h": nan },{ "id": 0, "tag": "", "x": 0.000, "y": 0.000, "z": 0.000, "activity": 0.000, "sita": 0.000, "h": nan },{ "id": 0, "tag": "", "x": 0.000, "y": 0.000, "z": 0.000, "activity": 0.000, "sita": 0.000, "h": nan }]
}

链接: https://pan.baidu.com/s/1YX3aOW3js9WRyQI7XX4I2Q?pwd=whsr 提取码: whsr
–来自百度网盘超级会员v6的分享

ReSpeaker 4-Mic 声源定位相关推荐

  1. 麦克风阵列研究2 声源定位 python界面

    上一篇文章说到odas_web界面非常难安装,并且运行也很卡.所以我自己用python写了一个界面程序,用来接收odas处理完的结果. 这个界面程序与odas之间是通过socket连接的, 界面作为服 ...

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

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

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

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

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

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

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

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

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

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

  7. matlab 声源定位csdn_麦克风阵列声源定位 GCC-PHAT(一)

    麦克风阵列声源定位(一) 0 a" N0 Q" t  t2 l$ t) F利用麦克风阵列可以实现声源到达方向估计(direction-of-arrival (DOA) estima ...

  8. 自动跟随机器人教程(六)软件部分 树莓派 声源定位

    接下来的部分比较有趣,是本项目提出的机器人和市场上大多数机器人不同的地方.它除了能够通过摄像头图像和超声波数据来做一些自动控制外,还使用了Respeaker的4通道麦克风阵列.使用这个模块的好处是,在 ...

  9. 基于时延法的麦克风阵列声源定位分析

    文章目录 一. 关于麦克风阵列 二. 关于声源定位 三. 基于广义互相关(GCC)计算时延 四. 基于时延差的声源定位法 1. 近场模型 2. 远场模型 五. 三维空间阵列的声源定位系统实现 1. 推 ...

最新文章

  1. 浅谈图网络在视觉任务中的应用
  2. html按钮不可选中,如何使HTML文本不可选择
  3. python 教材为什么喜欢用spam举例_斯坦福大学教授列举出的python入门最容易犯的错误,你中招了吗?...
  4. JQuery DataTable的配置项及事件
  5. 【白皮书分享】2020全球数字治理白皮书.pdf(附下载链接)
  6. modal 弹出层后禁止底层滚动
  7. android源码分析网上随笔记录
  8. android大作业源代码,大作业源代码.doc
  9. php元换成万元,数字单位换算(元换算成万元换算器)
  10. 微型计算机技术上机报告心得,微机培训心得体会3篇
  11. 手机软件自动化测试探索
  12. asynchronous aof fsync is taking too long (disk is busy?)
  13. @Alias使用技巧
  14. 将小米SoundMove 无缝接入 ChatGPT
  15. Xshel和Xftp免费版下载
  16. 抖音SEO关键词排名,抖音SEO优化软件
  17. git版本控制命令行说明
  18. 浙江大学计算机设计学考研科目,浙江大学计算机学院2019考研复试考什么
  19. c#打开关闭office的修订模式
  20. 什么软件能测试触控采样率,苹果iPhone X触控采样率达120Hz,但不支持ProMotion

热门文章

  1. 2017年英语四级作文
  2. 2018第九届蓝桥杯大赛软件类B组C/C++省赛题解
  3. 嘴哥有料系列-can工具1:CAN诊断浅谈 + 如何用CAN工具进行诊断
  4. springboot毕设项目海尔空调售后服务系统d70j3(java+VUE+Mybatis+Maven+Mysql)
  5. SmartNavigation苗条版ClientNavigation增肥
  6. QSL之创建与管理表
  7. 驼峰式与下划线命名规则
  8. [工具]ScreenToGif:一款小而实用的屏幕录制生成gif工具
  9. 【工具】复制别人的CSDN博客文章到本地
  10. Java处理文件上传 00 截断问题