[PD] Echo supressor.

Spencer Russell sfr at media.mit.edu
Mon May 4 18:48:37 CEST 2015


You're not likely to get very good results with just a single delay. The
way these systems normally work (e.g. on phones and conferencing
systems) is to continuously estimate the transfer function between the
speaker and the microphone (impulse response in the time domain). Then
you take the received signal, convolve it with the inverse of the
impulse response, and mix it into the signal you receive from the
microphone.

The diagram at the bottom of this page[1] is a pretty good one to
understand what's going on.

-s

http://www.speex.org/docs/manual/speex-manual/node4.html


On Mon, May 4, 2015, at 10:18 AM, Mario Mey wrote:
> Hi, there. 2 years ago, I created this thread on the forum:
    http://forum.pdpatchrepo.info/topic/7340/echo-supressor. After
    talking about dBs, I thought I acchived what I was looking for. But
    no. Nor close.
>
>
    My last non-replied post on september 2014 says:
>
> *Bringing back to life an old thread... I tried to make
            this patch work LIVE... and it is not as thought.*


> *To make this patch work (*1), I should find the perfect
            delay to suppress the audio. Using 44100, the delay time can
            vary in 0.0226ms. So... it's almost impossible to get that.
            I only acchieve a flanger, nothing else.*


> *In the first Patch-Circle done in Argentina last Saturday,
            I talked with Pablo E. Riera about this and he told me about
            the adaptive external and the echo cancellation example...
            but there is no example like that (only intereference
            cancellation).*


> *I will explain again (*2): the operator has a microphone
            (using one channel of input) and it sounds in a LCD (far
            away) (using one channel of output). Above the LCD I have a
            mic (second channel of input). This mic takes what the
            audience says and send to the operator headphones (second
            channel of output). The operator hears her own voice (with
            a delay). I want to supress this "return". It doesn't
            matter the latency, I just don't want the operator to hear
            her/him voice.*


> *I would need something that learn from the first
            microphone and get rid of what the second mic takes.*


> *I hope being clear in my explanation. Thanks in advace.*


>
>
>
    (*1): the patch is in the thread. It does something like this: it
    takes the microphone (channel one), invert the wave (by using [*~
    -1]), it uses a delayline to synch (because of the latency) and mix
    with the output. The intention is, obviously, suppress the
    microphone after been listened by the second microphone.
>
> [adc~]
>
| \
>
| [delwrite~ echo-supressor-A 1000]
>
|
>
        [delwrite~ echo-supressor-B 1000]

>
>
>
        [Hslider] # to synch. It depends on latency (it would have to be
        exact, here is the problem!)
>
|
>
        [vd~ echo_supressor-A]
>
|
>
        [*~ -1]
>
|
>
|[vd~ echo_supressor-B 1]
>
|/
>
          [+~]
>
|
>
        [dac~]

> (*2): I just updated the explanation
>
>
    How can I acchieve an echo suppresor? Is this possible?
>
    If I'm not clear in my explanation, please tell me. Thanks.
> _________________________________________________
> Pd-list at lists.iem.at mailing list UNSUBSCRIBE and account-management
> -> http://lists.puredata.info/listinfo/pd-list

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20150504/fe7a175e/attachment.html>


More information about the Pd-list mailing list