Robust Foreground / Background Filtering Control for Acoustic Echo Cancellation

JP2024538563A5Pending Publication Date: 2025-09-29DOLBY LABORATORIES LICENSING CORP
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2024518594
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2021-09-30
Filing Date
2022-09-27
Publication Date
2025-09-29

AI Technical Summary

Benefits of technology

【0004】 前景フィルタと背景フィルタの両方と通信する制御論理は、近端マイクロフォン信号と、前景エコー推定および背景エコー推定のうちの選択された1つとに基づいて、フィルタリングされた結果を決定しうる。フィルタリングされた結果は、その後、音響エコー消去システムのための近端音声信号を生成するために使用されうる。制御論理は、偏差信号(deviation signal)に基づいて、背景フィルタによる適応を停止させてもよい。偏差信号は、受領された周波数領域の遠端信号の各周波数ビンについて前景エコー推定と背景エコー推定の両方のための相互相関係数を決定することによって、制御論理によって決定されうる。各相互相関係数は、受領されたマイクロフォン入力信号と、各周波数ビンについてのフィルタによるそれぞれのエコー推定との比較に基づきうる。決定された相互相関係数は、前景エコー推定と背景エコー推定の両方のために前記周波数ビンのうちの複数にわたって加えられてもよく、前景エコー推定のための相互相関係数の和と背景エコー推定のための相互相関係数の和のうちの1つが、どのフィルタがエコー推定のうちの前記選択された1つに関連するかに基づいて選択されうる。最後に、ヒステリシス関数が、選択された、相互相関係数の和に適用されてもよい。選択された和が第1の閾値よりも大きいとき、ヒステリシス関数は高い値を出力してもよく、選択された和が第2の閾値よりも小さいとき、ヒステリシス関数は低い値を出力してもよい。ヒステリシス関数が高い値を出力することに応答して、制御論理によってアクティブ化される偏差信号は、制御論理が、背景フィルタの適応をオフにするために使用する。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000018_0000
    Figure 00000018_0000
  • Figure 00000018_0001
    Figure 00000018_0001
  • Figure 00000018_0002
    Figure 00000018_0002
Patent Text Reader

Abstract

Systems and methods for controlling adaptive filtering components are described. A far-end signal may be filtered by each of a foreground filter and a background filter, where both filters are adaptive echo cancellation filters that output an echo estimate. The control logic may stop the adaptation by the background filter based on a deviation signal. To determine the deviation signal, a cross-correlation coefficient for the echo estimates generated by both filters may be determined for each frequency bin of the far-end signal. The determined cross-correlation coefficients may be summed over multiple frequency bins. A hysteresis function may then be applied to the sum associated with the filter associated with the echo estimate used to generate the filtered result. The deviation signal may be activated in response to the hysteresis function outputting a high value, which the control logic uses to turn off the adaptation by the background filter.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS This application claims priority to U.S. Provisional Application No. 63 / 250,565, filed September 30, 2021, and European Patent Application No. 21200054.1, filed September 30, 2021, which are incorporated herein by reference.

[0002] Technical Field FIELD Embodiments herein relate generally to audio signal processing, and more particularly to controlling filtering for acoustic echo cancellation to respond to various filter deviations in a more robust manner compared to conventional solutions. Summary of the Invention [Means for solving the problem]

[0003] A system and method are described for controlling foreground and background adaptive filtering components of an acoustic echo cancellation system. A foreground filter of the acoustic echo cancellation system may be in communication with the control logic and filters a received frequency domain far-end signal to provide a foreground echo estimate. The foreground filter may be an adaptive echo cancellation filter that operates based on foreground coefficients. The acoustic echo cancellation system may also include a background filter that filters the received frequency domain far-end signal. The background filter may be an adaptive echo cancellation filter that operates based on background coefficients and outputs a background echo estimate.

[0004] Control logic in communication with both the foreground and background filters may determine a filtered result based on the near-end microphone signal and a selected one of the foreground and background echo estimates. The filtered result may then be used to generate a near-end speech signal for the acoustic echo cancellation system. The control logic may stop adaptation by the background filter based on a deviation signal. The deviation signal may be determined by the control logic by determining a cross-correlation coefficient for both the foreground and background echo estimates for each frequency bin of the received frequency domain far-end signal. Each cross-correlation coefficient may be based on a comparison of the received microphone input signal with a respective echo estimate by the filter for each frequency bin. The determined cross-correlation coefficients may be added across multiple of the frequency bins for both the foreground and background echo estimates, and one of the sum of the cross-correlation coefficients for the foreground echo estimate and the sum of the cross-correlation coefficients for the background echo estimate may be selected based on which filter is associated with the selected one of the echo estimates. Finally, a hysteresis function may be applied to the selected sum of the cross-correlation coefficients. When the selected sum is greater than a first threshold, the hysteresis function may output a high value, and when the selected sum is less than a second threshold, the hysteresis function may output a low value. A deviation signal activated by the control logic in response to the hysteresis function outputting a high value is used by the control logic to turn off adaptation of the background filter. [Brief description of the drawings]

[0005] The present disclosure is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings in which like reference symbols indicate similar elements and in which:

[0006] [Figure 1] 1 illustrates a flow diagram of a method for controlling a foreground and background adaptive filtering component of an acoustic echo cancellation system, according to one embodiment.

