3

Is there any possibility to remove the echo in my audio recording (seehear short example on soundcloud)? How?

Details

The audio recording is from a Skype session. The echo is very bad, but also quite special: one single and loud repeat of the audio signal after about 0.2 seconds. So I hope there might be a possibility to remove the echo (or improve the understanding in some other way).

I searched this and other websites for a solution (e.g. How do I make my voice not echo in audacity?), but did not find a cheap solution. I am willing to pay some money for getting a cheap tool or getting the recording fixed, but do not want to pay a lot for a tool I then only use once. I did try noise reduction in audacity, as well as the following de-echo nyquist script, but with no improvement :(

;nyquist plug-in
;version 1
;type process
;name “DeEcho…”
;action “Removing Echo…”
;info “This effect removes an echo.”
;control decay “Decay” real “%” 50.0 0.0 100.0
;control delay “Delay” real “seconds” 1.0 0.001 10.0
(defun de-echo (s decay delay n)
        (cond
                ((= n 0) s)
                ((oddp n) (diff
                        (de-echo s decay delay (- n 1))
                        (prod (expt (/ decay 100.0) (float n)) (at-abs (*
delay n) (cue s)))))
                (t (sum
                        (de-echo s decay delay (- n 1))
                        (prod (expt (/ decay 100.0) (float n)) (at-abs (*
delay n) (cue s)))))))

(de-echo s decay delay 10)
  • You might be able to clean the recording using iZotope RX, but I'm not sure you could reach an algorythmical solution, plus the software itself is not cheap. – Dalv Olan Jul 19 '17 at 15:26
  • @DalvOlan: Thanks for the advice, iZotope RX looks quite promising. However, the software is not cheap indeed. I have one file that needs repair -- would you be willing to process it with iZotope RX? At what price? – DaveFar Jul 21 '17 at 14:44
  • @davefar dropbox me an example of the problem and I will see if RX6 can do any useful damage to it. mark.p.edwards@gmail.com – Mark Jul 22 '17 at 6:13
  • @Mark: You've got mail, it's no spam! – DaveFar Jul 22 '17 at 9:48
1
+100

Interesting subject material!

Firstly, the problem appears more to be a pre-echo problem rather than a post-echo problem. I'm not sure how this has occurred, but the sound of your voice in the recording appears to be preceeded by a pre-echo of it coming through skype. Additionally, the audio is very distorted and has been recorded at a very high level, causing digital clipping. I am passing the content through both RX6 De-Reverb and also through a de-clipper, which may help.

It's pretty much un-recoverable in it's current state, which is unfortunate, but if RX6 can't touch it, then there's not a lot out there in the market that can. I think that I can hear the skype echo management system trying to cope, but your biggest problem is the distortion and audio level which is going into skype. I think the distortion and clipping is causing problems with skype. I can also hear massive changes in latency with the pre-echo. Sometimes the pre-echo sits right under the voice, other times there is a significant lag.

The voice on the local end seems to be clear and well recorded, it's just the remote end that appears to be distorting and consequently the echo cancellation system isn't coping.

I'm also tending towards the opinion that the pre-echo problem has been caused by the local end having the remote end on-speaker rather than on a headset.

I have also rolled off the HF end of the spectrum after about 4.5kHz. This helps with some of the distortion and clipping artifacts which are most present in the HF end of the spectrum.

You should also investigate some of the echo cancellation technology in use in such technologies such as "Asterisk PBX". Your description of the problem sounds exactly like a very standard communications echo cancellation problem which is fairly tried and tested in the comms arena. Check out the Asterisk PBX site and the source-code. There may well be code and tools that can be adapted for signal processing purposes.

  • Thanks for the answer. My upvote is counted but not displayed since I have less than 15 points reputation. – DaveFar Jul 22 '17 at 9:52
  • 1
    I'm curious how could you use Asterisk for noise cancelation. Would that involve getting the source-code and writing some specific code? If so, audacity plugins and nyquist should do just the same. This answer seems to add value to the question but can you elaborate? – Dalv Olan Jul 22 '17 at 16:12
  • @Mark: Do you happen to know where to look within Asterisk? The apps, codecs and utils directories might contain something useful. But they are pretty large, so if someone has a pointer to where to look closer, that would be quite helpful. – DaveFar Jul 23 '17 at 12:10
0

Echo cancellation is not much help here since it relies on knowing the signal without echo. However, you could try using the LMS algorithm after delaying the signal for almost the right amount of delay and hope that most of the slow-averaged correlation you get for the varying pitch of speech will be due to the echo and not to the speech's autocorrelation.

It will work worse than normal echo cancellation but might still be useful for getting some intelligibility back.

0

If I hear this correctly, this is not an actual "echo" since the echo does not repeat. So at least on one end of the line, echo cancellation appears to work.

Now that's tricky since if you apply a normal cancellation function, it will then "cancel" the echo and bring in an echo of the echo in that manner. So if the echo has the transfer function E(z), you don't want the "cancellation" function 1-E(z) but rather 1/(1+E(z)). Basically, the input to your echo estimator is not the original input, but rather the original input with the echo estimator output already subtracted.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.