I totally agree with you jitterjames. But noise reduction using a noise-only profile to subtract from speech with noise is a close approximation to the true cancellation you described (which is by all means better as the noise is real time, and not pre-recorded). I saw lots of software do it, and the results were acceptable (human-ear-wise). I am not saying it is better or worse, or whether you should do it or not. I just think it is a good approximation that work at least for human ear (recording/playback). Will it be better for recognition, I am not so sure now since you say it might be worse, and since I cannot try enabling/disabling it (it is either with the mic or not).
You are right about the level. I tried that before and it increased the recognition a *little* bit. I still think the reason is due to the fact that noise become less hear-able. But I could be wrong.
I see you are using SAPI 5.3, didn't know you relay on such lib (and that you can end up with such great and flexible program). I think I under estimated it. Then do you use .NET, and if so, what language (C++,C#,VB,...), of course if you don't mind me asking.
Oh and no, it is not a bug (issue), it is a feature
But that doesn't mean I expect it being implemented, as I do know how hard to do driver-level hooks (also you will end up with unsigned code). It is just I wish for a hand-free and head/ear-free solution with high accuracy. I am willing to invest in the more expensive ones, but only if they prove to be like the head ones, but from a distance.
Thank you guys for your valuable discussion. I believe all my posts drift away from the topic.