| --- |
| license: cc-by-nc-4.0 |
| language: |
| - en |
| tags: |
| - audio |
| - audio-to-audio |
| - speech |
| - declipping |
| - audio-restoration |
| - flow-matching |
| pipeline_tag: audio-to-audio |
| library_name: pytorch |
| --- |
| |
| # audio-restore |
|
|
| Repairs speech recordings damaged by clippings. A |
| generative model reconstructs the samples that were destroyed. |
|
|
| ## Usage |
|
|
| ```bash |
| 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 |
|
|