[0007] [Diagram 2] 1 illustrates a simplified block diagram of a system for controlling foreground and background adaptive filtering components of an acoustic echo cancellation system, according to one embodiment.

[0008] [Diagram 3] 1 shows a simplified block diagram of an acoustic echo cancellation system that utilizes a deviation signal to stop background filter adaptation, according to one embodiment.

[0009] [Figure 4] 13 shows a plot illustrating how a noise estimate can improve the ability of an estimated signal to track a microphone input, according to one embodiment.

[0010] [Diagram 5] 1 illustrates a simplified block diagram of a system for determining a correlation coefficient of a deviation signal, according to various embodiments.

[0011] [Figure 6] 2 illustrates a flow diagram of a method for determining a deviation signal, according to an embodiment.

[0012] [Figure 7] 1 illustrates a simplified block diagram of a system for determining a correlation coefficient for a deviation signal in accordance with various embodiments.

[0013] [Figure 8] 4 illustrates a hysteresis function applied to the deviation signal according to an embodiment.

[0014] [Figure 9] 1 is a block diagram of an example system for controlling foreground and background adaptive filtering components of an acoustic echo cancellation system, in accordance with an embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0015] Foreground / background filtering schemes are traditionally used for acoustic echo cancellation in audio conferencing systems. One advantage of the foreground / background filtering scheme is its ability to address the deadlock problem; it treats two very similar filter deviations for echo path change and double talk in very different ways. For echo path change, it is desirable for the filter to adapt as quickly as possible. In contrast, for double talk, adaptation should be minimal. Thus, the control logic that determines when to transfer adaptive filter coefficients between the foreground and background filters can be important to the overall performance of the acoustic echo canceller (AEC). Furthermore, the accuracy of the control logic, and therefore the AEC performance, can be adversely affected by the noise level in the microphone environment. Thus, a robust algorithm is desirable for the control logic to function properly under different operating environments.

[0016] A novel and robust system and method for control logic for a foreground / background filtering scheme that may be used widely in foreground / background adaptive filtering applications is described herein. FIG. 1 shows a flow diagram for a method 100 for controlling the foreground and background adaptive filtering components of an acoustic echo cancellation system, according to one embodiment. FIG. 2 shows a simplified block diagram of a system 200 for controlling the foreground and background adaptive filtering components of an acoustic echo cancellation system, according to one embodiment, that uses the method 100 described in FIG. 1. The system 200 may be part of a larger system used for acoustic echo cancellation. The exemplary system 200 includes a foreground adaptive filter 220, a background adaptive filter 240, and control logic 270 in communication with each of the foreground and background filters. A signal X i [k] 210 refers to a frequency domain far-end signal derived from the time domain samples of the far-end signal x[t] to be reproduced by the near-end device. Similarly, the signal Y i[k] 260 is a frequency domain near-end microphone captured signal derived from time domain samples of the near-end microphone captured signal y[t]. The microphone captured signal y[t] may be determined from the far-end signal x[t] when no near-end speech is present using the following equation: y[t]=h[t]*x[t]+n(t) where h[t] is the speaker-room-microphone impulse response. n[t] is the additive noise (which can be ambient acoustic noise or electronic noise introduced by the circuit). To transform x[t] and y[t] into the frequency domain, they may be passed through a filter bank (not shown) or processed using a short-time Fourier transform ("STFT"). Thus, the representation X i [k], Y i [k], N i Herein, x[t], y[t], n[t] are used to represent the i-th bin data of x[t], y[t], n[t] for frame k.

[0017] The method 100 may begin at step 110, where a foreground filter 220 of an acoustic echo cancellation system 200 filters a received frequency domain far-end signal X i Filter [k] to estimate the foreground echo

number

[0018] The control logic 270 communicates with both the foreground filter 220 and the background filter 240 and controls the received frequency domain far-end signal X i [k] 210 and foreground echo estimate ^X i f [k] 230 and background echo estimate ^X i b [k] 280 and the selected one of them, in step 130, the filtered result E i [k] 290. As seen in the acoustic echo cancellation system 200, for each bin i, E i f [k] 238 and E i b [k] 288 are the residuals (bin-wise errors) of the foreground and background filters, respectively. The residuals E i f [k] 238 is obtained by determining the foreground echo estimate ^X i f [k] 230 is the near-end microphone capture signal Y in the frequency domain i [k] is subtracted from 260. The residual E i f [k] 238 may be passed to control logic 270. Similarly, the residual E i b [k] 288 is obtained by determining the foreground echo estimate ^X i b [k] 280 is the near-end microphone capture signal Y in the frequency domain i [k] Subtracted from 260.

[0019] The control logic 270 calculates the residual E i f[k] 238 and residual E i b [k] Filtered result of 1 out of 288 E i [k] 290. The filtered result E i [k] 290 may later be used to generate a near-end speech signal (e.g., transmitted over a network for playback at a remote location) and / or converted to a time domain signal. When near-end speech is present, the filtered result E i [k] 290 may include both the echo residual and the near-end speech. The selection is made at the start of the echo cancellation process by selecting the foreground residual E i f [k] 238. After initialization, the control logic 270 may proceed to select the residual used in the previous frame in scenarios where the residuals from the two filters are close in value. If there is a significant difference (e.g., above a predefined threshold), then a different logic may be used, as described in more detail below.

