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

别忘了用source activate doa切到专门的环境里,或者conda create -n doa python=3.6现造一个环境。

安装驱动:1

2

3

4proxychains4 git clone https://github.com/respeaker/seeed-voicecard.git

cd seeed-voicecard

sudo proxychains4 ./install.sh

sudo reboot -h now

检查驱动:1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72arecord -L

null

Discard all samples (playback) or generate zero samples (capture)

default

ac108

dmixer

ac101

sysdefault:CARD=seeed8micvoicec

seeed-8mic-voicecard,

Default Audio Device

dmix:CARD=seeed8micvoicec,DEV=0

seeed-8mic-voicecard,

Direct sample mixing device

dsnoop:CARD=seeed8micvoicec,DEV=0

seeed-8mic-voicecard,

Direct sample snooping device

hw:CARD=seeed8micvoicec,DEV=0

seeed-8mic-voicecard,

Direct hardware device without any conversions

plughw:CARD=seeed8micvoicec,DEV=0

seeed-8mic-voicecard,

Hardware device with all software conversions

aplay -L # 输出驱动,即播放

null

Discard all samples (playback) or generate zero samples (capture)

default

ac108

dmixer

ac101

sysdefault:CARD=ALSA

bcm2835 ALSA, bcm2835 ALSA

Default Audio Device

dmix:CARD=ALSA,DEV=0

bcm2835 ALSA, bcm2835 ALSA

Direct sample mixing device

dmix:CARD=ALSA,DEV=1

bcm2835 ALSA, bcm2835 IEC958/HDMI

Direct sample mixing device

dsnoop:CARD=ALSA,DEV=0

bcm2835 ALSA, bcm2835 ALSA

Direct sample snooping device

dsnoop:CARD=ALSA,DEV=1

bcm2835 ALSA, bcm2835 IEC958/HDMI

Direct sample snooping device

hw:CARD=ALSA,DEV=0

bcm2835 ALSA, bcm2835 ALSA

Direct hardware device without any conversions

hw:CARD=ALSA,DEV=1

bcm2835 ALSA, bcm2835 IEC958/HDMI

Direct hardware device without any conversions

plughw:CARD=ALSA,DEV=0

bcm2835 ALSA, bcm2835 ALSA

Hardware device with all software conversions

plughw:CARD=ALSA,DEV=1

bcm2835 ALSA, bcm2835 IEC958/HDMI

Hardware device with all software conversions

sysdefault:CARD=seeed8micvoicec

seeed-8mic-voicecard,

Default Audio Device

dmix:CARD=seeed8micvoicec,DEV=0

seeed-8mic-voicecard,

Direct sample mixing device

dsnoop:CARD=seeed8micvoicec,DEV=0

seeed-8mic-voicecard,

Direct sample snooping device

hw:CARD=seeed8micvoicec,DEV=0

seeed-8mic-voicecard,

Direct hardware device without any conversions

plughw:CARD=seeed8micvoicec,DEV=0

seeed-8mic-voicecard,

Hardware device with all software conversions

1 测试LED

说实话,自打买了这个麦阵列,我还从来没试过这12个LED灯[捂脸],试试吧要不感觉对不起这个板子,另外,运行demo需要gpiozero、spidev、pyusb。

1

2

3

4

5proxychains4 git clone --depth 1 https://github.com/respeaker/pixel_ring.git

cd pixel_ring

proxychains4 pip install -U -e .

proxychains4 pip install gpiozero RPi.GPIO

python examples/respeaker_4mic_array.py

控制LED的主要代码其实就在函数show(),直接在Python交互环境中输入下面的代码,就可以打开12点方向的灯,并渲染为白色,也就是ARGB(0, 64, 64, 64)。

1

2

3

4

5

6

7

8from pixel_ring import pixel_ring

from gpiozero import LED

power = LED(5)

power.on()

pixel_ring.set_brightness(10) # 0-100,其实会被转换为`APA102.dev.global_brightness`的0-31

pixel_ring.pattern.show([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 64, 64])

用于控制的数组是一个48位的list,从1点钟方向开始,到12点钟方向结束,每四位控制一个LED灯,非常好操作。

2 装DOA相关库

添加seeed提供的apt源。(靠谱的公司啊)1

2

3echo "deb https://seeed-studio.github.io/pi_repo/ stretch main" | sudo tee /etc/apt/sources.list.d/seeed.list

proxychains4 curl https://seeed-studio.github.io/pi_repo/public.key | sudo apt-key add -

proxychains4 sudo apt update

安装numpy和pyaudio:1

2

3proxychains4 conda install -y numpy

proxychains4 sudo apt-get install -y portaudio19-dev

proxychains4 pip install pyaudio

安装编译工具:1sudo proxychains4 apt-get install -y swig python-dev libatlas-base-dev build-essential make

安装snowboy(热词检测DOA):1

2

3

4

5proxychains4 git clone --depth 1 https://github.com/Kitt-AI/snowboy.git

cd snowboy

python setup.py build

python setup.py bdist_wheel

pip install dist/snowboy*.whl

安装seeed的voice-engin:1

2

3

4proxychains4 git clone https://github.com/voice-engine/voice-engine.git

cd voice-engine

python setup.py bdist_wheel

