Skip to main content
In this tutorial, you’ll learn how to enable noise suppression for the Voice API and TeXML calls. Noise suppression works for both AI-powered calls (like AI Assistants and Gather Using AI) and regular voice calls. While it improves audio quality across all call types by reducing background noise, the biggest value comes from enhanced AI performance—cleaner audio leads to more accurate speech recognition and better AI responses. This makes noise suppression especially valuable for AI use cases where audio quality directly impacts user experience.

Voice API

The noise suppression can be enabled for the Voice API calls in the following way:
Don’t forget to update YOUR_API_KEY here.
The only parameter required for the request is direction which can have one of the following options: inbound | outbound | both. Please be aware that the charge is applied for each direction separately.
    curl --request POST \
    --url https://api.telnyx.com/v2/calls/${call_control_id}/actions/suppression_start \
    --header 'Accept: application/json' \
    --header 'Authorization: Bearer ***' \
    --header 'Content-Type: application/json' \
    --data '{
        "direction": "inbound"
    }'
The noise suppression can be stopped at any time in the following way:
    curl --request POST \
    --url https://api.telnyx.com/v2/calls/${call_control_id}/actions/suppression_stop \
    --header 'Accept: application/json' \
    --header 'Authorization: Bearer ***' \
    --header 'Content-Type: application/json' \
    --data '{}'

Supported engines

Telnyx offers four noise suppression engines, each optimized for different use cases:
EngineValueDescriptionBest for
DenoiserDenoiserBuilt-in, general-purpose noise reductionDefault option for most calls
DeepFilterNetDeepFilterNetOpen-source, full-band 48 kHz processingTelephony and WebRTC
KrispKrispTelephony noise suppression with speaker isolation; supports multiple sub-models via noise_suppression_engine_config.modelTelephony with speaker isolation
AiCousticsAiCousticsSTT-optimized noise suppressionAI and speech recognition workloads

Choosing an engine

  • For standard telephony, use Denoiser (default) or Krisp for speaker isolation.
  • For WebRTC calls, use DeepFilterNet for full-band processing.
  • For AI-powered calls (AI Assistants, Gather Using AI), consider AiCoustics for the best speech recognition accuracy.
Set the engine using the noise_suppression_engine parameter:
    curl --request POST \
    --url https://api.telnyx.com/v2/calls/${call_control_id}/actions/suppression_start \
    --header 'Accept: application/json' \
    --header 'Authorization: Bearer ***' \
    --header 'Content-Type: application/json' \
    --data '{
        "direction": "inbound",
        "noise_suppression_engine": "AiCoustics"
    }'

Engine configuration

Some engines support additional tuning via noise_suppression_engine_config. Parameters are engine-specific and ignored by other engines.

Krisp models

The Krisp engine supports three sub-models optimized for different telephony scenarios. Select a model using noise_suppression_engine_config.model:
Model valueBest for
krisp-nlsv-f4t-v2.4efGeneral telephony (default-quality model)
krisp-nlsv-f4t-12k-v1.efNarrowband telephony (12 kHz)
krisp-nlsv-b1-v1.4efLightweight model for constrained environments
You can also set the suppression intensity with suppression_lev (0–100):
    curl --request POST \
    --url https://api.telnyx.com/v2/calls/${call_control_id}/actions/suppression_start \
    --header 'Accept: application/json' \
    --header 'Authorization: Bearer ***' \
    --header 'Content-Type: application/json' \
    --data '{
        "direction": "inbound",
        "noise_suppression_engine": "Krisp",
        "noise_suppression_engine_config": {
            "model": "krisp-nlsv-f4t-12k-v1.ef",
            "suppression_lev": 80
        }
    }'

DeepFilterNet configuration

The DeepFilterNet engine supports two tuning parameters:
ParameterTypeDefaultDescription
attenuation_liminteger (0–100)100Maximum attenuation applied to noise
modestandard | advancedProcessing mode

AiCoustics configuration

The AiCoustics engine exposes enhancement and gain controls:
ParameterTypeRangeDescription
enhancement_levnumber0–1Enhancement intensity
voice_gainnumber0.1–4Voice gain multiplier

TeXML

In TeXML there is a dedicated verb for enabling the noise suppression on the call.
<Response>
    <Start>
        <Suppression direction="inbound" noise_suppression_engine="Krisp"/>
    </Start>
...
    <Stop>
        <Suppression/>
    </Stop>
</Response>