[0020] Typically, a variant of the least mean squares ("LMS") algorithm may be implemented as the adaptive filter update scheme (e.g., NLMS, NAG-LMS, PNLMS). At a high level, control logic 270 may control the adaptation of foreground adaptive filter 220 and background adaptive filter 240 as follows. The update step size of the foreground adaptive filter 220 LMS adaptive algorithm may be relatively large and may be continuously updated for each frame. The update step size of the background adaptive filter 240 LMS adaptive algorithm may be relatively small, for example one or two orders of magnitude smaller than the foreground filter 220 LMS adaptive algorithm. The control logic 270 calculates the residual (error) signal E of the foreground filter 220 across all frequency bins. i f The sum of the residual signal E[k] 238 of the background filter 240 for a threshold number of consecutive frames (which may be a predetermined number, e.g., two or more frames)i b If the control logic 270 finds that the background filter 240 coefficients are significantly larger (e.g., larger than a predefined threshold such as 6 dB) than a similar sum of [k] 288, then the coefficients of the background filter 240 may be copied to the coefficients of the foreground filter 220 (if NAG-LMS is used, the momentum is also copied) because the control logic 270 has identified the situation as being caused by near-end speech in y[t] (e.g., double talk in a teleconference where a speaker is speaking at the near-end at the same time that the far-end signal is being played).

[0021] However, the control logic 270 may also be used to reduce the residual signal E i b [k] 288 denotes the residual (error) signal E of the foreground filter 220 across all frequency bins for a given number of consecutive frames (3-5 frames may be preferred, but any number may be selected). i f The coefficients of the background filter 240 may be replaced by the foreground filter coefficients if the sum of [k] 238 is significantly greater than the sum of [k] 238 as the control logic 270 identifies when the foreground and background filters begin to converge or when the echo path changes (e.g., when there is an obstruction between the speaker of the near-end audio system and the near-end microphone, such as a user covering part of the near-end microphone).

[0022] Returning to method 100 of FIG. 1, to further improve the performance of the AEC, in step 140, the background filter 240 may be frozen (i.e., adaptation may be stopped) whenever the deviation signal I[k] is signaled by the control logic 270. The deviation signal I[k] may be derived to reflect when there is significant divergence between the adapted filter (either foreground or background) and the actual speaker-room-microphone response h[t]. According to an exemplary embodiment, the deviation signal is a function of the captured microphone signal Y i [k] and the adaptive filter determined echo estimate ^Xi [k]. Additional information regarding cross-correlation coefficients can be found in "Cross-correlation coefficients," which is incorporated herein by reference. [Non-Patent Document 1] Ghose, K. and Reddy, VU, 2000, A Double-Talk Detector for Acoustic Echo Cancellation Applications, Signal Processing, 80(8), pp.1459-1467

[0023] One possible formula for determining the deviation signal may be as follows:

number

[0024] When the adaptive filter converges, and there is no local speech presented on the microphone input y[t] or echo path changes, the estimated signal should be very closely correlated with the input. Geometrically, that means that the angle between signals y[t] and ^x[t] is small. On the other hand, whenever some local speech is presented (e.g., double talk) or there is an echo path change, the cross-correlation between signals y[t] and ^x[t] drops, reflecting an increase in the angle between them.

[0025] Therefore, under different noise environments, i To improve the robustness of [k], a noise floor value for each frequency bin may be determined. FIG. 4 shows that the noise level can significantly reduce the credibility of the filter's echo estimate and impair the filter performance. FIG. 4 is a plot 400 showing how a noise estimate can improve the ability of the estimated signal to track the microphone input according to one embodiment. The deviation angle estimate (θ 1 and θ 2 How noisy the fluctuation between Y and Y is depends on the SNR level ( i [k] 420 length noise power F i [k] 435 divided by the radius 440) can be fairly defined. In the plot 400, H i 0 450 represents the speaker-room-microphone response in bin i. The noise power F i The larger [k] 435, the greater the captured microphone signal Y i [k] 420 and the residual signal after echo cancellation^E i [k] Angle θ between 410 2 (hence, the echo cancellation is less effective). Using the noise floor estimate, the angle attribute can be improved. The angle is the sum of the input signal Y i [k] 420 and the estimated echo signal^E i[k] 410. For example, when generating the sum of the correlation coefficients, the noise power F i [k] 435 is (Y i [k] 420) to reduce the size of the input signal Y i [k] Echo signal estimated as 420^E i [k] 410 can be made smaller.

[0026] The noise floor estimate is shown in Figure 5. Figure 5 shows the correlation coefficient ρ i [k] 585. To increase its robustness, for each bin, Y i [k] 555 may be processed by a noise estimator 560 to capture the noise floor of bin i. i Note that [k] can be viewed as the STFT of the time domain data and, depending on the window type and stride size, can exhibit extremely low absolute values ​​of the data, making traditional minimum follower estimation of the noise floor less suitable.

[0027] Thus, as shown in block diagram 550, the following function is given as the noise floor F i [k] can be used to determine

number

