JSPM

deepfilternet3-noise-filter

1.0.2
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 324
  • Score
    100M100P100Q72930F
  • License MIT

Custom audio processor with DeepFilterNet3 noise filtering integrated with LiveKit client

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-filter
import { 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-origin
  • Cross-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 build

Outputs:

  • dist/index.esm.js, dist/index.js
  • dist/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-filter

Notes:

  • Ensure the destination paths match this repo's layout (pkg/ and deepfilternet3/).
  • 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.

  1. Build the library so dist/ exists:
yarn build
  1. Install example deps (links local package automatically via file:../..):
yarn --cwd examples/react-app
  1. Run the example dev server (sets COOP/COEP headers):
yarn example:dev

Then 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