Techniques For Noise Robustness In Automatic Speech Recognition