If the signal of interest and the echo (n samples after) are identical, then you could subtract out an inverted copy of the entire signal, delayed by n samples, giving a new audio file which has the signal of interest + an inverted echo 2n samples after. Then you can subtract out a copy of the original audio delayed by 2n samples, resulting in the signal of interest + an echo 3n samples after. Repeat this enough times (not manually, I hope!) and you will have moved the delayed signal entirely past the signal of interest, where it can be cut off entirely.
One way to automate this would be to use a "delay" or "echo" plugin in a conventional audio editor. Use this plugin to create an echo with no volume decay (infinite echo) and time 2n samples. This is half of all the delays you need. To get the other half, duplicate this signal, invert it, and delay it by n samples. Sum these 2 channels together and you're golden.
Now, If your signal of interest and echo aren't identical (e.g. because you recorded to an mp3 file), then you will only get partial cancellation, and this method will leave a noisy signal.