IP Library Granted Patent US 11,837,254
Granted Patent B2
US 11,837,254 · App. 17/503,263 · Granted Dec 5, 2023

Frontend capture with input stage, suppression module, and output stage

Inventor: Yu Rao (Sunnyvale, CA)
Assignee: Zoom Video Communications, Inc.
G10L25/84G10L21/0272H04L65/403
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,837,254
App. No.
17/503,263
Granted
Dec 5, 2023
Kind
B2
Abstract

Disclosed are systems and methods for a frontend capture module of a video conferencing application, which can modify an input signal, received from a microphone device to match predetermined signal characteristics, such as voice signal level and expected noise floor. An Input stage, a suppression module and an output stage amplify the voice signal portion of the input signal and suppress the noise signal of input signal to predetermined ranges. The input stage selectively applies gains defined by a gain table, based on signal level of the input signal. The suppression module selectively applies a suppression gain to the input signal based on presence or absence of voice signal in the input signal. The output stage further amplifies the input signal in portions having a voice signal and applies a gain table to maintain a consistent noise floor.

Claims (92)

1. A method comprising:

receiving an input signal;

determining a signal level of the input signal;

estimating a noise level in the input signal based on a global minimum frequency in a first search window, comprising:

converting one or more time domain frames to the frequency domain, each converted time domain frame comprising a plurality of frequency domain frames;

establishing the first search window, comprising one or more frequency domain frames;

determining a local minimum frequency in each frequency domain frame in the first search window; and

determining the global minimum frequency for the first search window from the local minimum frequencies in the first search window;

generating a pre-suppression signal, by amplifying the input signal in portions having a low input signal level and compressing the input signal in portions having a high input signal level, the low input signal level being below an input signal low-level threshold and the high input signal level being above an input signal high-level threshold;

generating a post-suppression signal, by applying a voice-on compression factor when detecting a voice signal in the pre-suppression signal, and by applying a voice-off compression factor when detecting no voice signal in the pre-suppression signal; and

generating an output signal from the post-suppression signal by:

applying no gain to portions of post-suppression signal having a low post-suppression signal level being below a low post-suppression level threshold; and

applying a gain factor to portions of post-suppression signal having a medium post-suppression signal level being above the low post-suppression level threshold used to determine the low post-suppression signal level.

2. The method of claim 1 , further comprising:

estimating the noise level in the input signal responsive to detecting no voice signal in the pre-suppression signal;

generating the voice-off compression factor, based on a signal level difference between the pre-suppression signal during a voice off period and the estimated noise level; and

applying the voice-off compression factor to the pre-suppression signal, during the voice off period.

3. The method of claim 1 further comprising:

estimating the noise level in the input signal responsive to detecting no voice signal in the pre-suppression signal;

generating the voice-off compression factor, wherein the voice-off compression factor comprises a difference between the pre-suppression signal during a voice off period and the estimated noise level, plus a difference between the estimated noise level and an expected noise floor; and

applying the voice-off compression factor to the pre-suppression signal, during voice off period.

4. The method of claim 1 , wherein the voice-on compression factor is an amount of a predetermined buffer above an expected noise floor.

5. The method of claim 1 , wherein the first search window corresponds to a silent period characterized by no detected voice signal in the input signal, and further comprising:

generating the voice-off compression factor, based on signal level difference between the pre-suppression signal during the silent period and the estimated noise level; and

applying the voice-off compression factor to the pre-suppression signal, during the silent period.

6. The method of claim 5 , wherein a second search window corresponds to a voice period characterized by a detected voice signal in the input signal, and further comprising:

establishing the second search window comprising one or more frequency domain frames;

determining a local minimum frequency in each frequency domain frame in the second search window;

determining a global minimum frequency in the second search window from the local minimum frequencies in the second search window; and

updating the estimated noise level in the input signal to a signal level corresponding to the global minimum frequency in the second search window, when the global minimum frequency in the second search window is less than the global minimum frequency in the first search window.

7. The method of claim 1 , further comprising:

generating the output signal by applying a compression factor to portions of the post-suppression signal having a high post-suppression signal level being above a high post-suppression level threshold.

8. Non-transitory computer storage that stores executable program instructions that, when executed by one or more computing devices, configure the one or more computing devices to perform operations comprising:

receiving an input signal;

determining a signal level of the input signal;

estimating a noise level in the input signal based on a global minimum frequency in a first search window, comprising:

converting one or more time domain frames to the frequency domain, each converted time domain frame comprising a plurality of frequency domain frames;

establishing the first search window, comprising one or more frequency domain frames;

determining a local minimum frequency in each frequency domain frame in the first search window; and

 determining the global minimum frequency for the first search window from the local minimum frequencies in the first search window;

generating a pre-suppression signal, by amplifying the input signal in portions having a low input signal level and compressing the input signal in portions having a high input signal level, the low input signal level being below an input signal low-level threshold and the high input signal level being above an input signal high-level threshold;

generating a post-suppression signal, by applying a voice-on compression factor when detecting a voice signal in the pre-suppression signal, and by applying a voice-off compression factor when detecting no voice signal in the pre-suppression signal; and

generating an output signal from the post-suppression signal by:

applying no gain to portions of post-suppression signal having a low post-suppression signal level being below a low post-suppression level threshold; and

applying a gain factor to portions of post-suppression signal having a medium post-suppression signal level being above the low post-suppression level threshold used to determine the low post-suppression signal level.

