Position Calibration of Audio Sensors and Actuators in a Distributed Computing Platform Vikas C. Raykar | Igor Kozintsev | Rainer Lienhart University of Maryland, CollegePark | Intel Labs, Intel Corporation
Motivation Many multimedia applications are emerging which use multiple audio/video sensors and actuators. Microphones Cameras Speakers Displays DistributedCapture Distributed Rendering Other Applications Number Crunching Current Work
X What can you do with multiple microphones… Speaker localization and tracking. Beamforming or Spatial filtering.
Some Applications… Audio/Video Surveillance Smart Conference Rooms Audio/Image Based Rendering Meeting Recording Source separation and Dereverberation Speech Recognition Hands free voice communication Speaker Localization and tracking Multichannel speech Enhancement MultiChannel echo Cancellation Novel Interactive audio Visual Interfaces
More Motivation… Current work has focused on setting up all the sensors and actuators on a single dedicated computing platform. Dedicated infrastructure required in terms of the sensors, multi-channel interface cards and computing power. On the other hand Computing devices such as laptops, PDAs, tablets, cellular phones,and camcorders have become pervasive. Audio/video sensors on different laptops can be used to form a distributed network of sensors. Internal microphone
Common TIME and SPACE Put all the distributed audio/visual input/output capabilities of all the laptops into a common TIME and SPACE. For the common TIME see our poster. Universal Synchronization Scheme for Distributed Audio-Video Capture on Heterogenous Computing Platforms R. Lienhart, I. Kozintsev and S. Wehr In this paper we deal with common SPACE i.e estimate the 3D positions of the sensors and actuators. Why common SPACE Most array processing algorithms require that precise positions of microphones be known. Painful and Imprecise to do a manual measurement.
This paper is about.. X Y Z
If we know the positions of speakers…. If distances are not exact If we have more speakers X Y ? Solve in the least square sense
If positions of speakers unknown… Consider M Microphones and S speakers. What can we measure? Distance between each speaker and all microphones. Or Time Of Flight (TOF) MxS TOF matrix Assume TOF corrupted by Gaussian noise. Can derive the ML estimate. Calibration signal
Nonlinear Least Squares.. More formally can derive the ML estimate using a Gaussian Noise model Find the coordinates which minimizes this
Maximum Likelihood (ML) Estimate.. we can define a noise model and derive the ML estimate i.e. maximize the likelihood ratio Gaussian noise If noise is Gaussian and independent ML is same as Least squares
Reference Coordinate System Reference Coordinate system | Multiple Global minima X axis Positive Y axis Origin Similarly in 3D 1.Fix origin (0,0,0) 2.Fix X axis (x1,0,0) 3.Fix Y axis (x2,y2,0) 4.Fix positive Z axis x1,x2,y2>0 Which to choose? Later…
On a synchronized platform all is well..
However On a Distributed system..
The journey of an audio sample.. Network This laptop wants to play a calibration signal on the other laptop. Play comand in software. When will the sound be actually played out from The loudspeaker. Operating system Multimedia/multistream applications Audio/video I/O devices I/O bus
t t Signal Emitted by source j Signal Received by microphone i Capture Started Playback Started Time Origin On a Distributed system..
Joint Estimation.. Speaker Emission Start Times S Microphone Capture Start Times M -1 Assume tm_1=0 Microphone and speaker Coordinates 3(M+S)-6 MS TOF Measurements Totally 4M+4S-7 parameters to estimates MS observations Can reduce the number of parameters
Use Time Difference of Arrival (TDOA).. Formulation same as above but less number of parameters.
Nonlinear least squares.. Levenberg Marquadrat method Function of a large number of parameters Unless we have a good initial guess may not converge to the minima. Approximate initial guess required.
Closed form Solution.. Say if we are given all pairwise distances between N points can we get the coordinates XXXX 2XXXX 3XXXX 4XXXX
Classical Metric Multi Dimensional Scaling dot product matrix Symmetric positive definite rank 3 Given B can you get X ?....Singular Value Decomposition Same as Principal component Analysis But we can measure Only the pairwise distance matrix
How to get dot product from the pairwise distance matrix… k i j
Centroid as the origin… Later shift it to our orignal reference Slightly perturb each location of GPC into two to get the initial guess for the microphone and speaker coordinates
Example of MDS…
Can we use MDS..Two problems s1s2s3s4m1m2m3m4 s1 ???? XXXX s2 ???? XXXX s3 ???? XXXX s4 ???? XXXX m1 XXXX ???? m2 XXXX ???? m3 XXXX ???? m4 XXXX ???? 1. We do not have the complete pairwise distances 2. Measured distances Include the effect of lack of synchronization UNKNOWN
Clustering approximation…
j i j i j i
Finally the complete algorithm… Approx Distance matrix between GPCs Approx ts Approx tm Clustering Approximation Dot product matrix Dimension and coordinate system MDS to get approx GPC locations perturb TOF matrix Approx. microphone and speaker locations TDOA based Nonlinear minimization Microphone and speaker locations tm
Sample result in 2D…
Algorithm Performance… The performance of our algorithm depends on Noise Variance in the estimated distances. Number of microphones and speakers. Microphone and speaker geometry One way to study the dependence is to do a lot of monte carlo simulations. Or given a noise model can derive bounds on how worst can our algortihm perform. The Cramer Rao bound.
Gives the lower bound on the variance of any unbiased estimator. Does not depends on the estimator. Just the data and the noise model. Basically tells us to what extent the noise limits our performance i.e. you cannot get a variance lesser than the CR bound. Jacobian Rank Deficit..remove the Known parameters
Number of sensors matter…
Geometry also matters…
Calibration Signal…
Time Delay Estimation…
Compute the cross-correlation between the signals received at the two microphones. The location of the peak in the cross correlation gives an estimate of the delay. Task complicated due to two reasons 1.Background noise. 2.Channel multi-path due to room reverberations. Use Generalized Cross Correlation(GCC). W(w) is the weighting function. PHAT(Phase Transform) Weighting Time Delay Estimation…
Synchronized setup | bias 0.08 cm sigma 3.8 cm Mic 3 Mic 1 Mic 2 Mic 4 Speaker 1 Speaker 4 Speaker 2 Speaker 3 X Z Room Length = 4.22 m Room Width = 2.55 m Room Height = 2.03 m
Distributed Setup… Initialization phase Scan the network and find the number of GPC’s and the UPnP services available Master GPC 1GPC 2 GPC M GPC 1 (Speaker) GPC 2 (Mic) Calibration signal parameters TOA Computation TOA TOA matrix Position estimation Play Calibration Signal Play ML Sequence
Experimental results using real data
Summary General purpose computers can be used for distributed array processing It is possible to define common time and space for a network of distributed sensors and actuators. For more information please see our two papers or contact Let us know if you will be interested in testing/using out time and space synchronization software for developing distributed algorithms on GPCs (available in January 2004)
Thank You ! | Questions ?