IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 麦克风阵列研究 -> 正文阅读

[Python知识库]麦克风阵列研究

主要参考:

在树莓派上实现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自己做个界面出来。

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-03-08 22:24:55  更:2022-03-08 22:27:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/31 3:31:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码