Logo
Search
API Docs

Background Denoising

Voice & Audio Tuning

Background Speech Denoising and Ambient Sound Settings

Overview

Sulus provides background speech denoising to filter out unwanted sounds during conversations. There are two complementary denoising technologies available: Smart Denoising (Krisp) and Fourier Denoising (experimental), configured via the backgroundSpeechDenoisingPlan property on your assistant.


Denoising Methods

Smart Denoising (Krisp) is the recommended approach for most users. It uses Krisp's AI-powered technology to remove background noise in real-time, and is effective against:

  • Keyboard typing
  • Background conversations
  • Traffic and street noise
  • Air conditioning and fans
  • Pet sounds

Fourier Denoising is an experimental method that uses frequency-domain filtering for consistent background noise, with automatic media detection for TV/music/radio. It requires extensive tuning and may not work well in all environments (e.g., with headphones).


Configuration Parameters

Background denoising is set via backgroundSpeechDenoisingPlan on your assistant.

Smart Denoising parameters:

ParameterTypeDefaultDescription
smartDenoisingPlan.enabledbooleanfalseEnable/disable Krisp-powered smart denoising

Fourier Denoising parameters:

ParameterTypeDefaultDescription
fourierDenoisingPlan.enabledbooleanfalseEnable/disable experimental Fourier denoising
fourierDenoisingPlan.mediaDetectionEnabledbooleantrueAuto-detect and filter TV/music/radio
fourierDenoisingPlan.staticThresholdnumber-35Fallback threshold in dB when no baseline is established (-80 to 0)
fourierDenoisingPlan.baselineOffsetDbnumber-15How far below the rolling baseline to filter audio in dB (-30 to -5). Lower = more aggressive.
fourierDenoisingPlan.windowSizeMsnumber3000Rolling window size in ms for baseline calculation (1000–30000). Larger = more stable.
fourierDenoisingPlan.baselinePercentilenumber85Percentile for baseline calculation (1–99). Higher = focus on louder speech.

Example Configurations

Smart Denoising only (recommended for most cases):

const assistant = await sulus.assistants.create({
  name: "Support Agent",
  backgroundSpeechDenoisingPlan: {
    smartDenoisingPlan: {
      enabled: true
    }
  }
});

Noisy call center (aggressive filtering):

const assistant = await sulus.assistants.create({
  name: "Call Center Agent",
  backgroundSpeechDenoisingPlan: {
    smartDenoisingPlan: { enabled: true },
    fourierDenoisingPlan: {
      enabled: true,
      mediaDetectionEnabled: true,
      baselineOffsetDb: -10,  // Aggressive filtering
      windowSizeMs: 2000,     // Fast adaptation
      baselinePercentile: 90  // Focus on clear speech
    }
  }
});

Home environment with TV/music:

const assistant = await sulus.assistants.create({
  name: "Home Assistant",
  backgroundSpeechDenoisingPlan: {
    smartDenoisingPlan: { enabled: true },
    fourierDenoisingPlan: {
      enabled: true,
      mediaDetectionEnabled: true, // Essential for TV/music
      baselineOffsetDb: -15,
      windowSizeMs: 4000,
      baselinePercentile: 80
    }
  }
});

Processing Order

When both methods are enabled, they process in sequence: Smart Denoising (Krisp) runs first, then Fourier Denoising processes the Krisp output. Fourier Denoising should never be used alone — it is designed to complement Smart Denoising.

Additionally, you can configure the general backgroundSound setting for ambient noise handling. The default for phone calls is office and for web calls is off.

"backgroundSound": "off"

In summary, for most use cases simply enabling Smart Denoising is sufficient. Only add Fourier Denoising if you have specific high-noise environments or media backgrounds that require additional fine-tuned filtering.