AudioSR installeren via GitHub: AudioSR lokaal uitvoeren

AudioSR is een opensourcemodel voor audiosuperresolutie. Het genereert ontbrekend hoogfrequent detail in spraak, muziek en geluidseffecten om audio met een samplefrequentie van 48 kHz te maken. Je kunt het installeren vanuit de officiële GitHub-repository of AudioSR online gebruiken met Neural Analog.

Voor een lokale installatie kloon je de repository, maak je met uv een Python 3.10-omgeving, installeer je een geschikte PyTorch-build en AudioSR en voer je daarna python -m audiosr uit op een korte WAV. Hieronder staat elke opdracht.

Hoe werkt AudioSR? De architectuur uitgelegd

Hoe AudioSR ontbrekende hoge frequenties reconstrueert

Invoeraudio
Mel-spectrogram van de invoer
Voorwaardelijke latente diffusie
Vervang lage mel-banden door de invoer
Neurale vocoder
Vervang lage STFT-banden door de invoer
Gereconstrueerde audio48 kHz
STFT-spectrogram van de invoer

Het mel-spectrogram van de invoer stuurt de latente diffusie om een mel-spectrogram met een bredere bandbreedte te schatten. De lage mel-banden van de invoer vervangen de gegenereerde banden vóór de vocoder; de lage STFT-banden vervangen de gegenereerde banden na de vocoder. Het model genereert aannemelijke ontbrekende details en herstelt geen exacte kopie van een verloren opname.

Aangepast op basis van het AudioSR-onderzoekspaper.

Oorspronkelijke figuur: Hoe AudioSR ontbrekende hoge frequenties reconstrueert

Oorspronkelijke figuur: AudioSR.

AudioSR zet de opname om in een mel-spectrogram, gebruikt een latent diffusiemodel om ontbrekend hoogfrequent detail te schatten en maakt er met een vocoder weer een golfvorm van. Nabewerking zet daarna de oorspronkelijke lage frequenties van de bron terug op de plek van de gegenereerde. Het resultaat is een aannemelijke reconstructie, geen exact herstel van verloren audio, en het model voegt niet alleen ruis toe.

Waar kun je AudioSR uitvoeren?

OptieBeste toepassingInstallatie en afweging
Neural Analog AudioSR Online (aanbevolen)Stereoherstel met verwerking van midden- en verschilsignaal en een instelbare afsnijfrequentieOnline uploaden, beluisteren en exporteren. Geen Python-installatie of lokale GPU nodig.
Officiële GitHub-repositoryLokale experimenten en Python-scriptsInstalleer afhankelijkheden, download gewichten en zorg voor rekenkracht.
AudioSR Colab-notebookExperimenten met de cloud-GPU's van GoogleOpen het community-notebook en volg de instructies in je browser.
Hugging Face SpaceEen snelle browserdemoCommunity-versie; beschikbaarheid en GPU-quota kunnen veranderen.
AudioSR op ReplicateUitvoering op een hostingdienst en API-integratieBetaling op basis van gebruik; geen lokale modelinstallatie.

Neural Analog verwerkt de midden- en verschilinformatie van stereo-audio apart. Je kunt ook de afsnijfrequentie instellen vanaf waar AudioSR detail opnieuw genereert. Een lagere grens verandert meer van het geluid, terwijl een hogere grens alleen de hoogste frequenties aanvult.

Gebruik AudioSR online zonder Python te installeren
Upload je audio naar Neural Analog, kies de AudioSR-herstelinstellingen en beluister het resultaat voordat je exporteert. De verwerking gebeurt online, dus je hebt geen lokale GPU of Colab-notebook nodig.

AudioSR-vereisten: Python, GPU-geheugen en schijfruimte

