Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time
May 31, 2017 09:56
May 31, 2017 09:56
August 21, 2018 18:59
August 25, 2018 23:17
September 19, 2017 08:23
March 8, 2018 18:57
August 25, 2018 23:18

Mic Array

Utils for ReSpeaker Microphone Array. It includes DOA (Direction of Arrival), VAD (Voice Activity Detection), KWS (Keyword Spotting or Keyword Search) and etc.

  • - control the pixel ring
  • - read 8 channels raw audio from the Mic Array and estimate sound's DOA (Direction of Arrival)
  • - do VAD (Voice Activity Detection) and then estimate DOA
  • - search keyword and then estimate DOA


Get started

  1. Run to control the pixel ring of the Mic Array through USB HID

    sudo pip install pyusb
    sudo python

    If you don't want to access USB device with sudo, add a udev .rules file to /etc/udev/rules.d:

    echo 'SUBSYSTEM=="usb", MODE="0666"' | sudo tee -a /etc/udev/rules.d/60-usb.rules
    sudo udevadm control -R  # then re-plug the usb device
  2. Read 8 channels audio from the Mic Array and estimate sound's DOA

    sudo apt-get install python-numpy    # or pip install numpy
  3. Do VAD and then estimate DOA

    sudo pip install webrtcvad
  4. Do KWS and then estimate DOA

    Get snowboy work and run python

    git submodule init
    git submodule update
    cd snowboy/swig/Python
    sudo apt-get install python-dev libatlas-base-dev swig           # requiremetns to compile snowboy
    make                                                 # if got an error of swig3.x.x, edit the Makefile and disable the swig version check.
    echo 'from snowboydetect import *' >     # create for a python module
    cd ../../..                                          # chang to the root directory of the repository
    ln -s snowboy/swig/Python snowboydetect

For Raspberry Pi

Google released Google Assistant Library for Raspberry Pi to provide hotword detection ("Ok Google" or "Hey Google"), audio recording, assistant response playback and etc. We can add LED lights indicator based on the library to make a device very similar with Google Home.

  1. Follow the guide to install Google Assistant Library.
  2. Run python

Use 4 Mic Array with ODAS to sound source localization and tracking

ODAS is a very cool project to perform sound source localization, tracking, separation and post-filtering. Let's have a try!

  1. get ODAS and build it
sudo apt-get install libfftw3-dev libconfig-dev libasound2-dev
git clone --branch=phoenix
mkdir odas/build
cd odas/build
cmake ..
  1. get ODAS Studio from and open it. You can run ODAS Studio on a computer or the Raspberry Pi

The odascore will be at odas/bin/odascore, the config file is at odas.cfg. Change odas.cfg based on your sound card number.

    interface: {
        type = "soundcard";
        card = 1;
        device = 0;

If you run the ODAS Studio on a computer, you should also need to change IP address from to the IP of the computer.