I'd like to cancel echoes from a Talk recorded in a large extremely reverberant auditorium. It's unintelligible as recorded, and I'm hoping to make it intelligible by echo cancellation.
Audio was taken from an immobile video recorder, the video showing exact positions of 2 PA speakers (the main sound source) and the microphone (the video recorder). The exact dimensions of the room are 177' x 98' x 32', with hardwood floors, steel ceiling and brick walls.
I have a Room Impulse Response recording, produced by placing a mic where the video recorder captured the speech, with a hand clap at the position of the nearby PA speaker (6 feet away from the video recorder).
Based on the RIR recording I'm estimating an RT60 of about 3.8 to 4.0 seconds.
I'm hoping a FIR filter derived from the RIR data can render the speech intelligible.
Because of the long RT60, there at lots of FIR coefficients, and I'm not sure how to choose a subset of coefficients. For filtering the 30-minute unintelligible audio, I have a system with 128 GBytes DRAM and 12 cores, and it's okay if it runs for a few days or more.
When I do a web-search for "How to optimally reduce FIR filter coefficients", most of what comes up is about real-time, adaptive, resource-constrained, minimal latency, or other concerns that aren't relevant here.
What I have so far:
To generate FIR coefficients, my plan is this:
- cross-correlate the direct signal (impulse) with the full RIR signal
- choose a subset of the best coefficients
- negate all but the first (direct signal) coefficient
The direct signal (the clap) is the 1st 12 mSeconds of the RIR signal.
I'm stuck on step 2, because with a 4 second RT60, there are 4*28000 possible coefficients to choose from.
Thanks in advance for any advice, corrections, or other feedback!