AudioSR is een zwaar model, vooral voor volledige nummers. Het officiële basischeckpoint neemt ongeveer 6,2 GB op schijf in, en het uitvoeren van het model heeft meer geheugen nodig dan de opgeslagen gewichten. Een grote NVIDIA-GPU helpt, maar de checkpointgrootte is geen minimale VRAM-eis: fragmentlengte en implementatie beïnvloeden ook het geheugengebruik. De officiële README vermeldt geen minimale GPU-vereiste.

Lange invoer kan het GPU-geheugen uitputten. Begin met een kort fragment en verwerk langere opnamen daarna in kleinere stukken.

Bereid deze afhankelijkheden voor voordat je begint:

  • Python in een geïsoleerde omgeving. Het oorspronkelijke voorbeeld gebruikt Python 3.9. Deze gids gebruikt Python 3.10, dat werkt met de oudere NumPy-versies die AudioSR nodig heeft. Een virtuele omgeving houdt deze pakketten buiten je systeem-Python.
  • Git en uv. Installeer Git en uv om de broncode te downloaden en de Python-omgeving te beheren.
  • PyTorch en een geschikte GPU-driver. NVIDIA-gebruikers hebben een PyTorch-build met CUDA-ondersteuning nodig. Stem de versies van PyTorch, TorchAudio en TorchVision af met de officiële installatiematrix.
  • FFmpeg, inclusief ffprobe. De oorspronkelijke code voor het opslaan van bestanden gebruikt deze opdrachten. Installeer ze via de downloadopties van FFmpeg en maak ze beschikbaar in je terminal.
  • Vrije schijfruimte en een internetverbinding. Houd ruimte vrij voor de omgeving, gedownloade modelgewichten, invoerbestanden en uitvoer. De eerste keer dat het model wordt geladen, wordt het checkpoint gedownload.

De oorspronkelijke code voor apparaatselectie herkent CUDA, Apple MPS en CPU. CPU-verwerking kan erg traag zijn. MPS-ondersteuning in de apparaatcontrole garandeert niet dat elke afhankelijkheid en bewerking op iedere Mac werkt.

AudioSR installeren vanuit GitHub

1. Download de officiële repository en maak een Python-omgeving

Voer deze opdrachten uit in een terminal:

git clone https://github.com/haoheliu/versatile_audio_super_resolution.git
cd versatile_audio_super_resolution
uv venv --python 3.10

Activeer de omgeving op Linux of macOS:

source .venv/bin/activate

Gebruik op Windows PowerShell deze activeringsopdracht:

.venv\Scripts\Activate.ps1

2. Installeer geschikte afhankelijkheden en AudioSR

AudioSR heeft oudere versiebeperkingen voor afhankelijkheden, waaronder NumPy 1.23.5 of eerder en Transformers 4.30.2. De nieuwste Python- en PyTorch-versies installeren kan compatibiliteitsfouten veroorzaken. De pakketvereisten en referentieomgeving van het project zijn nuttige uitgangspunten.

De referentieomgeving combineert bijvoorbeeld PyTorch 2.0.1, TorchAudio 2.0.2 en TorchVision 0.15.2. Installeer op Linux of Windows met een geschikte NVIDIA-driver die combinatie voor CUDA 11.7 en daarna de uitgecheckte AudioSR-broncode:

uv pip install torch==2.0.1 torchaudio==2.0.2 torchvision==0.15.2 --index-url https://download.pytorch.org/whl/cu117
uv pip install .
python -m audiosr --help

De CUDA-opdracht is bedoeld voor NVIDIA-systemen. Gebruik voor macOS of CPU de bijpassende instructies uit de PyTorch-matrix. Dit zijn oudere afhankelijkheidsversies, dus houd deze omgeving gescheiden van andere Python-projecten.

Heb je alleen het gepubliceerde pakket nodig, dan beschrijft de officiële README ook audiosr==0.0.7. Die release en de huidige main-branch op GitHub kunnen verschillende functies hebben. Controleer daarom python -m audiosr --help voor de versie die je hebt geïnstalleerd.