9. The non-transitory computer storage of claim 8 , wherein the operations further comprise:

estimating the noise level in the input signal responsive to detecting no voice signal in the pre-suppression signal;

generating the voice-off compression factor, based on a signal level difference between the pre-suppression signal during a voice off period and the estimated noise level; and

applying the voice-off compression factor to the pre-suppression signal, during the voice off period.

10. The non-transitory computer storage of claim 8 , wherein the operations further comprise:

estimating the noise level in the input signal responsive to detecting no voice signal in the pre-suppression signal;

generating the voice-off compression factor, wherein the voice-off compression factor comprises difference between the pre-suppression signal during a voice off period and the estimated noise level, plus a difference between the estimated noise level and an expected noise floor; and

applying the voice-off compression factor to the pre-suppression signal, during voice off period.

11. The non-transitory computer storage of claim 8 , wherein the voice-on compression factor is an amount of a predetermined buffer above an expected noise floor.

12. The non-transitory computer storage of claim 8 , wherein the first search window corresponds to a silent period characterized by no detected voice signal in the input signal and the operations further comprise:

generating the voice-off compression factor, based on signal level difference between the pre-suppression signal during the silent period and the estimated noise level; and

applying the voice-off compression factor to the pre-suppression signal, during the silent period.

13. The non-transitory computer storage of claim 12 , wherein a second search window corresponds to a voice period characterized by a detected voice signal in the input signal and the operations further comprise:

establishing the second search window comprising one or more frequency domain frames;

determining a local minimum frequency in each frequency domain frame in the second search window;

determining a global minimum frequency in the second search window from the local minimum frequencies in the second search window; and

updating the estimated noise level in the input signal to a signal level corresponding to the global minimum frequency in the second search window, when the global minimum frequency in the second search window is less than the global minimum frequency in the first search window.

14. The non-transitory computer storage of claim 8 , wherein the operations further comprise:

generating the output signal by applying a compression factor to portions of the post-suppression signal having a high post-suppression signal level being above a high post-suppression level threshold.

15. The non-transitory computer storage of claim 8 , wherein the operations further comprise:

receiving a pre-input signal; and

generating the input signal by canceling an echo signal in the pre-input signal.

16. A system comprising:

an input stage configured to receive an input signal, determine a signal level of the input signal and generate a pre-suppression signal, by amplifying the input signal in portions having a low input signal level and compressing the input signal in portions having a high input signal level, the low input signal level being below an input signal low-level threshold and the high input signal level being above an input signal high-level threshold;

a noise estimation module configured to estimate a noise level in the input signal by determining a global minimum frequency from among one or more local minimum frequencies corresponding to one or more frequency domain frames of a first search window, each of which is converted from the time domain to the frequency domain, and determining an estimated noise level in the input signal based on a signal level corresponding to the determined global minimum frequency in the first search window;

a suppression module configured to generate a post-suppression signal, by applying a voice-on compression factor when detecting a voice signal in the pre-suppression signal, and by applying a voice-off compression factor when detecting no voice signal in the pre-suppression signal; and

an output stage configured to generate an output signal from the post-suppression signal by:

applying no gain to portions of post-suppression signal having a low post-suppression signal level being below a low post-suppression level threshold; and

applying a gain factor to portions of post-suppression signal having a medium post-suppression signal level being above the low post-suppression level threshold used to determine the low post-suppression signal level.

17. The system of claim 16 further comprising a voice activity detection module configured to detect the voice signal in the pre-suppression signal.

18. The system of claim 16 further comprising:

a voice activity detection module, configured to detect the voice signal in the pre-suppression signal, wherein

the noise estimation module is further configured to estimate the noise level in the input signal responsive to the voice activity detection module detecting no voice signal in the pre-suppression signal; and

the suppression module is further configured to:

generate the voice-off compression factor, based on a signal level difference between the pre-suppression signal during a voice off period and the estimated noise level; and

apply the voice-off compression factor to the pre-suppression signal, during the voice off period.

19. The system of claim 16 , wherein the first search window corresponds to a silent period characterized by no detected voice signal in the input signal by a voice activity detection module

and the suppression module is further configured to:

generate the voice-off compression factor, based on signal level difference between the pre-suppression signal during the silent period and the estimated noise level; and

apply the voice-off compression factor to the pre-suppression signal, during the silent period.

20. The system of claim 19 , wherein:

a second search window corresponds to a voice period characterized by a detected voice signal in the input signal by the voice activity detection module; and

the suppression module is further configured to:

establish the second search window comprising one or more frequency domain frames;

determine a local minimum frequency in each frequency domain frame in the second search window;

determine a global minimum frequency in the second search window from the local minimum frequencies in the second search window; and

update the estimated noise level in the input signal to a signal level corresponding to the global minimum frequency in the second search window, when the global minimum frequency in the second search window is less than the global minimum frequency in the first search window.

Assignments (2)
CHANGE OF NAME Recorded Oct 28, 2025
From: ZOOM VIDEO COMMUNICATIONS, INC.
To: ZOOM COMMUNICATIONS, INC.
Reel/Frame 073376/0438 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 27, 2021
From: RAO, YU
To: ZOOM VIDEO COMMUNICATIONS, INC.
Reel/Frame 057938/0711 →
Continuity (2)
Provisional Application 63229070 · Aug 3, 2021
Related Publication 20230041098A1 · Feb 9, 2023