Handling of Non-Default Audio Input
Oktyabr has requested that we add the ability to select the audio input device used by Articulate. This will require the use of a library capable of retrieving information about, and streams from, the different audio input devices attached to the system - and using Engine.SetInputToAudioStream to switch the input device.
While there doesn't appear to be much documentation, Engine.SetInputToAudioStream apparently does not accept real-time steams, though there may be an opportunity to "fake" a stream that pretends to be from a file and shove the real-time stream in. Here's a guy talking about it on Google Groups for his project that seems to have gotten it working in the workaround; however there does seem to be some delay issues.
NAudio or Bass seem like good places to start looking for an audio library. By using one of these and rolling our own Stream object, we might be able to get the best of both worlds. We might also be able to do some real-time noise filtering to help improve recognition, but I wouldn't hold my breath.
This is something that I absolutely want to do, though, since myself and many others will have many audio devices.