pip install dist/*.whl

测试ok~:1python ~/doa/voice-engine/examples/respeaker_6mic_array_for_pi/kws_doa.py

如果只是想用DOA功能,可以试试seeed的老项目mic_array:

1

2proxychains4 git clone https://github.com/respeaker/mic_array.git

python ./mic_array/mic_array.py

对比了一下,跟人家introlab/odas项目差的还是比较远的。直观上看就是我们简单的靠fft实现的DOA仅仅能做到平面范围内的方位判断,仅输出一个角度(平面offset),速度慢且不支持声源跟踪等功能。而odas的声源定位项目输出两个值,一个平面offset一个法向offset,还能进行声源分辨,多声源跟踪跟踪。odas项目的理论收录在Lightweight and Optimized Sound Source Localization and Tracking Methods for Opened and Closed Microphone Array Configurations中,值得一读。

麦克风阵列树莓派python_使用Python代码进行树莓派上的麦阵列声源定位相关推荐

  1. 在树莓派里面运行python代码_树莓派如何运行python程序

    树莓派如何运行python程序 发布时间:2020-09-23 12:03:39 来源:亿速云 阅读:128 作者:小新 这篇文章主要介绍了树莓派如何运行python程序,具有一定借鉴价值,需要的朋友 ...

  2. 两维天线阵列波束成型原理Python代码

    在讲解两维天线阵列之前,需要了解一维天线阵列波束成形原理,只有了解了一维天线阵列,才能弄明白二维,好了,我们先开始科普一维天线阵列原理. 一维天线阵列原理: 如下图,所示,如果在theda确定的情况下 ...

  3. 数值分析 python_数值分析python代码

    数值分析python代码 from math import logfrom math import sin,cosimport random#Q1def bifection(f,a,b,error,n ...

  4. 利用Python实现键盘操控小车、通过树莓派GPIO使用python操控小车(树莓派小车、树莓派+Python+LN298操控小车)

    (树莓派小车.树莓派+Python+LN298操控小车) 一.Python代码获取键盘实时键位 二.树莓派自带GPIO控制电机 大功告成!编写不易,大家成功后点个关注or赞谢谢~~ 一.Python代 ...

  5. python代码编辑器-世界上最好的Python编辑器是什么?

    原标题:世界上最好的Python编辑器是什么? 世界上最好的 Python 编辑器或 IDE 是什么?炫酷的界面.流畅的体验,我们投 PyCharm 一票,那么你呢?本文介绍了 PyCharm.Jup ...

  6. 树莓派蜂鸣器python代码_树莓派+蜂鸣器=整点报时器

    试了下用树莓派外加一个有源蜂鸣器,实现了一个简单的报时功能. 对于有源.无源蜂鸣器的区别,简短介绍下: 一.无源蜂鸣器: 1.无源内部不带震荡源,所以如果用直流信号无法令其鸣叫.必须用2K~5K的方波 ...

  7. chrome动态ip python_简单python代码实现模拟浏览器操作

    首先安装python环境,楼主为python3.6.6 用pip 安装selenium pip install selenium 下面是代码的具体实现: #交互模式 from selenium imp ...

  8. multiprocessing python_一行 Python 代码实现并行

    译者:caspar 译文: https://segmentfault.com/a/1190000000414339 原文: https://medium.com/building-things-on- ...

  9. 树莓派蜂鸣器python代码_树莓派接入无源蜂鸣器

    x淘购得一无源蜂鸣器,附带文档只有Arduino的测试代码. 只有自行探索接线方式以及测试代码. 无源蜂鸣器需要脉宽调制(PWM)信号,查询得知GPIO的物理pin 12有此功能.用杜邦线连接无源蜂鸣 ...

最新文章

  1. 小李飞刀:SQL题目第二弹!
  2. 局域网聊天老大——飞鸽传书
  3. 在武大吉奥期间的任务
  4. SSIS工具的ETL过程,全量ETL和增量ETL过程教程
  5. java date eee_java将 Date原始格式EEE MMM dd HH:mm:ss Z yyyy转成指定格式
  6. (@WhiteTaken)设计模式学习——代理模式
  7. 软件架构师常会用到的几款软件
  8. 转:使用脚本关闭订单头
  9. matlab三维热传导计算,matlab练习程序(差分法解二维热传导方程)
  10. 分治——最近点对问题
  11. 《微表情心理学》总结
  12. 项目管理实战精髓培训课
  13. 【HTML基础】第一课、Web前端的概述
  14. 手机端搜狗输入法语音转文字的体验报告
  15. 计算机设计大赛数媒民族元素类,北京工业大学艺术设计学院
  16. python骨灰教学_10招!看骨灰级Pythoner玩转Python的方法
  17. 迪尤肯大学计算机专业,迪尤肯大学
  18. html 代码块压缩
  19. 常用云计算单词中英对照
  20. mPaaS iOS框架笔记2-微应用和服务(以MPH5Demo_plugin为例)

热门文章

  1. QR code 二维码基础入门教程(二)
  2. Pandas 处理 dummy variable
  3. windows 开启/关闭本地连接的批处理程序
  4. 实用收藏Linux命令备忘
  5. Android手机截屏
  6. Office 365系列之八:配置和体验Exchange和Lync
  7. win7系统office向程序发送命令时出现错误
  8. 基于AVR单片机PWM功能的数控恒流源研制
  9. redis哨兵模式原理_Redis的哨兵 (sentinal) 机制的工作原理
  10. python 相关性检验怎么计算p值_生信工具 | 相关性热图还能玩出什么花样?