3. Controleer of Python je GPU ziet

Voer deze controle uit binnen de geactiveerde omgeving op een NVIDIA-computer:

python -c "import torch; print('CUDA available:', torch.cuda.is_available())"
ffmpeg -version
ffprobe -version

Is CUDA niet beschikbaar, herstel dan de driver- of PyTorch-installatie voordat je een lange taak start. -d cuda toevoegen aan AudioSR maakt een niet-beschikbare GPU niet bruikbaar.

AudioSR via de opdrachtregel: begin met een korte WAV

Gebruik bij de eerste uitvoering een korte mono-WAV. De oorspronkelijke audiolader beveelt invoer van 5,12 seconden aan en waarschuwt voor kwaliteitsproblemen boven 10,24 seconden. Met een volledig nummer zijn installatie- en geheugenproblemen lastiger te onderzoeken.

Zet input.wav in de repositorymap en voer daarna dit uit:

python -m audiosr -i input.wav -s output --model_name basic -d cuda --ddim_steps 50 --seed 42

De opdrachtregelimplementatie slaat WAV-uitvoer met een samplefrequentie van 48 kHz op in een map met tijdstempel onder output. Gebruik basic voor algemene audio of speech voor spraakopnamen. De beginwaarde voor toevalsgeneratie bepaalt de gegenereerde variatie; enkele beginwaarden vergelijken kan helpen een beter resultaat te kiezen.

Is de generatie klaar maar geeft het opslaan numpy.ndarray has no attribute cpu, gebruik dan het Python-voorbeeld hieronder om de uitvoer rechtstreeks te schrijven. In de voor deze gids gecontroleerde GitHub-broncode geeft het model een NumPy-array terug, maar de functie voor bestandsopslag verwacht een tensor. Dat is een mismatch in het uitvoertype van het oorspronkelijke project, geen GPU-geheugenfout.

De huidige GitHub-code biedt ook verwerking in stukken voor langere bestanden:

python -m audiosr -i input.wav -s output --model_name basic -d cuda --ddim_steps 50 --chunking --chunk_duration 5 --overlap_duration 1

Deze aanpak verwerkt kleinere delen en mengt de overlappende stukken. Dat verlaagt het geheugengebruik, maar voegt overgangen toe die je op gehoor moet controleren. Deze vlaggen zijn versiegebonden en het oorspronkelijke pad voor verwerking in stukken mixt stereo-invoer naar mono. Bewaar daarom het oorspronkelijke stereobestand.

AudioSR gebruiken vanuit Python

Gebruik de Python-API om AudioSR vanuit je eigen script aan te roepen. Het voorbeeld hieronder verwerkt een kort monobestand, snijdt de opvulling af op de invoerduur en schrijft een WAV met een samplefrequentie van 48 kHz. Sla het op als run_audiosr.py in de repositorymap.

import numpy as np
import soundfile as sf
import torch
from audiosr import build_model, super_resolution

model = build_model(model_name="basic", device="cuda")
waveform = super_resolution(
  model,
  "input.wav",
  seed=42,
  ddim_steps=50,
  guidance_scale=3.5,
)
if isinstance(waveform, torch.Tensor):
  waveform = waveform.detach().cpu().numpy()
audio = np.asarray(waveform)[0, 0]
input_info = sf.info("input.wav")
output_samples = round(input_info.frames * 48000 / input_info.samplerate)
sf.write("output.wav", audio[:output_samples], 48000, subtype="PCM_24")
python run_audiosr.py

De Python-pipeline laadt het model één keer, zodat een script voor batchverwerking het kan hergebruiken. In Neural Analog past batchverwerking één herstelbewerking toe op veel bestanden zonder script. Stel het aantal samplingstappen expliciet in, want de Python-API en CLI kunnen verschillende standaardwaarden gebruiken.

