I'm going to have this same problem shortly.
I haven't tried this, but I suspect it should work. When your object is rolling on a surface it should be colliding with it all the time, or nearly all the time, and when it is bouncing there should be intervals between collisions. Check for collision, and if positive play sound and set a flag. Then see how long it takes before it returns false. Don't play the sound again until there hasn't been a collision with the same object for a reasonable time ( a few frames or whatever, experiment).
And if you get it working before I do, please let me know
(I haven't figured out how to check for collision with physics objects. I've always used ent_move for this. If someone could shed some light on how it is done)