Patent ID: 8295474

Claim:
In a data processing system, a method comprising: receiving samples of a send path input signal (Sin) and samples of a receive path input signal (Rin); in response to receiving each sample of the send path input signal, providing a double-talk indicator to indicate whether or not double-talk has been detected; using the double-talk indicator to determine a double-talk density within a predetermined number of samples of the send path input signal or the receive path input signal; and using the double-talk density to set a heavy double-talk indicator to indicate whether or not heavy double-talk has been detected and to determine a mode of the data processing system, wherein: in response to determining that the double-talk density is between a first density threshold and a second density threshold, wherein the first density threshold is greater than the second density threshold, setting the heavy double-talk indicator to indicate that heavy double-talk has not been detected and entering the data processing system into a double-talk mode, and in response to entering the double-talk mode, disabling non-linear processing for a first duration; and in response to determining that the double-talk density exceeds the first density threshold, setting the heavy double-talk indicator to indicate that heavy double-talk has been detected and entering the data processing system into a heavy double-talk mode, and in response to entering the heavy double-talk mode, disabling nonlinear processing for a second duration, wherein the first duration is different than the second duration.