Gebruik AudioSR online zonder Python te installeren
Upload je audio naar Neural Analog, kies de AudioSR-herstelinstellingen en beluister het resultaat voordat je exporteert. De verwerking gebeurt online, dus je hebt geen lokale GPU of Colab-notebook nodig.

AudioSR uitvoeren in Google Colab

Google Colab laat je AudioSR op de cloudhardware van Google draaien. Open het AudioSR Colab-notebook van de community en volg de instructies om audio te laden, het model uit te voeren en het resultaat op te slaan. Het notebook draait in je browser, dus je hebt geen Python-installatie of GPU op je computer nodig.

Het notebook is een community-aanpassing van AudioSR. De broncode staat op GitHub.

Waar kun je AudioSR-modelgewichten downloaden?

Download de AudioSR-modelgewichten op Hugging Face.

AudioSR-modeldetails: architectuur, training en geschiedenis

Wie heeft AudioSR gemaakt?

AudioSR is een generatief model voor audiosuperresolutie van Haohe Liu, Ke Chen, Qiao Tian, Wenwu Wang en Mark D. Plumbley. Het voorspelt ontbrekende hoge frequenties in spraak, muziek en geluidseffecten en maakt audio met een samplefrequentie van 48 kHz. De AudioSR-onderzoekspagina bevat het paper en luistervoorbeelden. Het werk verscheen eerst als preprint in september 2023 en werd gepubliceerd op ICASSP 2024.

AudioSR genereert aannemelijk detail. Het kan geen exacte kopie van een verloren studiomaster herstellen. Een MP3 naar een WAV van 48 kHz converteren voert deze reconstructie helemaal niet uit. De gids voor MP3-herstel naar WAV legt dat verschil uit.

Audioherstel, resampling en bandbreedte zijn verschillende dingen

Resampling verandert hoeveel samples elke seconde audio vertegenwoordigen. Audioherstel, of superresolutie, probeert frequentie-inhoud te schatten die niet meer in de opname zit. Een opname van 8 kHz naar 48 kHz resamplen levert bijvoorbeeld meer samples op, maar herstelt op zichzelf geen geluid boven de oorspronkelijke frequentiegrens van 4 kHz.

Volgens de officiële projectbeschrijving richt AudioSR zich op invoerbandbreedtes van 2 tot 16 kHz en genereert het uitvoer met een bandbreedte van 24 kHz bij een samplefrequentie van 48 kHz. Bandbreedte beschrijft het frequentiebereik; samplefrequentie beschrijft het aantal samples per seconde. Een bestand met het label 48 kHz kan nog steeds een smalle bandbreedte hebben door eerdere compressie of filtering. Veel AI-nummers hebben dit probleem, wat verklaart waarom Suno-nummers vaak dof klinken.

Was AudioSR het eerste model voor audioherstel?

AudioSR was niet de eerste neurale audiohersteller. Kuleshov, Enam en Ermon publiceerden ‘Superresolutie voor audio met neurale netwerken’ in 2017, en spraakherstel op basis van diffusie bestond ook al vóór AudioSR.

De bijdrage is specifieker. Het AudioSR-paper presenteert het als het eerste systeem voor het algemene hoorbare domein: muziek, spraak en geluidseffecten. Het combineert die breedte met flexibele invoerbandbreedte en introduceert dus niet audiosuperresolutie zelf.

Van de invoeropname naar een golfvorm van 48 kHz

AudioSR combineert een variationele auto-encoder (VAE), een voorwaardelijk latent diffusiemodel en een neurale vocoder. Elk onderdeel verwerkt een stap van de reconstructie:

