4.6

4.6 | 11 ratings Rate this file 172 Downloads (last 30 days) File Size: 184.77 KB File ID: #18596
image thumbnail

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

by Theodoros Giannakopoulos

 

04 Feb 2008 (Updated 21 Apr 2008)

This Matlab-code is a demo for real-time audio and image processing.

| Watch this File

File Information
Description

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:

realTimeMic(1.0,100,1);

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:
http://www.di.uoa.gr/~tyiannak

Acknowledgements
This submission has inspired the following:
Realtime audio input
Required Products Data Acquisition Toolbox
Image Processing Toolbox
Signal Processing Toolbox
MATLAB release MATLAB 7.5 (R2007b)
Other requirements I have tried the demo in Matlab2007b. I have also tried it in Matlab 6.5 and it seems that there are some problems with the acquisition functions (in particular with the audio acquisition): half of the times the getdata() call (line 171) fails.
Tags for This File  
Everyone's Tags
Tags I've Applied
Add New Tags Please login to tag files.
Comments and Ratings (18)
07 Feb 2008 diego barragán

Good Work

03 Mar 2008 A. Huen  
22 Mar 2008 G Antel.  
20 May 2008 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);

20 May 2008 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).

18 Jul 2008 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?

23 Jul 2008 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().

03 Oct 2008 saud Ala  
23 Nov 2008 Theodoros Giannakopoulos  
25 May 2009 Bernd

are you rating your owm files?

04 Jan 2010 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?

08 Apr 2011 Ebad Ahmadzadeh

COOL

26 Apr 2011 Ebad Ahmadzadeh

Cool

11 May 2011 Thijs

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

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

14 Jun 2011 Thijs

Sorry, 64-bits OS does not support 'analoginput'. Here can be found how to fix this, for the ones who are interested:
http://www.mathworks.com/help/toolbox/daq/bsn6uue-1.html

04 Dec 2011 stich abdou  
05 Jan 2012 Jose Almeda

muy bueno

01 Feb 2012 Sen

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

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

Please login to add a comment or rating.
Updates
05 Feb 2008

Link added

21 Apr 2008

Summary Changed

Tag Activity for this File
Tag Applied By Date/Time
audio processing Theodoros Giannakopoulos 22 Oct 2008 09:46:15
video processing Theodoros Giannakopoulos 22 Oct 2008 09:46:15
camera Theodoros Giannakopoulos 22 Oct 2008 09:46:15
zero crossng r Theodoros Giannakopoulos 22 Oct 2008 09:46:15
microphone Theodoros Giannakopoulos 22 Oct 2008 09:46:15
zero crossng r Peter Hammond 24 Feb 2009 23:24:28
audio processing Gennaro 05 May 2010 04:30:54
record Theodoros Giannakopoulos 16 Feb 2011 06:06:53
speech recording Theodoros Giannakopoulos 16 Feb 2011 06:06:53
video processing wiz 20 Jun 2011 00:53:25
camera Amanda Irving 12 Aug 2011 19:30:50
video processing lsj 12 Nov 2011 01:25:39
microphone stich abdou 27 Nov 2011 13:19:32

Contact us at files@mathworks.com