# DeepFilterNet 3 for johnmcm.com The WebAssembly speech-enhancement engine behind johnmcm.com's Remove Background Noise page (/remove-background-noise). It is [DeepFilterNet](https://github.com/Rikorose/DeepFilterNet) by Hendrik Schröter, whose code is dual-licensed MIT OR Apache-2.0 (both licence files are served beside the build). The pretrained DeepFilterNet3 model ships in the same repository and is compiled into the author's own MIT/Apache-labelled library by default; no separate licence for the weights is stated. It was trained on the DNS Challenge 4 data (CC BY 4.0 and other open licences). What is built, from commit `d375b2d8309e0935d165700c91da9de862a99c31`: - `libDF`, the Rust runtime (STFT, ERB features, the tract ONNX engine and deep filtering), with wasm-pack for ES-module workers, WebAssembly SIMD on, and binaryen's `wasm-opt -O3`. - `src/wasm.rs` replaces `libDF/src/wasm.rs`: the model is passed in rather than compiled in; the thresholds are those of the upstream `deep-filter` command line tool (-15/35/35 dB), which keep speech at its level (the runtime defaults leave it about 5 dB quieter); a whole chunk is processed per call; and the delay (STFT plus look-ahead) is reported so the page can line the output up with the input. - `src/worker.mjs`: the worker the page talks to. It loads the wasm and the model once, cleans each piece it is sent, and trims the delay. `build.ps1` runs the Docker build (Rust image pinned by digest, crates by the repository's Cargo.lock) and copies the result to `frontend/vendor/local/deepfilter@1/`, with the model renamed `deepfilternet3.bin`. A shipped `@N` folder must not change: bump it, and the path in `src/app/remove-background-noise/noise.ts`, before rebuilding.