StapWat gebeurt er?Waarom is het belangrijk?
AudioweergaveDe invoer wordt een mel-spectrogram: een kaart van geluidsenergie over tijd en frequentie.Het model werkt met patronen in frequentie-inhoud.
VAE-coderingEen encoder comprimeert het spectrogram tot een kleinere latente representatie.Diffusie werkt met minder waarden dan in een volledig spectrogram.
Voorwaardelijke diffusieEen Transformer U-Net verfijnt iteratief een latente representatie met ruis, gestuurd door de latente invoer met lage resolutie.De opname stuurt het gegenereerde detail; een tekstprompt is niet nodig.
Decodering en vocoderDe VAE decodeert een mel-spectrogram met hogere resolutie. Een vocoder op basis van HiFi-GAN maakt er een golfvorm van.Een spectrogram moet weer in hoorbare samples worden omgezet.
FrequentievervangingLage-frequentie-informatie uit de invoer vervangt de overeenkomstige gegenereerde banden.Bestaande informatie helpt veranderingen in de opname te beperken.

De gepubliceerde modelconfiguratie noemt een mel-representatie met 256 banden, een VAE en een U-Net met ruimtelijke transformers. Ze voegt de gecodeerde laagdoorlaatkenmerken van de invoer samen met de latente diffusierepresentatie. Deze generatie wordt door audio gestuurd, ook al noemen sommige overgenomen CLI-beschrijvingen tekst.

Wat regelen samplingstappen en sturingssterkte?

Samplingstappen bepalen hoeveel iteraties het model besteedt aan het verfijnen van de gegenereerde representatie. AudioSR gebruikt een DDIM-sampler. De sturingssterkte bepaalt hoe sterk de invoerconditie de generatie stuurt. Het is geen EQ-hoeveelheid en een hogere waarde garandeert geen hogere kwaliteit. De inferentie-implementatie voert achtereenvolgens sampling, decodering, frequentievervanging en golfvormnormalisatie uit.

Meer samplingstappen en langere opnamen kosten meer verwerkingstijd. AudioSR is bedoeld voor verwerking buiten realtime; de werkelijke snelheid hangt af van je GPU en instellingen. ddim_steps verlagen versnelt de generatie, maar lost GPU-geheugenfouten niet betrouwbaar op.

Hoe is AudioSR getraind?

De trainingssectie van het paper beschrijft ongeveer 7.000 uur uit MUSDB18-HQ, MoisesDB, MedleyDB, Freesound en OpenSLR-spraakdata. Laagdoorlaatfilters met verschillende afsnijfrequenties maken verslechterde invoer gekoppeld aan doelen met een vollere bandbreedte. Het diffusiemodel gebruikt een cosinusschema voor ruis, snelheidsvoorspelling en sturing zonder classifier. De vocoder is gebaseerd op HiFi-GAN met een discriminator voor meerdere resoluties.

Echte opnamen kunnen van deze trainingsvoorbeelden afwijken. De auteurs leggen uit dat onregelmatige frequentiegrenzen, sterke ruis en galm de kwaliteit kunnen verlagen. MP3-compressie kan gaten rond de afsnijfrequentie achterlaten. Laagdoorlaatfiltering vóór inferentie kan helpen, maar een te lage grens verwijdert nuttig detail. Bij opnamen met galm kan de galm verwijderen vóór herstel het model schonere invoer geven.

Je hoeft deze onderdelen niet te trainen om AudioSR uit te voeren. De installatie laadt vooraf getrainde gewichten.

Waarom gebruikt AudioSR nabewerking?

De gegenereerde audio moet bruikbare informatie uit de bron behouden. AudioSR vervangt de lage banden twee keer: in het geschatte mel-spectrogram vóór de vocoder en in de Fouriertransformatie over korte tijdsvensters (STFT) van de resulterende golfvorm. De vervangingscode schat een afsnijfrequentie en past de gereconstrueerde uitvoer aan.

Stereo-opnamen en volledige nummers hebben een pipeline nodig die kanalen, stukken en reconstructie afhandelt. De standaardworkflow van de repository maakt mono-audio: de standaardlader neemt het eerste invoerkanaal, terwijl de pipeline voor stukken stereo naar mono mixt. Stereo behouden vereist extra kanaalverwerking, zoals de afzonderlijke verwerking van links en rechts in het community-notebook.

