Overview
NoiseGate is a level-based guard that prevents weak, low-energy audio from being treated as the beginning of speech. Its purpose is to keep low-level background noise from triggering a speech start.
In ElasticVAD, NoiseGate does not gate or mute individual frames, and it never changes the VAD engine's scores: the engine always scores every frame so that stateful/recurrent engines never lose continuity across quiet stretches. Instead, the gate acts only on the speech-start decision. A speech start is accepted only when both conditions hold:
- the VAD engine's own window trigger is exceeded, and
- the noise gate agrees that the audio over the speech-start window is loud enough.
This way, steady background noise that the engine might otherwise score as speech cannot open a segment on its own. The gate makes speech onset more robust in noisy environments and helps prevent noise-triggered barge-in.
Best Practise:
A noise gate threshold is not a fixed universal value. The correct value should be determined based on the microphone gain and ambient noise level of the specific setup. First, a section containing only background noise should be measured. Then, the threshold should be set above this noise level and below the level of actual speech.
Use Cases
NoiseGate is useful in the following cases:
- reducing false speech starts caused by background noise
- preventing low-level sounds from opening a speech segment
- making speech onset more stable in noisy environments
How NoiseGate Works
NoiseGate is evaluated over the same short window the engine uses to decide a speech start (the speech-start window, approximately 500 ms), rather than gating individual frames.
Basic flow:
- The VAD splits the audio into small frames.
- For each frame, the RMS level is calculated (with DC offset removed).
- When a speech start is being considered, the gate averages the frame energies (RMS squared) over the speech-start window in the linear power domain, then converts that average to dBFS.
- If this average level is at or above the threshold, the gate agrees the window is loud enough.
- A speech start is accepted only if the engine's trigger is also exceeded at the same time (logical AND).
Because the mean is taken over energies (a true power average), a single loud transient raises the average in proportion to its energy, while a single quiet dropout cannot force the window closed. The gate only influences starts; once speech has started, ending it is left entirely to the engine.
Note: When NoiseGate is disabled, the gate always agrees and has no effect — the speech-start decision is made by the engine alone.

Parameters
Enabled
Enables or disables NoiseGate.
| Value | Description |
|---|---|
true |
NoiseGate is enabled. |
false |
NoiseGate is disabled. |
If disabled, all frames are passed through.
GateThresholdDbfs
Defines the audio level threshold that determines whether the gate should open.
Unit: dBFS
- More negative value: More sensitive(passes more). The quieter the recording environment is, the lower this value should be.
- Higher value: more selective (passes less). The noisier the recording environment is, the higher this value should be.
Range is clamped to
[-120, 0].
Example Values
| Value | Behavior |
|---|---|
-44 |
Default |
-50 |
Passes more audio |
-25 |
Passes less audio |
AttackMs
DEPRECATED
HoldMs
DEPRECATED
Configuration Example
To enable NoiseGate while configuring VAD parameters, use the following configuration:
VadParameters vadParams;
vadParams.NoiseGate.Enabled = true;
vadParams.NoiseGate.ThresholdDbfs = -44;
Tuning Considerations
NoiseGate parameters should be tuned according to the acoustic characteristics of the target environment.
A configuration that effectively suppresses background noise may also suppress low-energy speech. For this reason, NoiseGate should be evaluated together with VAD segmentation behavior and downstream speech recognition performance.
Impact on Speech Recognition
NoiseGate filters audio based on signal level before the VAD result is produced. If the configured threshold is too restrictive, low-energy speech may fail to pass through the gate.
This creates a trade-off:
- A more sensitive threshold allows quieter audio to pass.
- A more selective threshold filters more low-level audio.
- More aggressive filtering may suppress background noise more effectively.
- However, it may also filter valid low-energy speech and negatively affect speech recognition accuracy.
The following example shows the relationship observed between the configured NoiseGate threshold and Word Error Rate (WER) during validation.
| NoiseGate Configuration | WER (%) |
|---|---|
| Baseline | 5.74 |
| NoiseGate disabled | 5.94 |
GateThresholdDbfs = -40 |
7.61 |
GateThresholdDbfs = -38 |
9.18 |
GateThresholdDbfs = -36 |
12.20 |
GateThresholdDbfs = -34 |
16.58 |
GateThresholdDbfs = -32 |
23.15 |
GateThresholdDbfs = -30 |
32.12 |
GateThresholdDbfs = -28 |
43.17 |
Important
These results are specific to the evaluated audio data and configuration. They should not be interpreted as universal performance values.
The results demonstrate that making the NoiseGate threshold more selective can increase speech recognition errors when valid low-energy speech is also filtered out.
Why Can This Happen?
NoiseGate evaluates audio based on signal energy.
In some audio environments, unwanted background speech and valid low-energy speech may exist at similar signal levels. In this situation, increasing the NoiseGate threshold may suppress the unwanted background audio, but it may also remove parts of valid speech.
The NoiseGate threshold should therefore be selected carefully based on the audio characteristics of the actual deployment environment.
Interaction with Segmentation Parameters
NoiseGate can also affect silence-based audio segmentation.
When NoiseGate is enabled, low-energy parts of speech may receive the minimum VAD score. This can cause speech to be segmented differently than when NoiseGate is disabled.
The following validation results show the effect of different segmentation buffer values with NoiseGate enabled and disabled.
| Segmentation Configuration | WER — NoiseGate Enabled (%) | WER — NoiseGate Disabled (%) |
|---|---|---|
| Baseline | 5.74 | 5.74 |
Segmented — 200 ms |
26.38 | 6.05 |
Segmented — 300 ms |
23.15 | 5.94 |
Segmented — 400 ms |
21.48 | 5.74 |
Segmented — 500 ms |
19.60 | 5.74 |
Segmented — 600 ms |
18.46 | 5.74 |
Segmented — 700 ms |
17.21 | 5.74 |
Segmented — 800 ms |
16.37 | 5.74 |
The results show that increasing the amount of audio preserved around speech segments can reduce the negative impact observed when NoiseGate is enabled.
However, increasing buffer durations does not fully compensate for valid speech that has already been filtered by the NoiseGate.
Note
The exact results depend on the evaluated audio data, VAD sensitivity, NoiseGate threshold, and segmentation configuration.
Silence Trigger Considerations
SilenceTriggerMsec, PreSpeechBufferMsec, and PostSpeechBufferMsec should be evaluated together with NoiseGate.
In another validation scenario, PreSpeechBufferMsec and PostSpeechBufferMsec were fixed at 400 ms while SilenceTriggerMsec was varied.
SilenceTriggerMsec |
WER (%) |
|---|---|
| Baseline | 5.74 |
400 ms |
21.48 |
500 ms |
20.02 |
600 ms |
19.08 |
700 ms |
18.77 |
800 ms |
18.67 |
For lower silence-trigger values, the evaluated configuration was not valid because:
Post-speech buffer (400 ms) cannot be longer than the silence trigger.
Summary
NoiseGate is a simple but effective guard that keeps low-level noise from opening a speech segment.
In short:
Enabled= is the gate active?ThresholdDbfs= how strong (in dBFS) must the windowed average energy be for the gate to allow a speech start?
The gate never mutes frames or alters engine scores; it only adds a loudness condition to the speech-start decision, ANDed with the engine's own trigger. With the right threshold, it provides more reliable onset detection and fewer noise-triggered false starts, especially in noisy environments.
