The current Matlab-code can be used for real-time audio and image processing. Fixed-length segments of audio data are recorded from soundcard's input and an image is also captured in each block. In particular, the provided code does the following:
- Repetively records audio segments of fixed length.
- Plots the (applitude) values of the current audio segment.
- Plots the spectogram of the current audio segment.
- Calculates the mean and std values of the Zero Crossing Rate for each segment, and plots those statistics for the last five segments.
- Calculates and plots the average spectral distance between the current and the previous audio segment. This is actually a simple measure of change detection in the audio information.
- Captures and plots an image for each block (frame).
- Plots an estimation of the motion between the current and the previous frames.
- Plots the average absolute difference between two successive frames.
- Calculates and displays the ratio of the processing time (for the feature calculation and the plotting processes) by the real signal data.
- realTimeMic.m This is the main m-file. It reads blocks (of fixed length) of audio information and it captures one image (from an attached camera) per block.
- zcr.m This function computes the Zero Crossing Rate of an audio signal in a short-term basis (i.e. one value of the ZCR function is calculated per frame).
In order to execute the demo, simply call the realTimeMic function with the following arguments:
- duration: (in seconds) the duration of each audio segment (and the time interval between two succcesive images taken from cam).
- nBlocks: number of blocks to be recorded
useVideo: 1 for recording video and 0 otherwise
For example write:
in the Matlab workspace. This will run the demo for 100 segments of 1.0 second each, and it will use the camera (it has to be attached) for capturing images.