Reconstructie vereist een luistercontrole. De community-pipelinenotities waarschuwen dat te veel overlap fase-uitdoving kan veroorzaken. Vergelijk het resultaat op vergelijkbare luidheid en controleer de geregenereerde hoge frequenties, overgangen tussen stukken, duur en stereobeeld. Frequentievervanging helpt de bron te behouden, maar garandeert geen ongewijzigde lage band of schone overgangen.

Veelgestelde vragen over AudioSR-problemen

Staat AudioSR op PyPI?

Ja. De officiële README beschrijft de installatie van audiosr==0.0.7 met pip of de nieuwste code rechtstreeks van GitHub. De main-branch op GitHub heeft functies, zoals verwerking in stukken, die de PyPI-release mogelijk mist.

Hoeveel GPU-geheugen heeft AudioSR nodig?

De README geeft geen minimum. Het basischeckpoint alleen neemt ongeveer 6,2 GB op schijf in en het geheugengebruik groeit met de fragmentlengte. Begin met een fragment van ongeveer 5 seconden en gebruik daarna verwerking in stukken voor langere bestanden.

Waarom geeft AudioSR numpy.ndarray has no attribute cpu?

De inferentie is klaar, maar de opslagstap verwacht een PyTorch-tensor en krijgt een NumPy-array. Gebruik het Python-script hierboven, dat de uitvoer met soundfile schrijft.

Waarom is mijn AudioSR-uitvoer mono?

De standaardlader leest alleen het eerste kanaal en het pad voor verwerking in stukken mixt stereo naar mono. Verwerk links en rechts afzonderlijk of gebruik AudioSR Online, dat de midden- en verschilkanalen voor je verwerkt.

Is de trainingscode van AudioSR beschikbaar?

Ja. Het wijzigingslog van de README van 31 december 2024 linkt naar de trainingscode. De auteur beschrijft die als uitsluitend bedoeld als referentie en niet zorgvuldig georganiseerd.

Gebruik AudioSR met Neural Analog in plaats van de installatie te beheren

Wil je de lokale installatie overslaan, open dan AudioSR Online, upload een bestand of importeer een ondersteunde muzieklink en pas de herstelinstellingen aan. Sla voor Udio de audio eerst op of neem die op en upload daarna het bestand. Je kunt een afsnijfrequentie kiezen, het verwerkte resultaat beluisteren en audio vanuit dezelfde interface exporteren.

Neural Analog voert de modelverwerking online uit, zodat je een computer zonder grote GPU kunt gebruiken en Python-installatie, checkpointdownloads en notebookonderhoud kunt overslaan. Je moet nog steeds kritisch luisteren, want een gehoste workflow neemt de kwaliteitsbeperkingen van het model niet weg. Volg na herstel de audioverbeteringsgids voor de volgende stappen. Voor AI-muziek behandelt de kwaliteit van AI-nummers verbeteren stemherstel en mastering na reconstructie.

Je kunt AudioSR ook vergelijken met nieuwere audioherstelmodellen op Neural Analog, waaronder UniverSR en FlashSR. Hun modelkaarten leggen uit hoe elk model werkt en de FAQ vat samen hoe UniverSR van AudioSR verschilt. Een uitgewerkt voorbeeld is alle 203 RPG Maker 2000-geluidseffecten hersteld naar 48 kHz met UniverSR. Voer ze op dezelfde opname uit en vergelijk de voorbeluisteringen om het beste resultaat te kiezen.

Gebruik AudioSR online zonder Python te installeren
Upload je audio naar Neural Analog, kies de AudioSR-herstelinstellingen en beluister het resultaat voordat je exporteert. De verwerking gebeurt online, dus je hebt geen lokale GPU of Colab-notebook nodig.