[0028] FIG. 6 shows a flow diagram of a method 600 for determining a deviation signal that may be used to stop adapting the background filter 240, according to an embodiment. In optional step 605, a noise floor value for each frequency bin may be determined as described above. Cross-correlation coefficients for both the foreground and background echo estimates for each frequency bin of the received frequency domain far-end signal may be determined in step 610. Each cross-correlation coefficient may be based on a comparison of the received microphone input signal with a respective echo estimate by the filter for each frequency bin. FIG. 7 shows an exemplary simplified block diagram 700 illustrating the generation of the cross-correlation coefficients for each filter 710. The far-end signal X i [k] 705 is processed by filter 710 as described above to obtain the echo estimate ̂X i[k] 720. The cross-correlation estimator 725 may output the echo estimate ^X i [k] 720 to microphone input Y i Compared with [k], the cross-correlation ρ i [k] may be determined. In one example embodiment, the cross-correlation for the i-th bin may be determined using the following formula:

number

[0029] In optional step 615, the cross-correlation coefficients may be filtered to use the determined values ​​only for bins that meet a threshold level of speech. In one exemplary embodiment, two separate tests are performed to compare the ρ i This ensures that only [k] is calculated. The first test is an SNR test, i.e. the level of the speech should exceed some level above the noise floor. The second test is an absolute level test, the level of the input should be large enough alone (to reduce numerical errors). Mathematically this can be expressed as:

number

[0030] The determined cross-correlation coefficients may be summed across multiple of the frequency bins for both the foreground and background echo estimates in step 620. Cross-correlation coefficients are calculated for each bin from i0 to i1 for each frame, for both the foreground and background echo estimates. The input to the hysteresis function, i.e., the accumulation of cross-correlation coefficients, is selected between foreground and background accumulation based on which filter output is selected to output E[k], as described above. The control logic may determine which echo estimate to use for the current frame, between the foreground filter and the background filter (as described with respect to step 130 of method 100). This signal may be used to select the sum of correlation coefficients associated with the filter associated with the selected echo estimate.

[0031] Finally, in step 640, a hysteresis function may be applied to the selected sum of cross-correlation coefficients.

number

[0032] Whenever the deviation signal is high (I[k] is 1), the background filter stops updating. For an echo path change scenario, this allows the foreground filter to continue updating to the new speaker-room-microphone response, and the error of the background filter becomes larger than the foreground, which allows the control logic to copy the newly adapted foreground filter to the background. For the double talk case, as the foreground filter keeps updating during the frame where local speech is presented, it diverges from the actual speaker-room-microphone response, and the foreground error becomes larger than the background filter, which allows the control logic to replace the foreground filter with a frozen background filter.

[0033] The robust deviation signal greatly helps the control logic to freeze the background filter without losing the ability to rapidly update the foreground filter whenever the echo path changes. This improvement allows the AEC to achieve better and more consistent performance in different environments.

[0034] The methods and modules described above may be implemented using hardware or software executed on a computing system. FIG. 9 is a block diagram of an exemplary computing system for concealing packet loss in a multi-format audio communication system, according to various embodiments of the present invention. With reference to FIG. 9, an exemplary system for implementing the subject matter disclosed herein, including the methods described above, includes a hardware device 900 including a processing unit 902, a memory 904, a storage 906, a data input module 908, a display adapter 910, a communication interface 912, and a bus 914 coupling elements 904-912 to the processing unit 902.

[0035] The bus 914 may comprise any type of bus architecture. Examples include a memory bus, a peripheral bus, a local bus, etc. The processing unit 902 is an instruction execution machine, apparatus, or device and may comprise a microprocessor, a digital signal processor, a graphics processing unit, an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), etc. The processing unit 902 may be configured to execute program instructions stored in the memory 904 and / or storage 906 and / or received via the data input module 908.

[0036] The memory 904 may include a read only memory (ROM) 916 and a random access memory (RAM) 918. The memory 904 may be configured to store program instructions and data during operation of the device 900. In various embodiments, the memory 904 may include any of a variety of memory technologies, such as dynamic RAM (DRAM) or static random access memory (SRAM), including variations such as dual data rate synchronous DRAM (DDR SDRAM), error correcting code synchronous DRAM (ECC SDRAM), or Rambus DRAM (RDRAM). The memory 904 may also include non-volatile memory technologies, such as non-volatile flash RAM (NVRAM) or ROM. In some embodiments, it is envisioned that the memory 904 may include a combination of such technologies as the foregoing and other technologies not specifically mentioned. When the subject matter is implemented in a computer system, a basic input / output system (BIOS) 920, containing the basic routines that help to transfer information between elements within the computer system, such as during start-up, is stored in the ROM 916.

[0037] Storage 906 may include flash memory data storage devices for reading from and writing to flash memory, hard disk drives for reading from and writing to hard disks, magnetic disk drives for reading from and writing to removable magnetic disks, and / or optical disk drives for reading from and writing to removable optical disks, such as CD-ROMs, DVDs, or other optical media. The drives and their associated computer-readable media provide non-volatile storage of computer-readable instructions, data structures, program modules, and other data for the hardware device 900.

