Documentation Index

Fetch the complete documentation index at: https://docs.knovvu.com/llms.txt

Use this file to discover all available pages before exploring further.

Noise Gate

Prev Next

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:

  1. the VAD engine's own window trigger is exceeded, and
  2. 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:

  1. The VAD splits the audio into small frames.
  2. For each frame, the RMS level is calculated (with DC offset removed).
  3. 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.
  4. If this average level is at or above the threshold, the gate agrees the window is loud enough.
  5. 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.

Items.gif

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.