A simple example that streams your mic input into the temporal pooler (TP), and outputs an anomaly score, based on how familiar the TP has become to that particular mic input sequence. Think of it as being able to recognize a song, or become more familiar with your speech pattern.
- Mac OS X
- matplotlib
- pyaudio
python audiostream_tp.py
This script will run automatically & forever. To stop it, use KeyboardInterrupt (CRTL+C).
- Mic input is received (voltages in the time domain)
- Mic input is transformed into the frequency domain, using fast fourier transform
- The few strongest frequencies (in Hz) are identified
- Those frequencies are encoded into an SDR
- That SDR is passed to the temporal pooler
- The temporal pooler provides a prediction
- An anomaly score is calculated off that prediction against the next input A low anomaly score means that the temporal pooler is properly predicting the next frequency pattern.
- An array comparing the actual and predicted TP inputs A - actual P - predicted E - expected (both A & P)
- A hashbar representing the anomaly score
- Plot of the frequency domain in real-time
- Benchmark different parameters (especially TP parameters) Use annoying_test and Online Tone Generator http://onlinetonegenerator.com/
- Implement anomaly smoothing
- Implement spatial pooler
- Look into better algorithms to pick out the frequency peaks (sound fingerprinting)