[0038] It should be noted that the methods described herein may be embodied in executable instructions stored on a non-transitory computer-readable medium for use by or in connection with an instruction execution machine, apparatus, or device, such as a computer-based or processor-containing machine, apparatus, or device. For some embodiments, it will be understood by those skilled in the art that other types of computer-readable media capable of storing data accessible by a computer, such as magnetic cassettes, flash memory cards, digital video disks, Bernoulli cartridges, RAM, ROM, etc., may be used and may be used in the exemplary operating environment. As used herein, "computer-readable medium" may include one or more of any suitable medium for storing executable instructions of a computer program in one or more of electronic, magnetic, optical, and electromagnetic formats such that an instruction execution machine, system, apparatus, or device can read (or fetch) the instructions from the computer-readable medium and execute the instructions to implement the methods described. A non-exhaustive list of conventional exemplary computer readable media includes portable computer diskettes, RAM, ROM, erasable programmable read-only memory (EPROM or flash memory), portable compact discs (CDs), portable digital video discs (DVDs), high definition DVDs (HD-DVD™), optical storage devices including BLU-RAY discs, and the like.

[0039] A number of program modules may be stored in the storage 906, the ROM 916, or the RAM 918, including an operating system 922, one or more application programs 924, program data 926, and other program modules 928. A user may enter commands and information into the hardware device 900 through a data input module 908. The data input module 908 may include mechanisms such as a keyboard, a touch screen, a pointing device, and the like. Other external input devices (not shown) are connected to the hardware device 900 via an external data input interface 930. By way of example and not limitation, the external input devices may include a microphone, a joystick, a game pad, a satellite dish, a scanner, and the like. In some embodiments, the external input devices may include video or audio input devices, such as a video camera, a still camera, and the like. The data input module 908 may be configured to receive input from one or more users of the device 900 and deliver such input to the processing unit 902 and / or the memory 904 via the bus 914.

[0040] The hardware device 900 can operate in a networked environment using logical connections to one or more remote nodes (not shown) via the communication interface 912. The remote node may be another computer, a server, a router, a peer device, or other common network node, and typically includes many or all of the elements described above with respect to the hardware device 900. The communication interface 912 can interface with wireless and / or wired networks. Examples of wireless networks include, for example, BLUETOOTH networks, wireless personal area networks, wireless 802.11 local area networks (LANs), and / or wireless telephone networks (e.g., cellular, PCS, or GSM networks). Examples of wired networks include, for example, LANs, fiber optic networks, wired personal area networks, telephone networks, and / or wide area networks (WANs). Such networking environments are common in intranets, the Internet, offices, enterprise-wide computer networks, and the like. In some embodiments, the communication interface 912 can include logic configured to support direct memory access (DMA) transfers between the memory 904 and other devices.

[0041] In a networked environment, the program modules depicted with respect to the hardware device 900, or portions thereof, may be stored in a remote storage device, such as, for example, on a server. It will be appreciated that other hardware and / or software may be used to establish communications links between the hardware device 900 and other devices.

[0042] It should be understood that the configuration of the hardware device 900 shown in FIG. 9 is only one possible implementation, and other configurations are possible. It should also be understood that the various system components (and means) defined by the claims, described above, and illustrated in the various block diagrams represent logical components configured to perform the functions described herein. For example, one or more of these system components (and means) may be realized in whole or in part by at least some of the components illustrated in the configuration of the hardware device 900. In addition, at least one of these components is implemented at least in part as an electronic hardware component, and thus constitutes a machine, while other components may be implemented in software, hardware, or a combination of software and hardware. More specifically, at least one component defined by the claims is implemented at least in part as an electronic hardware component, such as an instruction-executing machine (e.g., a processor-based machine or a machine including a processor), and / or as a specialized circuit or circuitry (e.g., discrete logic gates interconnected to perform a specialized function), such as that illustrated in FIG. 9. Other components may be implemented in software, hardware, or a combination of software and hardware. Moreover, some or all of these other components can be combined, some can be omitted entirely, and additional components can be added, while still achieving the functionality described herein. Thus, the subject matter described herein can be embodied in many different variations, and all such variations are intended to be within the scope of what is claimed.

[0043] In the above description, the subject matter may be described with reference to symbolic representations of steps and operations performed by one or more devices, unless otherwise indicated. Thus, it will be understood that such steps and operations, sometimes referred to as computer-executed, include manipulation by a processing unit of data in a structured form. This manipulation transforms the data or maintains the data in a location within the computer's memory system, thereby reconfiguring or otherwise altering the operation of the device in a manner well understood by those skilled in the art. The data structures in which the data is maintained are physical locations of memory that have certain characteristics defined by the format of the data. However, while the subject matter is described in the foregoing context, it is not intended to be limiting. Those skilled in the art will appreciate that the various steps and operations described below may also be implemented in hardware.

[0044] For purposes of this specification, the terms “component,” “module,” and “process” may be used interchangeably to refer to a processing unit that performs a particular function and may be implemented through computing program code (software), digital or analog circuitry, computer firmware, or any combination thereof.

[0045] It should be noted that the various functions disclosed herein may be described in terms of their behavior, register transfers, logical components, and / or other characteristics, using any number of combinations of hardware, firmware, and / or as data and / or instructions embodied in various machine-readable or computer-readable media. The computer-readable media in which such formatted data and / or instructions may be embodied include various forms of physical (non-transitory) non-volatile media, such as, but not limited to, optical, magnetic, or semiconductor storage media.

