Curated summary
How we built a real-time, client-side noise suppression library without server dependencies
Datadog’s CoScreen team needed high-quality noise suppression that could run in real time on client devices and integrate with WebRTC. Since existing solutions were either too slow, server-dependent, expensive, or difficult to embed, they built and open-sourced dtln-rs, a portable Rust library based on the DTLN model. It processes one second of audio in about 33 ms on an M1 MacBook Pro and supports WebAssembly, Node.js, and native clients.
Introducing dtln-rs
- dtln-rs is a lightweight, open-source noise reduction library based on the Dual-Signal Transformation LSTM Network (DTLN).
- It can produce:
- A WebAssembly module
- A native Rust library
- A Node.js native module
- The library is designed to integrate with WebRTC-based applications.
- Datadog also released a demo showing how to embed the filter in an application or webpage.
Demonstrating Real-World Noise Suppression
- The project was motivated by common remote-work disruptions, including lawn mowers and other background noise.
- In one test, the filter removed a neighbor’s lawn mower so effectively that a colleague could not tell it was running.
- The team used this result as evidence that the embedded library could provide meaningful value to CoScreen users.
How DTLN Enables Real-Time Processing
- AI noise suppression learns to distinguish desired speech from unwanted background sounds.
- DTLN uses a short-time Fourier transform (STFT) to divide audio into smaller segments and analyze the magnitude of different frequencies.
- It also uses phase information, which describes the starting position of each frequency in the sound wave.
- A model analyzes magnitude and phase data to determine which parts are speech and which are noise.
- Its LSTM-based architecture can adapt to different environments, such as:
- Air-conditioner hum
- Cafe conversations
- Paper rustling
- The combination of deep learning and efficient signal processing allows DTLN to operate with near-instantaneous latency.
Why Existing Noise Suppression Solutions Were Insufficient
- Many advanced machine-learning models require powerful backend servers, with processed audio sent back over the network.
- This approach adds latency, infrastructure complexity, and operating costs.
- WebRTC remains widely adopted but generally relies on older, built-in noise reduction techniques.
- Earlier solutions such as RNNoise can reduce noise but often do not match the quality of newer commercial systems.
- Although Web Audio and WebAssembly make custom client-side processing possible, implementation still requires substantial engineering effort.
- Large companies can deploy specialized servers and models trained on enormous speech datasets, but smaller teams may not have the resources to do so.
- CoScreen’s search for an alternative led to DTLN, which could run in real time on standard hardware and be embedded directly into client applications.
Practical Recommendation
For WebRTC applications needing client-side, real-time noise suppression, dtln-rs offers a portable alternative to expensive server-based services. Its Rust foundation and support for WebAssembly, Node.js, and native targets make it suitable for web, desktop, and embedded clients.
Related reading
Continue with another curated summary.
Making Rust Workers reliable: panic and abort recovery in wasm‑bindgen
Read originalEvolving our real-time timeseries storage again: Built in Rust for performance at scale
Read originalSqueezing every millisecond: How we rebuilt the Datadog Lambda Extension in Rust
Read originalHow we migrated our static analyzer from Java to Rust
Read original