Shriphani Palakodety

In Pursuit Of Truth and Beauty

Shriphani Palakodety header image 3

Listener

Listener was an app I wrote initially to respond to calls of attention when I used my isolating headphones ( BOSE triports before they broke). The goal was that within two calls, I should give the other party the idea that I have sampled their request for my attention and I am responding. The deeper problem was that every dialogue began at a very high intensity and someone had to walk and stand in front of me to get my attention.

Listener, in its original form just sampled the surroundings regularly for high intensity sounds and alerted me using Geektool. But there were some fundamental problems with using Geektool. First, it takes up some real estate. Even on my 23” screen, I can recollect moments when its existence in one of the corners was a pain. Also, the intensity technique didn’t work so well – the intensity threshold needed to be re-calibrated every single time the surroundings changed.

Now, Listener features 2 Voice Activity Detection algorithms. One by Moattar and Homayounpour (used by default) and the other by S. Milanovic, Z. Lukac, A. Domazetovic (used only till the 2nd version). I have achieved good results in my environment with the first VAD. You can however switch to the 2nd if you want.

For sampling ambient sound, I use the module pyaudio – an excellent piece of work (dude’s from MIT… duh). You can find py-audio at: http://people.csail.mit.edu/hubert/pyaudio/ .

For notifications I use Growl. I think for using this dinky script you will need the Growl Python bindings which can be obtained from: http://growl.info/downloads_developers.php.

If you can’t compile Growl on your machine, don’t despair, audio_analysis.py (this script that is) throws output in /var/tmp/audio.log on POSIX compliant machines and in `pwd` on others. You can set up Geektool to display this info (or you can use whatever you want).

Once you get all the dependencies working,  download Listener  here and untar it. You can then get Listener running by running the command:

python2.5 audio_analysis.py

Screenshots! These are all that I can provide. I can’t record video right now. So, you are stuck with a screenshot of a Growl notification:

Screen shot 2010-01-20 at 7.58.01 PM

And yeah, ignore that dtella thingy you see. There’s lots of fundamental research on networks that is conducted on my Macbook pro.

Goals

I plan to provide a better UI for this thing (as opposed to the trash I have right now). I welcome any other comments on how this should be improved at spalakod_at_purdue_dot_edu

Have a nice day and thanks for visiting.

3 Comments

3 Comments so far ↓

Leave a Comment