[0046] Unless the context clearly requires otherwise, throughout this specification and the claims, words such as "comprise", "having", and the like are to be construed in an inclusive sense, i.e., "including, but not limited to", and not in an exclusive or exhaustive sense. Furthermore, words using the singular or plural also include the plural or singular, respectively. Furthermore, the words "herein", "herein", "above", "herein" and words of similar import refer to this application as a whole and not to any particular portions of this application. When the word "or" is used in connection with a list of two or more items, the word covers all of the following interpretations of that word: any of the items in the list, all of the items in the list, and any combination of the items in the list.

[0047] In the above description and throughout, numerous specific details are set forth to provide a thorough understanding of the present disclosure. However, it will be apparent to those skilled in the art that the present disclosure may be practiced without these specific details. On the other hand, well-known structures and devices are shown in block diagram form for ease of explanation. The description of the preferred embodiment is not intended to limit the scope of the claims appended hereto. Furthermore, in the methods disclosed herein, various steps are disclosed that illustrate some of the functionality of the present disclosure. It will be understood that these steps are merely exemplary and are not meant to be limiting in any way. Other steps and functions may be considered without departing from the present disclosure.

[0048] Various aspects of the present invention can be understood from the following enumerated example embodiments (EEE).

[0049] EEE1: A method for controlling foreground and background adaptive filtering components of an acoustic echo cancellation system, the method comprising: filtering the received far-end signal in the frequency domain with a foreground filter in communication with control logic, the filtering by the foreground filter providing a foreground echo estimate, the foreground filter being an adaptive echo cancellation filter operating based on foreground coefficients; filtering the received far-end signal in the frequency domain with a background filter in communication with the control logic, the filtering with the background filter providing a background echo estimate, the background filter being an adaptive echo cancellation filter operating based on background coefficients; determining, by the control logic, a filtered result based on a near-end microphone signal and a selected one of the foreground echo estimate and the background echo estimate, the filtered result then being used to generate a near-end speech signal; and stopping, by the control logic, adaptation by the background filter based on a deviation signal, the deviation signal being determined by the control logic, the determination of the deviation signal comprising: determining a cross-correlation coefficient for both the foreground echo estimate and the background echo estimate for each frequency bin of the received frequency domain far-end signal, each cross-correlation coefficient being based on a comparison of the received microphone input signal for each frequency bin with the respective echo estimate; summing the determined cross-correlation coefficients across a plurality of the frequency bins for both the foreground echo estimate and the background echo estimate; selecting one of the sum of cross-correlation coefficients for the foreground echo estimate and the sum of cross-correlation coefficients for the background echo estimate, the selection being based on the filter associated with the selected one of the echo estimates; applying a hysteresis function to the selected sum of cross-correlation coefficients, the hysteresis function outputting a high value when the selected sum is greater than a first threshold and the hysteresis function outputting a low value when the selected sum is less than a second threshold, the deviation signal being active in response to the hysteresis function outputting the high value. method.

[0050] EEE2: The method described in EEE1, wherein the received near-end microphone signal is processed to determine a noise floor value for each frequency bin before determining the cross-correlation coefficients, and the noise floor is used to determine the cross-correlation coefficients for each bin.

[0051] EEE3: The process for determining the noise floor value comprises: if the magnitude of the near-end microphone signal is less than or equal to the modified near-end microphone signal for a previous bin, then based on a first smoothing factor and a noise floor value for the previous bin, when the magnitude of the near-end microphone signal is greater than the modified near-end microphone signal for the previous bin, The method described in EEE2.

[0052] EEE4: The method according to EEE3, wherein the first smoothing factor is a lower value than the second smoothing factor.

[0053] EEE5: A method according to any one of EEE1 to 4, wherein the deviation signal is further determined based on filtering the determined cross-correlation coefficient, the cross-correlation coefficient being determined only for bins that are greater than a threshold level of speech, and bins that are less than the threshold level of speech having the cross-correlation coefficient set to a predetermined value.

[0054] EEE6: The method according to EEE5, wherein the threshold level for speech is based on a comparison of the magnitude of the near-end microphone signal for a bin to a noise floor value being greater than a predetermined signal-to-noise ratio threshold.

[0055] EEE7: The method of EEE5, wherein the threshold level for speech is based on the magnitude of the near-end microphone signal being greater than a predetermined minimum level threshold.

[0056] EEE8: The method of any one of EEE1-7, wherein adding up the determined cross-correlation coefficients across the plurality of frequency bins includes adding up determined cross-correlation coefficients for frequency bins within a range of 300 Hz to 3400 Hz.

[0057] EEE9: A computer program product comprising computer readable program code that is executable by one or more processors when retrieved from a non-transitory computer readable medium, the program code comprising: filtering the received frequency domain far-end signal with a foreground filter, the filtering by the foreground filter providing a foreground echo estimate, the foreground filter being an adaptive echo cancellation filter operating based on foreground coefficients; filtering the received frequency domain far-end signal with a background filter, where filtering with the background filter provides a background echo estimate, the background filter being an adaptive echo cancellation filter operating based on background coefficients; determining a filtered result based on a near-end microphone signal and a selected one of the foreground echo estimate and the background echo estimate, the filtered result then being used to generate a near-end speech signal; and ceasing adaptation by the background filter based on a deviation signal, wherein determining the deviation signal comprises: determining a cross-correlation coefficient for both the foreground echo estimate and the background echo estimate for each frequency bin of the received frequency domain far-end signal, each cross-correlation coefficient being based on a comparison of the received microphone input signal for each frequency bin with the respective echo estimate; summing the determined cross-correlation coefficients across a plurality of the frequency bins for both the foreground echo estimate and the background echo estimate; selecting one of the sum of cross-correlation coefficients for the foreground echo estimate and the sum of cross-correlation coefficients for the background echo estimate, the selection being based on the filter associated with the selected one of the echo estimates; applying a hysteresis function to the selected sum of cross-correlation coefficients, the hysteresis function outputting a high value when the selected sum is greater than a first threshold and the hysteresis function outputting a low value when the selected sum is less than a second threshold, the deviation signal being active in response to the hysteresis function outputting the high value. Computer program products.

