Differentiable Acoustics · working paper

Differentiable feedback delay networks · dereverberation

Inverting the Room

How much reverberation can you actually pull back out of a recording? A study of what a known room filter can perfectly undo — and the two walls that stop blind removal cold.

Press play — the same seven seconds of speech, before and after removing the room
ReverberantSTOI 0.41
Reverb removedSTOI 0.91

Short-Time Objective Intelligibility (STOI) runs 0 to 1; higher is more intelligible. The catch — and the subject of this paper — is that the clean version on the right used the true room filter. Recovering that filter blindly is where it gets hard.

The short version

Reverberation is a convolution of dry sound with a room's impulse response; removing it is deconvolution. A feedback delay network (FDN) is a compact, invertible model of reverb. Given the true filter, inverting it restores destroyed speech — intelligibility 0.41 → 0.91 — in real time at a fraction of a neural model's cost (~1,200× faster than real time on one CPU thread). But recovering that filter by fitting hits two walls: a low-order FDN cannot represent a dense room's spectrum (capacity), and its delay lengths cannot be identified reliably by gradient descent (identifiability). We map both — and the point where reverberation destroys information outright and no inverse can help.


The problem

Reverb is convolution. Removing it is deconvolution.

When you speak in a room, the microphone hears your voice plus thousands of delayed, decaying reflections off the walls. Mathematically, the recording is your dry voice convolved with the room's room impulse response (RIR) — the sound of the room answering a single click.

Undoing that is deconvolution, and it is famously ill-posed. A measured RIR is long (tens of thousands of samples) and non-minimum-phase, so it has no clean, stable inverse — invert it naïvely and you amplify noise and smear transients into pre-echo. The usual escape is to reach for a large neural network. This paper takes the opposite bet: a model small enough to invert exactly and run anywhere.

The model

A feedback delay network is a reverb you can invert

The feedback delay network (FDN) — Jot & Chaigne, 1991 — is the classic structure behind most digital reverbs (and the reverbs in Csound). A handful of delay lines are mixed through a feedback matrix and fed back on themselves; a few dozen parameters generate the dense, decaying tail of a whole room.

x[n] z⁻ᵐ¹ z⁻ᵐ² z⁻ᵐ³ z⁻ᵐᴺ A feedback feedback loop — the tail lives here y[n]
The FDN. The N delay lengths mᵢ and the feedback matrix A are the whole model — a few dozen numbers standing in for a room. Making the delay lengths learnable (Mezza et al., 2024) lets you fit an FDN to a target room by gradient descent. We call that direction the reverb extractor.

Because the FDN is a small rational system — poles and zeros, not a fifty-thousand-sample blob — it has something a measured RIR does not: a compact, stable inverse. That is the entire idea. Fit an FDN to a room to extract its reverb; invert the FDN to remove it.

Energy-decay and echo-density curves of a learned FDN tracking a target room impulse response.
The extractor at work: an 8-delay FDN fit to a target RIR on an RTX 3090 — loss down 99.8%, its energy-decay and echo-density curves tracking the target. This is the FDN as a generator: it reproduces the room's reverb perceptually.

The result

With the true filter, the room comes off

To remove reverb we invert the FDN's transfer function H with a regularized (Wiener-style) filter — dry ≈ reverberant · conj(H) / (|H|² + ε) — turning a slightly-unstable division into a stable one.

The clean test: take dry speech, convolve it with a known room, then invert using that same room's filter. This is the oracle — perfect knowledge of the reverb, the ceiling of what removal can achieve. It is dramatic. Heavily reverberant speech that scores 0.41 on intelligibility comes back to 0.91 — pauses reopen, consonants sharpen, the spectrogram is nearly identical to the original.

Dry — the originalreference
Reverberant — a boomy room (T60 ≈ 1.2 s)STOI 0.41
Removed — oracle inverseSTOI 0.91
Spectrograms of clean, reverberant, and dereverberated speech, with waveform comparisons.
Clean vs reverberant vs removed. Reverb smears energy horizontally across the spectrogram, filling the gaps between phonemes; the oracle inverse reopens them.

So removal is not the hard part. Getting the filter is. Everything below is about whether you can recover H when the room doesn't hand it to you.

The obstacle

Two walls between "fitted" and "true"

If you don't have the room's filter, the obvious move is to fit one — optimize an FDN so its output matches the reverberant signal, then invert what you fit. We tried, hard: a phase-aware complex-spectrum objective (the naïve energy-decay and echo-density losses turned out to be phase-blind, and inverting a phase-wrong filter makes things worse), warm starts, an explicit phase term, multi-start over delay initializations, and added capacity. The fit improved. It did not approach the oracle. Two independent walls explain why.

Wall 1 · capacity

A small FDN can't represent a big room

A dense room tail is ~23,000 samples of rich, near-random structure. A low-order FDN's spectrum simply cannot match it — the fitting error |H−R|² asymptotes far from zero no matter the optimizer. More delay lines help, then plateau.

Wall 2 · identifiability

