Code Monkey home page Code Monkey logo

locaudio's Introduction

Locaudio Bitdeli Badge

Sound source localization in reconfigurable wireless acoustic sensor networks

Problem Specification

Imagine a wireless sensor network of microphones dispersed in an environment. Using this wireless acoustic sensor network (WASN), we would like to be able to determine the positions of input sounds within the environment. More specifically, if we gave an input sound to our system, it would gather auditory information from the environment using the WASN combined with the positions of the nodes within the WASN to determine an x, y position of the sound and a corresponding confidence metric.

Example Usages

  • Tracking a bird in a jungle based on the bird's unique call
  • Determining the position of an enemy tank using the unique sound made by the engine

RESTful API

To make use of this API, the Locaudio server and the RethinkDB database must be running.

Notifying the server of a detection event

POST /notify

Post form

{
	x: <Float: X position>,
	y: <Float: Y position>,
	spl: <Float: Sound pressure level>,
	timestamp: <Float: Unix time in seconds>,
	fingerprint: [<Int>: Audio fingerprint]
}

Return structurep

{
	error: <Integer: Error code>,
	message: <String: Error message>,
	name: <String: Sound name>
}

Getting positions of sounds

GET /locations/:sound_name

Parameters

  • sound_name: The name of the sounds

Return structure

[
	{
		position: {
			x: <Float: X position of sound>,
			y: <Float: Y position of sound>
		},
		confidence: <Float (0 <= F <= 1)>
]

Get UI for sound position

GET /viewer/:sound_name

Parameters

  • sound_name: The name of the sound

Get names of sounds in database

GET /names

Return structure

[
	<String: Name of sound>
]

Database Structure

[
	{
		name: <String: Sound name>,
		distance: <Float: Reference distance>,
		spl: <Float: Reference sound pressure level>,
		fingerprint: [<Int: Fingerprint of the sound>]
	}
]

Getting Started

To Install Dependencies

make depend

To Generate Documentation

make documentation

To Start the Locaudio Server

NOTE: All commands should be spawned from different terminal sessions

  1. Run RethinkDB

    • cd database
    • rethinkdb
  2. Run the server

    • python run.py localhost 8000
  3. (Optional) View the main page

    1. Open browser
    2. Go to localhost:8000

To Run Tests

NOTE: All commands should be spawned from different terminal sessions

  1. Start the Locaudio server

  2. make run_tests

locaudio's People

Contributors

bitdeli-chef avatar

Watchers

James Cloos avatar

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.