Synchronizing multiple audio streams
-
- KVRer
- Topic Starter
- 4 posts since 14 Apr, 2014
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?
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?
-
- KVRer
- 8 posts since 6 Jun, 2012
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).
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).
-
- KVRian
- 631 posts since 21 Jun, 2013
I think this is impossible.sanity wrote:I want to combine the audio from several low-quality microphones to produce a high-quality audio signal.
Compute cross-corellation function. But i think that delay with wifi is not stable, ruining everything.(http://en.wikipedia.org/wiki/Carrier_se ... _avoidance)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.
P.S. Doubt that it works over wifi
-
- KVRer
- Topic Starter
- 4 posts since 14 Apr, 2014
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 questionI think this is impossible.
Over a LAN it should be stable enough I think once you've found an initial offset.But i think that delay with wifi is not stable, ruining everything.
-
- KVRer
- Topic Starter
- 4 posts since 14 Apr, 2014
Really anything higher quality than what's coming from the mics.maxthedog wrote:How would you qualify "high-quality audio" in your case?
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).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).
- KVRist
- 296 posts since 1 Apr, 2009 from Hannover, Germany
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.
-
- KVRer
- Topic Starter
- 4 posts since 14 Apr, 2014
Yes, I had thought about that. Can you point me to any good descriptions of suitable algorithms for this?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.