The delays won't be found

Even when the room is genuinely a 6-delay FDN — exact model, no capacity excuse — gradient descent on the delay lengths lands in local minima. The delay-length landscape is brutally non-convex; the exact-model case recovered only ~29% of the gap.

Heavily reverberant speech, intelligibility (STOI ↑) and a matched-model error (↓). System identification moves the fit — but the oracle stays out of reach.
MethodSpeech STOIModel error
Reverberant (no processing)0.4140.360
Energy-only fit (phase-blind)0.4250.492 ✗ worse
Phase-aware + system-ID (best)0.4980.257
Oracle — true filter0.9140.001
Best fitted inverseSTOI 0.50
Oracle inverse — for comparisonSTOI 0.91
System-identification ablation: waveforms, spectrograms, and bar chart of methods vs oracle.
System-identification ablation. Capacity and multi-start did the work; warm-starting alone hurt. Every lever helped a little; none crossed the gap. The blocker is identification, not the inverse.

The limit

The irreversible reverb

There is a floor below which no method — not even the oracle — can go, because the reverb has destroyed the information rather than merely hidden it.

Alvin Lucier's 1969 piece I Am Sitting in a Room is the canonical demonstration: a voice recorded and replayed into a room, over and over, until the words dissolve into pure resonance. We reproduced it — convolving speech through the room three times. Each pass multiplies the spectrum, so frequency bins the room attenuates get driven toward zero (|H|³). Information at those frequencies is gone. Even with the exact filter, the oracle only claws intelligibility from 0.14 back to 0.52 — partially readable, never clean.

Lucier-style, three passes — near-unintelligibleSTOI 0.14
Oracle inverse — the best possibleSTOI 0.52

The gap between 0.52 and 1.0 here isn't a modeling failure — it's a law. You cannot recover what was annihilated. Any method that tackles this recording at all is working against physics.

The upside

Whatever it does, it does cheaply

The reason to care about an FDN inverse over a neural dereverberator is not peak quality — a large model will win there. It is cost, latency, and determinism. The inverse is a tiny recursive filter: it runs in real time on a laptop, a phone, a Raspberry Pi, and it invents nothing — no hallucinated detail.

1,153
parameters in the reverb model — versus ~23,000 taps for the raw room response
21×
fewer multiply-accumulates per sample than direct convolution
1,226×
faster than real time on a single CPU thread (33,912× on GPU)

So the honest home for this method is the informed regime: measure a room once — play a sweep, capture its response — then dereverberate live, forever, for almost no compute. Fixed spaces are full of this shape: a studio, a lecture hall, a conference room, a car cabin.

Where it stands

What this is, and what it isn't

✓ Works

Measured-filter dereverb

Given the room's response, inversion restores destroyed speech (0.41 → 0.91) in real time at a fraction of a neural model's cost. A deployable capability for fixed spaces.

✗ Dead end

Blind dereverb by FDN-fitting

Recovering a usable filter by fitting a low-order FDN to a dense real room fails on both capacity and identifiability. The honest conclusion: this is not the road to blind removal.

That negative result is the useful one — it saves the next person the walk down a plausible-looking path, and it sharpens where the effort should go: not into fitting FDNs blindly, but into the estimation problem itself, and into methods that don't need to identify a filter at all.

What's next

From removing to separating

The measured-filter result is worth packaging as a real-time tool. But the more interesting thread runs the other way: instead of modelling the room to subtract it, separate the source you want from everything else. Source separation already pulls a clean signal out of a noisy field — even out of a hydrophone recording, where it can lift a whale call clear of the water and its reflections without ever modelling the reverb. Push that toward telling apart who or what is speaking — speaker and instrument diarization — and dereverb becomes a front-end to something bigger: cleaner separation, better diarization, and, with a transcriber on the end, usable transcripts of real, messy rooms. That is the next paper.


Methods & references

Differentiable FDN in PyTorch (frequency-sampled transfer function; learnable fractional delays). Objectives: energy-decay curve and echo-density profile for perceptual fitting; complex-spectrum loss for phase-aware system identification. Inverse: regularized frequency-domain (Wiener) filter. Intelligibility scored with STOI against the dry reference. All fits and inversions run on an NVIDIA RTX 3090.

  1. Jot, J.-M., & Chaigne, A. (1991). Digital delay networks for designing artificial reverberators. 90th AES Convention.
  2. Mezza, A. I., Giampiccolo, R., De Sena, E., & Bernardini, A. (2024). Data-driven room acoustic modeling via differentiable feedback delay networks with learnable delay lines. EURASIP J. Audio, Speech, and Music Processing. arXiv:2404.00082.
  3. Lucier, A. (1969). I Am Sitting in a Room.
  4. Nakatani, T., et al. (2010). Speech dereverberation based on variance-normalized delayed linear prediction (WPE). IEEE TASLP.
  5. Taal, C. H., et al. (2011). An algorithm for intelligibility prediction of time–frequency weighted noisy speech (STOI). IEEE TASLP.