bishoph / sopare

Real time sound pattern recognition in Python for Raspberry/Banana Pi.
Other
321 stars 86 forks source link

This is the SOund PAttern REcognition project written in Python. In a nutshell the project is able to listen in real time to microphone input and detect patterns (like words) in the stream based on simple characteristics. The output is an array of potential best guess matches. SOPARE works offline and was tested successfully on a Raspberry Pi 2/3 and on a Banana Pi.

Here is an example output for the spoken words 'light off' in German:

 [u'licht', u'aus']

Scope and goals:

Examples of use:

Dependencies:

Installation:

Just checkout the project and resolve the dependencies:

git clone https://github.com/bishoph/sopare.git

Then you should create the following directories:

tokens

samples

Abstract:

Next steps/TODOs:

Project status:

Usage:

 -h --help           : this help

 -l --loop           : loop forever

 -e --error          : redirect outpout to error.log
                       loglevel is forced to error!

 -p --plot           : plot results (only without loop option)

 -v --verbose        : enable verbose mode

 -~ --wave           : create *.wav files (token/tokenN.wav) for
                       each detected word

 -c --create         : create dict from raw input files

 -o --overview       : list all dict entries

 -s --show   [word]  : show detailed [word] entry information
                       '*' shows all entries!

 -w --write  [file]  : write raw to [dir/filename]

 -r --read   [file]  : read raw from [dir/filename]

 -t --train  [word]  : add raw data to raw dictionary file

 -d --delete [word]  : delete [word] from dictionary and exits.
                       '*' deletes everything!

 -i --ini    [file]  : use alternative configuration file

 -a --analysis       : show dictionary analysis and exits.

 -u --unit           : run unit tests

Quick start, useful commands and usage examples:

Here are some basic testing commands you can fire up to 
see if there are issues with the code or your environment.
The commands below help also to give you config recommendations
for your environment:

./sopare.py -u
python test/test_audio.py

Training, compiling and listening endless in debug mode.
(CTRL-c to stop):

python sopare.py -t "test"
python2 sopare.py -c
./sopare.py -v -l

Changing config options and new SOPARE versions require re-training.
Delete your training files and the dictionary entries before continue:

./sopare.py -d "*"
rm dict/*.raw

Find more detailed information on http://www.bishoph.org