Synchronizing multiple audio streams

DSP, Plugin and Host development discussion.
Post Reply New Topic
RELATED
PRODUCTS

Post

Hi all, a friend of mine recommended that I post my question here - I hope it's the appropriate forum.

I'm a software engineer, and I had an idea for a weekend project a while back that involves some audio processing, and I wanted to run it by someone with expertise in this area to make sure that I'm not reinventing the wheel, or overlooking relevant techniques. I'd be extremely grateful for your advice. I have no prior experience with audio processing, but I think I have a grasp on the theory of it.

I want to combine the audio from several low-quality microphones to produce a high-quality audio signal. One problem is that the microphones will be transmitting their audio over wifi, and so it is likely to be out of sync by at least a few milliseconds. I was thinking it might be possible to get the audio back in sync by delaying one or more of the streams, and looking for the delay that maximizes the constructive interference. This "search" would need to occur in realtime.

Is anyone aware of anything like this, or is there anything I should familiarize myself with before embarking on this project?

Post

How would you qualify "high-quality audio" in your case?

My assumption is that you'd like to have intelligible voice/dialog, as we've a system at work for our meeting rooms that has the same description, superficially -- that is, several mics hanging from the ceiling at regularly spaced intervals, forming a grid.

Wifi delay aside, the first issue that comes to mind is phase cancellation and addition when combining the signals from multiple mics (still delay related, though).

Post

sanity wrote:I want to combine the audio from several low-quality microphones to produce a high-quality audio signal.
I think this is impossible.
sanity wrote:One problem is that the microphones will be transmitting their audio over wifi, and so it is likely to be out of sync by at least a few milliseconds. I was thinking it might be possible to get the audio back in sync by delaying one or more of the streams, and looking for the delay that maximizes the constructive interference. This "search" would need to occur in realtime.
Compute cross-corellation function. But i think that delay with wifi is not stable, ruining everything.(http://en.wikipedia.org/wiki/Carrier_se ... _avoidance)

P.S. Doubt that it works over wifi :D

Post

I think this is impossible.
Nah, hard perhaps, I'm sure there is a way to do it. Of course, whether I'm smart enough to find that way is a different question :-)
But i think that delay with wifi is not stable, ruining everything.
Over a LAN it should be stable enough I think once you've found an initial offset.

Post

maxthedog wrote:How would you qualify "high-quality audio" in your case?
Really anything higher quality than what's coming from the mics.
maxthedog wrote:Wifi delay aside, the first issue that comes to mind is phase cancellation and addition when combining the signals from multiple mics (still delay related, though).
Right, I think you want to delay one of the signals to cause maximum constructive interference for the audio signal you're interested in (typically the person speaking).

Post

Keep in mind that each microphone runs its own sample clock, which will also be unsynced. You'll need some kind of asynchronous sample rate conversion for this.

Post

hugoderwolf wrote:Keep in mind that each microphone runs its own sample clock, which will also be unsynced. You'll need some kind of asynchronous sample rate conversion for this.
Yes, I had thought about that. Can you point me to any good descriptions of suitable algorithms for this?

Post Reply

Return to “DSP and Plugin Development”