AI noise cancellation SDK for real-time apps
Remove background noise and room echo in real time, entirely on device, for privacy and speed. One SDK for web, iOS, Android, Windows, macOS and Linux.
No credit card required · Integration help from our engineers
- Latency
- Real-time
- Optimized for WebRTC, live streaming and voice agents
- Platforms
- 7
- Web, iOS, Android, Windows, macOS, Linux, Flutter
- Sample rates
- 16–48 kHz
- Native 16, 32, 44.1 and 48 kHz
- Processing
- On device
- Audio never leaves the user's device
Removes what your users should not hear
Intelligent noise removal for everyday sounds, plus dereverberation that takes out the hollow “empty room” effect and restores a natural, warm voice.
- Keyboard clicks
- Computer fans
- Background hum
- Street noise
- Sirens
- Barking dogs
- Crying babies
- Room echo
Built for real-time voice
Calls and meetings
AI voice agents
Recording and transcription
Pick the right model for your hardware
Three presets trade CPU cost for quality, and you can switch presets at runtime.
| Preset | Sample rates | When to use |
|---|---|---|
speed |
16 kHz | Recommended. Good quality at a fraction of the CPU cost; the most headroom on phones and busy machines. |
balanced |
32, 44.1, 48 kHz | Higher quality, noticeably heavier. Denoise power is adjustable at runtime. |
quality |
16 kHz | Highest quality and heaviest; uses the ONNX runtime. |
Minimal API, any platform
Create the SDK with your Customer ID, pass the microphone stream or PCM frames, and enable noise suppression.
Works with
- WebRTC
- LiveKit
More capabilities in the same SDK — Studio Sound, Voice Changer and file cleanup: Audio Effects SDK.
import { atsvb } from 'audio-effects-sdk';
const sdk = new atsvb('YOUR_CUSTOMER_ID');
sdk.preload();
sdk.onReady = () => {
sdk.useStream(micStream);
sdk.run();
audio.srcObject = sdk.getStream();
};
val audioSdkFactory = AudioEffectsSDK.getAudioSdkFactory(context)
audioSdkFactory.auth(yourCustomerId) { licenseStatus ->
if (licenseStatus == LicenseStatus.ACTIVE) {
val pipeline = audioSdkFactory.createAudioPipeline(PipelineConfig())
pipeline.enableNoiseSuppression(true)
val result = pipeline.process(yourAudioData)
}
}
import AudioEffectsSDK
let sdkFactory = Factory()
let authResult = try await sdkFactory.auth(customerID: "CUSTOMER_ID")
guard authResult.status == .active else { return }
let config = PipelineConfig(type: .pcmSignedInt16, sampleRate: 48000)
let pipeline = try sdkFactory.newPipeline(config)
pipeline.noiseSuppressionEnabled = true
Platforms and packages
| Platform | Requirements | Install | Links |
|---|---|---|---|
| Web | Current Chrome, Safari, Firefox, Edge; WebAssembly | npm i audio-effects-sdk |
|
| iOS | iOS 14+ | Swift Package |
|
| Android | Android 8.1 (API 27)+ | ai.effectssdk:audio (Maven) |
|
| Windows | Windows 10+, x64 and x86 | C++ SDK |
|
| macOS | macOS 11.0+ | C++ SDK |
|
| Linux | x86_64, glibc 2.35+ (Ubuntu 22.04+) | C++ SDK |
|
| Flutter | Flutter Web with flutter_webrtc | Flutter plugin |
Try the demos
Each demo runs the production SDK in your browser.
Questions
Pricing details are on the pricing page.
Does audio leave the user's device?
No. All processing runs on the end-user device. The SDK only registers its activation (a session) for billing; we do not collect audio or user data.
Which preset should I use?
Start with speed: good quality at a fraction of the CPU cost, with the most headroom on phones and busy machines. Use balanced when you need 32–48 kHz audio or adjustable denoise power, and quality when CPU budget allows.
Which sample rates are supported?
The SDK supports 16, 32, 44.1 and 48 kHz. The balanced preset works at 32, 44.1 and 48 kHz; speed and quality run at 16 kHz.
Does it work with WebRTC and LiveKit?
Yes. On the web the SDK takes a microphone MediaStream and returns a processed one, so it fits any WebRTC pipeline, including LiveKit.
Can it clean up recorded files?
Yes. Audio files (MP3, WAV, M4A and more) and the audio track of video files (MP4, MOV, AVI and more) can be processed locally, without server uploads.
How is it priced?
Like the Video SDK: a free trial in the Developer Portal, then pay as you go from $50 based on sessions. One session is one SDK initialization, however long it lasts.
Still have questions?
Tell us about your product and platforms. Our team will get back to you and can help with the integration.
Ready to build? Open the Developer Portal and start a free trial.