麦克风阵列研究1 odas odas_web

主要参考:

在树莓派上实现ODAS+Windows远程web演示_jimaofu0494的博客-CSDN博客ReSpeaker Mic Array v2.0 - Seeed Wiki

多年以前,我实现了16通道麦克风阵列,包括测向和波束成型。

16通道麦克风阵列 声波成像 声源定位 波束成形 定向录音_哔哩哔哩_bilibili

很多人问我要买,但是那套系统不方便批量生产和发送。所以我开始想办法做一套简化版系统,包含硬件和软件的简化。

在用16通道麦克风阵列前,我其实还有2个usb的麦克风阵列,一个是respeaker mic array v1.0(7通道),另一个是respeaker mic array v2.0(4通道)。它们其实跟16通道一样,可以直接对接odas,实现同样的功能。所以我打算先用这两块板子作为简化版硬件。

我更推荐使用4通道的v2.0,因为在odas项目里有现成的config文件了,另一个7通道的虽然也有个半成品,但是没有ip推送的设置,没法直接用。

首先,你要用下面python代码找到你的麦克风阵列的硬件名称

import pyaudio
 
p = pyaudio.PyAudio()
info = p.get_host_api_info_by_index(0)
numdevices = info.get('deviceCount')
 
for i in range(0, numdevices):
        if (p.get_device_info_by_host_api_device_index(0, i).get('maxInputChannels')) > 0:
            print "Input Device id ", i, " - ", p.get_device_info_by_host_api_device_index(0, i).get('name')

运行方法:

sudo pip install pyaudio
cd ~
nano get_index.py

 基本上不是1就是2,取决于你上电前就插好麦克风,还是上电后才插麦克风。

然后就是安装大名鼎鼎的odas了。

先用下面代码装odas,这里面的odas_live是核心算法。

sudo apt-get install libfftw3-dev libconfig-dev libasound2-dev libgconf-2-4
sudo apt-get install cmake
git clone https://github.com/introlab/odas.git
mkdir odas/build
cd odas/build
cmake ..
make

这个odas核心算法其实编译非常方便,但是下面说的部分就是hard模式了。

然后装odas_web,它是界面。

sudo apt install nodejs
sudo apt install npm
git clone https://github.com/introlab/odas_web
cd odas_web
npm install
npm start

但是你如果直接按照上面来装,大概率装不成,因为国内网络问题导致的。你可能要按照下文: 

https://segmentfault.com/a/1190000019543613?utm_source=tag-newest

这篇文章里设置npm代理,或者装cnpm我都试过。其实两种方法都有报错。但是不知道为啥在树莓派3里一顿装以后居然直接运行npm start就能跑成。 

 树莓派3性能不太够,跑起来很卡,如果你也想试试,可以直接用这个镜像:

链接: https://pan.baidu.com/s/1PWj2_RKfL8o-zTgg8mJfWA 提取码: dked

后来我就想到用笔记本电脑来跑或者树莓派4。

但是同样方法我在ubuntu 16.04笔记本上就不行(几年前其实我成功过)。另外这个odas_web我在树莓派4上也跑不了,屏幕分辨率和hdmi口都各种试过,就是不支持树莓派4。

至于使用方法,你既可以在odas_web上直接输入odaslive程序的位置以及它对应config文件的位置,点launch。也可以开好odas_web后再用下面命令直接运行。

bin/odaslive -c config/odaslive/respeaker_usb_4_mic_array.cfg

 这里面用的respeaker_usb_4_mic_array.cfg就是对应v2.0的硬件。如果你打开cfg文件,可以看到,里面有4个咪头的位置,虽然看上去有5个通道,但是有一个通道不是麦克风原始数据,你还可以在里面改硬件序号,以及推送的服务器ip。

如果你必须用7通道的v1.0硬件,那你可以用respeaker.cfg,但是里面没有ip,所以你得合并两个文件,有点麻烦。

总之最后虽然能跑起来,但是,这个基于npm的odas_web给我带来了很大的问题,它兼容性差(不支持树莓派4)、安装困难(ubuntu没装成)、功能也不多(不包含算法,且只是测向而已)、还很浪费性能,所以我打算用python+opencv自己做个界面出来。

  • 5
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值