Giter Club home page Giter Club logo

soundloc's Introduction

NEW PACKAGE UPDATE

There is an updated version of this package called soundloc_kmeans that is recommended.

soundloc

Lightweight multiple sound source localization, based on a triangular microphone array.

Uses JACK for input/audio audio server.

Outputs localizations through the JsonMsg topic, described by the json_msgs node.

Configured by soundloc_config.yaml:

  • distance between microphones
  • number of windows of noise samples for initial voice activity detection calibration
  • energy threshold to consider change of inactive and active states
  • energy threshold to trigger activity
  • coherence threshold (in degrees) between local microphone-pair estimations
  • angle reversion (180 degree shift)
  • graphical representation of localizations (requires PLplot, see dependencies)
  • automatic connection to JACK inputs
  • record inputs in WAV files
  • choose between Cross-Correlation (1) or Phase Transform (2) for time delay estimation
  • choose between clustering method (1), Markov Chain Monte Carlo Data Association (2), or Kalman filtering (3) for tracking methodology

Dependencies

Packages that can be installed trough apt official repositories:

  • libjack-jackd2-dev: JACK development libraries
  • libfftw3-dev: a very fast FFT C/C++ implementation
  • libsndfile1-dev, libsamplerate0-dev: for WAV file creation
  • libplplot-c++11, libplplot-dev, plplot12-driver-xwin: for plotting results in real-time
  • libjsoncpp-dev: for constructing JSON structures

soundloc's People

Contributors

balkce avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

soundloc's Issues

a question about this project

Hi,I am interested in this project, (I use jack as input but with an array with 6 mics ,and I choose three of them as a triangle array)
however,when I run roslaunch soundloc soundloc.launch,terminal show like this :it just show a plot with 1-360 degree,it does not return the direction of voice.
MCMCDA: Reading conf file... /home/yxx/catkin_soundloc/src/soundloc/soundloc/src/mcmcda/mcmcda.conf
MCMCDA: max_miss_detections : 20
MCMCDA: posterior_size_prior_a : 0.9
MCMCDA: posterior_size_prior_b : 0.09
MCMCDA: posterior_track_length_prior_a : 0.06
MCMCDA: posterior_track_length_prior_b : 0.8
KALMAN: Reading conf file... /home/yxx/catkin_soundloc/src/soundloc/soundloc/src/mcmcda/kalman.conf
KALMAN: max_miss_detections : 5
KALMAN: sample_period : 0.1
KALMAN: min_doas_assigned : 2
KALMAN: kDistThres : 0.5
SoundLoc: Starting up ROS connection...
[ INFO] [1563779845.205625106]: Distance between mics: 0.210000
[ INFO] [1563779845.205985143]: Number of samples of noise: 10
[ INFO] [1563779845.206313844]: Noise threshold: 0.001000
[ INFO] [1563779845.206632319]: Noise peak change: 0.001500
[ INFO] [1563779845.207037093]: Coherence threshold: 30.000000
[ INFO] [1563779845.207431491]: Reverse angle: 1
[ INFO] [1563779845.207815719]: Write VAD WAVs: 0
[ INFO] [1563779845.208200788]: Graph out: 1
[ INFO] [1563779845.208560652]: Connect JACK ports: 1
[ INFO] [1563779845.208910487]: TDE method: 2
[ INFO] [1563779845.209241108]: Tracking method: 3

SoundLoc: Stand by while everything is initialized.

SoundLoc: initializing mutex locks... done.
SoundLoc: engine sample rate: 16000
SoundLoc: Distance btw mics -> 0.21
SoundLoc: # of noise samples -> 10
SoundLoc: Noise threshold -> 0.001
SoundLoc: Noise peak change -> 0.0015
SoundLoc: Max. Coherence -> 30
SoundLoc: Sample size (base) -> 1600
SoundLoc: Sample size (end) -> 1024
Soundloc: Using delays: (0 -> -9) (1 -> -8) (2 -> -7) (3 -> -6) (4 -> -5) (5 -> -4) (6 -> -3) (7 -> -2) (8 -> -1) (9 -> 0) (10 -> 1) (11 -> 2) (12 -> 3) (13 -> 4) (14 -> 5) (15 -> 6) (16 -> 7) (17 -> 8) (18 -> 9)
Soundloc: Setting audio file info to:
Sample Rate: 16000
Channels: 1
Format: WAV (Microsoft)
Soundloc: Using samplerate ratio: 1.000000

SoundLoc: Reversing angle.

SoundLoc: Output to graph.
SoundLoc: JACK client activated.
SoundLoc: Connecting input ports.
SoundLoc: connecting system:capture_1 to soundloc_multi:input_1
SoundLoc: connecting system:capture_2 to soundloc_multi:input_2
SoundLoc: connecting system:capture_3 to soundloc_multi:input_3

SoundLoc: Stand by while everything is initialized.

SoundLoc: Starting up Threads...
SoundLoc.Capture: Starting capture_sound thread.
SoundLoc.Capture: Using min resolution -> 5.85915
SoundLoc.Capture: Coherence threshold -> 35.8592
TestVAD.Capture: Getting initial data for VAD -> ..........done.
SoundLoc.TrackRefresh: Starting track_refresh thread.
SoundLoc.CheckOldAngles: Starting check_old_angles thread.
SoundLoc.WriteHistory: Starting constant_write_history thread.
SoundLoc.PlotSourceStreams: Starting plot_streams thread.
SoundLoc.PlotSourceStreams: Setting up PlPlot...done
SoundLoc.PlotSourceStreams: drawing base.
SoundLoc.PlotSourceStreams: starting to plot...

how should I fix this problem?

Help compiling

Could you give directions on how to setup the environment to compile your project on a Linux system?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.