I am working on a project that involves real-time audio processing to do noise cancellation, so basically taking input from a microphone, doing processing, and sending out the output. It heavily relies on very little delay between input and output. I bought a Raspberry Pi Model B Rev 2 and this microphone (image).
From my search, I think I've narrowed it down to two things: I can either wire that microphone to a 3.5mm jack, connect it to a USB sound card, and connect it to the Pi. OR, I can get an ADC expansion sound card like the ones listed on the elinux.org page.
Which approach will give me the least delay in input and output? As far as I can tell, I'm guessing USB is slower than using the IO pins. Also, would using an Arduino instead actually be better for noise cancellation?