An echo canceller, comprising: a self-adaptive filter, a voice signal detection portion and a path change detection portion, wherein, a far-end voice signal, x(n), is propagated in an echo path through a speaker and is picked up by a microphone to form an echo signal, wherein, the self-adaptive filter is configured to receive the far-end voice signal, x(n),as a training signal to simulate the echo path, and cancel the echo signal in a near-end signal, d(n),; the voice signal detection portion is configured to: detect whether the near-end signal, d(n), contains a near-end voice signal, and thus control the self-adaptive filter; and the path change detection portion is configured to: detect whether a change occurs on the echo path, and control the self-adaptive filter according to whether the change occurs on the echo path; wherein the path change detection portion comprises: a second self-adaptive filter, a self-adaptive filter performance calculation unit, a second self-adaptive filter performance calculation unit and a performance comparison unit, wherein: an input signal of the second self-adaptive filter is the far-end voice signal, x(n), a desired signal, d1(n), is a value obtained by the convolution of the coefficients of the first L orders of the self-adaptive filter and the far-end voice signal, and an error signal, el(n), is an error signal of the convolution, the second self-adaptive filter is configured to: simulate the first L coefficients of the echo path; the self-adaptive filter performance calculation unit is configured to: calculate performance of the self-adaptive filter, and send a result to the performance comparison unit; the second self-adaptive filter performance calculation unit is configured to: calculate performance of the second self-adaptive filter, and send a result to the performance comparison unit; and the performance comparison unit is configured to: receive the results sent by the self-adaptive filter performance calculation unit and the second self-adaptive filter performance calculation unit, and then judge whether a path mutation occurs, restart the self-adaptive filter when determining that the path mutation occurs; and update the self-adaptive filter normally when determining that no path mutation occurs. an input signal of the second self-adaptive filter is the far-end voice signal, x(n), a desired signal, d1(n), is a value obtained by the convolution of the coefficients of the first L orders of the self-adaptive filter and the far-end voice signal, and an error signal, el(n), is an error signal of the convolution, the second self-adaptive filter is configured to: simulate the first L coefficients of the echo path; the self-adaptive filter performance calculation unit is configured to: calculate performance of the self-adaptive filter, and send a result to the performance comparison unit; the second self-adaptive filter performance calculation unit is configured to: calculate performance of the second self-adaptive filter, and send a result to the performance comparison unit; and the performance comparison unit is configured to: receive the results sent by the self-adaptive filter performance calculation unit and the second self-adaptive filter performance calculation unit, and then judge whether a path mutation occurs, restart the self-adaptive filter when determining that the path mutation occurs; and update the self-adaptive filter normally when determining that no path mutation occurs.