With the excerpt provided, it can be heard that it is not an echo problem but something else: it sounds like the audio is read by buffer and that each buffer is played twice, or maybe each buffer is dedicated to a different channel and they are all played mono.
So it is now a matter of removing each second buffer or splitting to stereo, which should not be so difficult with some simple signal processing using Octave or Matlab for instance.
I wrote the following code to try stereo splitting:
inFile = 'recording_snippet.wav';
[in, samplingRate, quantization] = wavread(inFile);
offset = 414;
inLength = length(in);
in = in(offset:inLength);
chunkLength = 11289;
chunkCount = floor(inLength / chunkLength);
chunkPairCount = floor(chunkCount / 2);
from = @(k) (k - 1) * chunkLength + 1;
to = @(k) (k - 0) * chunkLength + 0;
leftChannel = 1;
rightChannel = 2;
for outChunkIndex = 1:chunkPairCount
inLeftChunkIndex = (outChunkIndex - 1) * 2 + 1;
inRightChunkIndex = inLeftChunkIndex + 1;
out(from(outChunkIndex):to(outChunkIndex), leftChannel) = ...
in(from(inLeftChunkIndex):to(inLeftChunkIndex));
out(from(outChunkIndex):to(outChunkIndex), rightChannel) = ...
in(from(inRightChunkIndex):to(inRightChunkIndex));
end
outFile = sprintf('out_stereo.offset%d_chunk%d.wav', offset, chunkLength);
wavwrite(out, samplingRate, quantization, outFile);
The best result I had was with an offset of 414 samples and a chunk length of 11289 samples. You can hear it here. There is still improvement to be done but it's a start.
Now knowing more about the whole recording chain may help to understand what happened to the sound: was it recorded with a video camcorder? a professional portable recorder? a smartphone? an audio interface? was it stored first as digital or analog signal? did it go through any kind of conversion? any intermediary format/codec/software manipulation before getting the .wav version?
The signal processing community may help too.