If the keyboard is giving tactile feedback and makes its own sounds, then I see no need for trying to better nature. Audio would be needed only if your application is not responsive, i.e. when nothing changes on screen within the 100ms of the causality barrier, but you still want to tell the user that you got the input. Remember, though, that’s only an ugly patch. You’d better spend energies to make the application responsive to keyboard events.

UPDATE: references for the causality barrier: The first one was Michotte, A.(1946) The Perception of Causality. New York Basic Books, 1963. Originally published in French, “La Perception de la causalite”, Publications Universitaires de Louvain, 1946.

The next best is Card, Moran, and Newell’s “The model human processor: An engineering model of human performance”, available at Xerox PARC: http://www2.parc.com/istl/groups/uir/publications/items/UIR-1986-05-Card.pdf

For an university-level explanation of the model human processor, see http://jkwp.itsligo.ie/wp-content/uploads/hci/Human Abilities Cognition.ppt