Mini-Project 1
16-199: Building the Future

The purpose of this mini-project is to familiarize you with the notions of analog signals, sampling and digitization, and signal processing. Program a computer to recognize your voice (vs. your roommates, friends, pets, or some defined population), so that only you can give it commands. Or program it to recognize claps, to turn it into a "clapper" control device.

You can use any type of computer/OS/language you want. You can work in groups or alone. If the mini-project seems too easy, try something harder.

The easiest way to do this mini-project is to look for example programs on the web that already do it or are very similar. Then modify these programs to make them do what you want. That is what I did.

Helpful discussions of programming to acquire sound (please email me new links and which of these has gone stale): (Take a look at an example real time spectrum analyzer and

Here is my version of a clapper (try to recognize clapping noises), based on the above software: and freq-cga.tar.gz. Here is more info.

Lots of good stuff
record and play sound

More good stuff


Visual Basic: ?

Direct Sound?

Linux: thanks to


Non-real-time processing in Windows: You can acquire WAV files using SoundRecorder (under Accessories), and then process the WAV files using a separate program or MATLAB (using wavread()).

Please generate a web page describing what you did, and email me the URL.

Some previous versions of this mini-project.

Quarup Barreirinhas and Nick Aiwazian

Speech recognition software

a list