[0058] EEE10: The computer program product as described in EEE9, wherein the received near-end microphone signal is processed to determine a noise floor value for each frequency bin prior to determining the cross-correlation coefficients, the noise floor being used to determine the cross-correlation coefficients for each bin.

[0059] EEE11: The process for determining a noise floor value comprises: if the magnitude of the near-end microphone signal is less than or equal to the modified near-end microphone signal for a previous bin, then based on a first smoothing factor and a noise floor value for the previous bin, when the magnitude of the near-end microphone signal is greater than the modified near-end microphone signal for the previous bin, A computer program product as defined in EEE10.

[0060] EEE12: The computer program product of EEE11, wherein the first smoothing factor is a lower value than the second smoothing factor.

[0061] EEE13: A computer program product as described in any one of EEE9 to 12, wherein the deviation signal is further determined based on filtering the determined cross-correlation coefficient, wherein the cross-correlation coefficient is determined only for bins that are greater than a threshold level of speech, and bins that are less than the threshold level of speech have the cross-correlation coefficient set to a predetermined value.

[0062] EEE14: The computer program product of EEE13, wherein the threshold level for speech is based on a comparison of the magnitude of the near-end microphone signal for a bin to a noise floor value being greater than a predetermined signal-to-noise ratio threshold.

[0063] EEE15: The computer program product of EEE14, wherein the threshold level for speech is based on the magnitude of the near-end microphone signal being greater than a predetermined minimum level threshold.

[0064] EEE16: The computer program product of any one of claims EEE9 to 15, wherein adding up the determined cross-correlation coefficients across the plurality of frequency bins comprises adding up determined cross-correlation coefficients for frequency bins within a range of 300 Hz to 3400 Hz.

[0065] EEE17: An acoustic echo cancellation system comprising: a foreground filter for filtering the received far-end signal in the frequency domain, the filtering by the foreground filter providing a foreground echo estimate, the foreground filter being an adaptive echo cancellation filter operating based on foreground coefficients; a background filter for filtering the received far-end signal in a frequency domain, the filtering by the background filter providing a background echo estimate, the background filter being an adaptive echo cancellation filter operating based on background coefficients; and control logic in communication with each of the foreground filter and the background filter, the control logic comprising: determining a filtered result based on a near-end microphone signal and a selected one of the foreground echo estimate and the background echo estimate, the filtered result then being used to generate a near-end speech signal; and ceasing adaptation by the background filter based on a deviation signal, the deviation signal being determined by the control logic, the determination of the deviation signal comprising: determining a cross-correlation coefficient for both the foreground echo estimate and the background echo estimate for each frequency bin of the received frequency domain far-end signal, each cross-correlation coefficient being based on a comparison of the received microphone input signal for each frequency bin with the respective echo estimate; summing the determined cross-correlation coefficients across a plurality of the frequency bins for both the foreground echo estimate and the background echo estimate; selecting one of the sum of cross-correlation coefficients for the foreground echo estimate and the sum of cross-correlation coefficients for the background echo estimate, the selection being based on the filter associated with the selected one of the echo estimates; applying a hysteresis function to the selected sum of cross-correlation coefficients, the hysteresis function outputting a high value when the selected sum is greater than a first threshold and the hysteresis function outputting a low value when the selected sum is less than a second threshold, the deviation signal being active in response to the hysteresis function outputting the high value. system.

[0066] EEE18: The system described in EEE17, wherein the received near-end microphone signal is processed to determine a noise floor value for each frequency bin before determining the cross-correlation coefficients, and the noise floor is used to determine the cross-correlation coefficients for each bin.

[0067] EEE19: The process for determining a noise floor value comprises: if the magnitude of the near-end microphone signal is less than or equal to the modified near-end microphone signal for a previous bin, then based on a first smoothing factor and a noise floor value for the previous bin, when the magnitude of the near-end microphone signal is greater than the modified near-end microphone signal for the previous bin, The system described in EEE18.

[0068] EEE20: The system described in EEE19, wherein the first smoothing factor is a lower value than the second smoothing factor.

Claims

