Package Exports
- deepfilternet3-noise-filter
- deepfilternet3-noise-filter/embedded-workers
- deepfilternet3-noise-filter/setup
Readme
DeepFilterNet3 Noise Filter for LiveKit
AI-powered noise suppression for real-time audio processing with LiveKit.
Installation & Usage (Zero Setup!)
npm install deepfilternet3-noise-filterimport { DeepFilterNoiseFilterProcessor } from 'deepfilternet3-noise-filter';
// That's it! No manual setup needed - uses CDN automatically
const filter = new DeepFilterNoiseFilterProcessor({
name: 'deepfilternet3-noise-filter'
});
await filter.initialize();
// Use with LiveKit
audioTrack.setProcessor(filter);No configuration needed - WebAssembly files are automatically loaded from CDN!
Browser requirements
SharedArrayBuffer requires:
Cross-Origin-Opener-Policy: same-originCross-Origin-Embedder-Policy: require-corp
Our dev server sets these for test/sample.html.
Also exported (advanced)
DeepFilterNet3Processor: low-level control over Worker + AudioWorklet graph.
import { DeepFilterNet3Processor } from 'livekit-deepfilternet3-noise-filter';
const df3 = new DeepFilterNet3Processor({ sampleRate: 48000, frameSize: 480, enableNoiseReduction: true });
await df3.initialize();
const ac = new AudioContext({ sampleRate: 48000 });
const node = await df3.createAudioWorkletNode(ac);
df3.setNoiseSuppressionEnabled(true);
df3.setSuppressionLevel(60);
df3.destroy();Build
yarn
yarn buildOutputs:
dist/index.esm.js,dist/index.jsdist/worker/worker.js(Dedicated Worker)dist/worker/audio-processor.js(AudioWorklet)dist/pkg/*(WASM glue + df_bg.wasm)dist/deepfilternet3/DeepFilterNet3_onnx.tar.gz(model)
Model source
The included model archive DeepFilterNet3_onnx.tar.gz is downloaded from the DeepFilterNet project:
Please refer to the upstream repository for licensing and updates.
Building assets from source (contributors)
To regenerate the WASM package and copy resources from the upstream project:
git clone https://github.com/Rikorose/DeepFilterNet/
cd DeepFilterNet
bash scripts/build_wasm_package.sh
# Copy WASM glue into this repo's pkg/
cp -r libdf/pkg ../livekit-deepfilternet3-noise-filter/pkg
# Copy DF3 model archive into this repo's deepfilternet3/
cp models/DeepFilterNet3_onnx.tar.gz ../livekit-deepfilternet3-noise-filter/deepfilternet3/
cd ../livekit-deepfilternet3-noise-filterNotes:
- Ensure the destination paths match this repo's layout (
pkg/anddeepfilternet3/). - After copying, run
yarn build.
Local React example
A minimal Vite + React app is included under examples/react-app to verify the built package works in a browser with SharedArrayBuffer.
- Build the library so
dist/exists:
yarn build- Install example deps (links local package automatically via
file:../..):
yarn --cwd examples/react-app- Run the example dev server (sets COOP/COEP headers):
yarn example:devThen open http://localhost:5173, grant mic permission, and you should hear processed audio. Use the Enable checkbox and Level slider to adjust suppression.
Optional:
yarn example:build
yarn example:preview