DeepFilterNet3 ONNX
Verified neural-network export of the official
DeepFilterNet3 v0.5.6
checkpoint for native 48 kHz speech enhancement.
This is the neural graph only. It expects normalized spectral features and
returns an ERB mask plus complex deep-filter coefficients. A compatible STFT,
feature-normalization, filtering, and synthesis implementation is required.
Files
| File | Description |
|---|
deepfilter.onnx | FP32 ONNX graph with a dynamic frame axis |
deepfilter-auxiliary.bin | Canonical ERB matrices and Vorbis window for legacy consumers |
config.json | Model and DSP configuration |
export_manifest.json | Source checksum, artifact checksums, and ONNX parity results |
Tensor contract
| Direction | Name | Shape | Type |
|---|
| input | feat_erb | [1, 1, T, 32] | float32 |
| input | feat_spec | [1, 2, T, 96] | float32 |
| output | erb_mask | [1, 1, T, 32] | float32 |
| output | df_coefs | [1, 5, T, 96, 2] | float32 |
The feat_spec channels are real then imaginary. The coefficient axes are
batch, filter order, frame, frequency, then real/imaginary.
Required DSP contract
- sample rate: 48,000 Hz
- STFT: 960-point real FFT, 480-sample hop, Vorbis window
- spectrum: 481 bins; deep filtering: first 96 bins
- ERB bank: 32 disjoint bands with at least 2 FFT bins per band
- normalization:
tau=1.0, rounded alpha 0.99; ERB mean state linearly
initialized from -60 dB to -90 dB and complex unit state from 0.001 to 0.0001
- deep filter: order 5, lookahead 2, applied from an immutable copy of the noisy
spectrum before fusion with the ERB-masked spectrum
- batch/offline parity: append one 960-sample analysis tail and remove the
480-sample STFT delay after overlap-add synthesis
deepfilter-auxiliary.bin is little-endian float32 data containing, in order,
the [481,32] forward ERB matrix, [32,481] inverse ERB matrix, and [960]
Vorbis window. New integrations can generate these deterministic constants.
Verification
The export script checks the graph with ONNX, then compares ONNX Runtime CPU
outputs with PyTorch for several frame lengths. Exact errors and SHA-256 hashes
are recorded in export_manifest.json.
End-to-end validation used 20 VoiceBank-DEMAND clips (101.51 seconds total):
| Runtime | PESQ | STOI | SI-SDR |
|---|
| official DeepFilterNet v0.5.6 | 2.9585 | 0.96064 | 18.228 dB |
| speech-core with this graph | 2.9602 | 0.96064 | 18.225 dB |
The speech-core output matched the official reference at 54.85 dB mean SI-SDR
with 0.000140 mean waveform RMSE. These values validate the tested native DSP
integration; other implementations must follow the contract above.
Attribution and license
DeepFilterNet is by Hendrik Schröter and contributors and is dual-licensed
under Apache-2.0 or MIT. This repository publishes the converted model under
the MIT option. See the upstream project and papers for architecture and
training details.