1. 1. A method for controlling foreground and background adaptive filtering components of an acoustic echo cancellation system, the method comprising: filtering the received far-end signal in the frequency domain with a foreground filter in communication with control logic, wherein the filtering by the foreground filter provides a foreground echo estimate, the foreground filter being an adaptive echo cancellation filter operating based on foreground coefficients; filtering the received frequency domain far-end signal with a background filter in communication with the control logic, wherein filtering by the background filter provides a background echo estimate, the background filter being an adaptive echo cancellation filter operating based on background coefficients; determining, by the control logic, a filtered result based on the near-end microphone signal and a selected one of the foreground echo estimate and the background echo estimate, the filtered result then being used to generate a near-end speech signal; and stopping, by the control logic, adaptation by the background filter based on a deviation signal, the deviation signal being determined by the control logic, the determination of the deviation signal comprising: determining a cross-correlation coefficient for both the foreground echo estimate and the background echo estimate for each frequency bin of the received frequency domain far-end signal, each cross-correlation coefficient being based on a comparison of the received microphone input signal for each frequency bin with a respective echo estimate; summing the determined cross-correlation coefficients across a plurality of the frequency bins for both the foreground echo estimate and the background echo estimate; selecting one of the sum of cross-correlation coefficients for the foreground echo estimate and the sum of cross-correlation coefficients for the background echo estimate, the selection being based on a filter associated with the selected one of the echo estimates; applying a hysteresis function to the selected sum of cross-correlation coefficients, the hysteresis function outputting a high value when the selected sum is less than a first threshold and the hysteresis function outputting a low value when the selected sum is greater than a second threshold, the deviation signal being active in response to the hysteresis function outputting the high value. method.

2. 2. The method of claim 1, wherein the received near-end microphone signal is processed to determine a noise floor value for each frequency bin before determining the cross-correlation coefficients, and the noise floor is used to determine the cross-correlation coefficients for each bin.

3. The process for determining the noise floor value comprises: if the magnitude of the near-end microphone signal is less than or equal to the modified near-end microphone signal for the previous bin, then based on a first smoothing factor and a noise floor value for the previous bin, when the magnitude of the near-end microphone signal is greater than the modified near-end microphone signal for the previous bin, based on a second smoothing factor and the noise floor value for the previous bin; The method of claim 2.

4. The method of claim 3 , wherein the first smoothing factor is a lower value than the second smoothing factor.

5. 2. The method of claim 1, wherein the deviation signal is further determined based on filtering the determined cross-correlation coefficients, wherein cross-correlation coefficients are determined only for bins that are above a threshold level of speech, and bins that are below the threshold level of speech have cross-correlation coefficients set to a predetermined value.

6. The method of claim 5 , wherein the threshold level for speech is based on a comparison of the magnitude of the near-end microphone signal for a bin to a noise floor value being greater than a predetermined signal-to-noise ratio threshold.

7. The method of claim 5 , wherein the threshold level for speech is based on the magnitude of the near-end microphone signal being greater than a predetermined minimum level threshold.

8. 2. The method of claim 1, wherein adding the determined cross-correlation coefficients across the plurality of frequency bins comprises adding determined cross-correlation coefficients for frequency bins within a range of 300 Hz to 3400 Hz.

9. 9. A computer program product comprising computer readable program code that is executed by one or more processors when retrieved from a non-transitory computer readable medium, said program code comprising instructions for carrying out the method of any one of claims 1 to 8.

10. 1. An acoustic echo cancellation system comprising: a foreground filter for filtering the received far-end signal in the frequency domain, wherein filtering by the foreground filter provides a foreground echo estimate, the foreground filter being an adaptive echo cancellation filter operating based on foreground coefficients; a background filter for filtering the received far-end signal in the frequency domain, wherein filtering by the background filter provides a background echo estimate, the background filter being an adaptive echo cancellation filter operating based on background coefficients; and control logic in communication with each of the foreground filter and the background filter, the control logic comprising: determining a filtered result based on a near-end microphone signal and a selected one of the foreground echo estimate and the background echo estimate, the filtered result then being used to generate a near-end speech signal; and ceasing adaptation by the background filter based on a deviation signal, the deviation signal being determined by the control logic, the deviation signal being determined by: determining a cross-correlation coefficient for both the foreground echo estimate and the background echo estimate for each frequency bin of the received frequency domain far-end signal, each cross-correlation coefficient being based on a comparison of the received microphone input signal for each frequency bin with a respective echo estimate; summing the determined cross-correlation coefficients across a plurality of the frequency bins for both the foreground echo estimate and the background echo estimate; selecting one of the sum of cross-correlation coefficients for the foreground echo estimate and the sum of cross-correlation coefficients for the background echo estimate, the selection being based on a filter associated with the selected one of the echo estimates; applying a hysteresis function to the selected sum of cross-correlation coefficients, the hysteresis function outputting a high value when the selected sum is less than a first threshold and the hysteresis function outputting a low value when the selected sum is greater than a second threshold, the deviation signal being active in response to the hysteresis function outputting the high value. system.

11. 11. The system of claim 10, wherein the received near-end microphone signal is processed to determine a noise floor value for each frequency bin before determining the cross-correlation coefficients, and the noise floor is used to determine the cross-correlation coefficients for each bin.

12. The process for determining the noise floor value comprises: if the magnitude of the near-end microphone signal is less than or equal to the modified near-end microphone signal for the previous bin, then based on a first smoothing factor and a noise floor value for the previous bin, when the magnitude of the near-end microphone signal is greater than the modified near-end microphone signal for the previous bin, based on a second smoothing factor and the noise floor value for the previous bin; The system of claim 11.

13. The system of claim 12 , wherein the first smoothing factor is a lower value than the second smoothing factor.