Techniques for Noise Robustness in Automatic Speech Recognition