File Exchange

image thumbnail

Real Time Microphone and Camera data acquisition and audio-video processing

version (185 KB) by Theodoros Giannakopoulos
This Matlab-code is a demo for real-time audio and image processing.


Updated 18 Mar 2014

View Version History

View License

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.
Provided M-files:
- 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.

Similar Material:

* * * * * * * * * * * * * * * * * * * *
More advanced audio analysis methods can be found in the MATLAB AUDIO ANALYSIS LIBRARY ( which is part of the book INTRODUCTION TO AUDIO ANALYSIS: A MATLAB APPROACH (
* * * * * * * * * * * * * * * * * * * *

Cite As

Theodoros Giannakopoulos (2021). Real Time Microphone and Camera data acquisition and audio-video processing (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (21)

Noor Aliff

Error using realTimeMic (line 34)
Function 'analoginput' unsupported. Use the session-based

Grigorios Kalliatakis

Muhammad Asim

Hi dear I am trying to process real time/run time signal using sound card. Have any one any material please share...thanks


??? Error using ==> analoginput.getdata
Timeout in GETDATA.

Error in ==> realTimeMic at 171
x = getdata(ai, duration * Fs);

Jose Almeda

muy bueno

stich abdou


Sorry, 64-bits OS does not support 'analoginput'. Here can be found how to fix this, for the ones who are interested:


??? Undefined function or method 'analoginput' for input arguments of type 'char'.

Error in ==> realTimeMic at 34
ai = analoginput('winsound');

Ebad Ahmadzadeh


Ebad Ahmadzadeh


Saviourby Quek

Hi i am not good with matlab. What if i just want to record video from a CCD camera. How do i disable the, sound recording?


are you rating your owm files?

saud Ala

Theodoros Giannakopoulos

Thank you for your interest. I am not sure I understand what you ask. The audio input is ploted in line 111, and the soundcard is initialized in line 34. The current audio block is read in line 171, using command getdata().

arun pushkar

with refrence to --->Real Time Microphone and Camera data acquisition and audio-video processing.

i am intrested in the real time audio plote formed in 1,1 subplot of your example can you help me out in giving the code?

Theodoros Giannakopoulos

You probably don't have a web-camera connected to your computer. If this is the case, please run the realTimeMic() function, with the 3rd argument equal to zero (no camera data is used).

dd dd

??? Error using ==> videoinput.videoinput at 233
There are no devices installed for the specified ADAPTORNAME. See IMAQHWINFO.

Error in ==> realTimeMic at 45
vid = videoinput('winvideo', 1);

G Antel.

A. Huen

diego barragán

Good Work

MATLAB Release Compatibility
Created with R2007b
Compatible with any release
Platform Compatibility
Windows macOS Linux

Inspired: Realtime audio input

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!