Instead of using that technique why not ignore the sound of the keystrokes all together and instead use timing techniques such as those used for snooping passwords for SSH?<p>You can derive the keys by timing the small differences in the time it takes a finger to reach each key. At least using this data should improve the accuracy of the audio only method.<p>I wonder if you used two microphones whether you could triangulate the keys?