audio-restore
Repairs speech recordings damaged by clippings. A generative model reconstructs the samples that were destroyed.
Usage
git clone https://github.com/tdstt22/audio-restore
cd audio-restore && uv sync
python restore.py recording.wav restored.wav
Components
| File | Description |
|---|---|
model.pt |
2D U-Net, 48.9M params โ flow-matching velocity predictor over complex STFT. EMA weights plus architecture config |
The model works on spectrograms at 24 kHz mono. It is given the damaged audio and a mask marking which samples the clipping destroyed, so it never has to guess where the damage is. Rather than emitting audio directly, it predicts the direction from noise toward clean speech, and sampling follows that direction over to arrive at the reconstruction.
Limitations
- 24 kHz โ higher-rate files are converted in and out, so repaired regions carry nothing above 12 kHz. Audible as dullness on sibilants.
- Speech only โ music and general audio are out of distribution.
- Hard clipping only โ only focused on hard clippings that require regeneration
- Degradations above ~30% clipped โ did not optimize for these situations during training