@Orvillain I think there are several techniques to detect transients, and it is often a blend of many of them.
It depends on the frequency (so I think that it shouldn't be bad to "listen" to a certain frequency range)
apply an exponential factor to the signal in order to improve the ratio of the transients it contains
don't detect below a certain threshold (but that becomes amplitude dependent)
Why taking not the derivative of the amplitude and check for the a minimum slope... but that is just an idea, and here again the input has to be filtered
if the detection is not real time, I would probably go with a waveform detection above a specific threshold, and prevent to detect the next transient after a specified amount of samples. Well, after thinking to it this can be real time too...