>_ DevTrendspl

Język

Strona główna

Języki

Sekcje

Frontend Backend Mobilne DevOps AI / ML GameDev Blockchain Systemy wbudowane Bezpieczeństwo
TypeScript

Jak wyodrębnić dowolny dźwięk z utworu za pomocą zwykłego tekstu

AudioGhost Banner

Demo Python License

Jeśli kiedykolwiek musiałeś usunąć szczekanie psa z podcastu lub wyodrębnić wokale ze starego utworu, prawdopodobnie miałeś do czynienia ze standardowymi separatorami. Zazwyczaj potrafią one podzielić utwór tylko na dokładnie cztery ścieżki: wokal, bas, bębny i wszystko inne. Wyjdź choć trochę poza te ramy — jak na przykład izolowanie konkretnych oklasków czy brzęku szkła — a klasyczne sieci neuronowe zawodzą.

Niedawno Meta udostępniła model SAM-Audio, który dzieli ścieżki audio na podstawie opisów tekstowych. Problem polega na tym, że oryginalne repozytorium wymaga ogromnych ilości VRAM i nie uruchomi się na każdym komputerze. Projekt audioghost-ai rozwiązuje dokładnie ten problem: autor wyciął niepotrzebne części architektury, zmniejszył wymagania VRAM o prawie połowę i spakował wszystko w gotową do użycia aplikację webową.

Co potrafi ten projekt

Główna idea AudioGhost polega na wydawaniu modelowi poleceń zwykłym, ludzkim językiem. Przesyłasz plik audio lub wideo, wpisujesz opis w polu wejściowym drums, crowd noise lub a dog barking i wybierasz akcję: wyodrębnić ten dźwięk lub odwrotnie — usunąć go z utworu.

Interfejs natychmiast udostępnia wbudowany mikser ścieżek. Możesz odsłuchać oryginał, wyodrębniony dźwięk i pozostałą ścieżkę bezpośrednio w przeglądarce, porównując wyniki w locie. Strumień wideo nie jest jeszcze analizowany wizualnie — serwis po prostu wyodrębnia ścieżkę audio z wideo — ale autor planuje zintegrować SAM 2, aby klikać na obiekty w kadrze.

Jak udało się zmniejszyć model do 4 GB VRAM

Oryginalny SAM-Audio został zaprojektowany jako uniwersalna wielomodalna maszyna robocza. Z tego powodu enkoder wideo i rankery tekstowe stale pozostawały w pamięci, nawet jeśli użytkownik chciał tylko wyczyścić plik MP3.

AudioGhost wykorzystuje tryb Lite zaproponowany w jednej z dyskusji w oryginalnym repozytorium Mety. Oto jak zaoszczędzono zasoby:

  • Usunięto Enkoder Wizyjny i Ranker Wizyjny, oszczędzając około 4 GB VRAM
  • Wyłączono Ranker Tekstowy i predyktory zakresów, zyskując kolejne 3–4 GB
  • Przełączono obliczenia na precyzję bfloat16 domyślnie
  • Podzielono długie utwory na fragmenty 25-sekundowe

W rezultacie model bazowy może działać na konsumenckich GPU, takich jak RTX 3070 czy RTX 4060 z 8 GB pamięci. Jeśli włączysz tryb wysokiej jakości w float32, wymagania skaczą do 13 GB, ale do większości codziennych zadań tryb bazowy jest wystarczający. Jeśli chodzi o szybkość, wnioskowanie na testowym RTX 4090 osiąga dziesięciokrotne przyspieszenie względem czasu rzeczywistego audio.

Architektura i stos technologiczny

Deweloper nie komplikował projektu egzotycznymi narzędziami. Architektura jest prosta:

┌─────────────────────────────────────────────────┐
                   Frontend                       
             (Next.js + Tailwind v4)             
└──────────────────────┬──────────────────────────┘
                       
┌──────────────────────▼──────────────────────────┐
               Backend API                        
            (FastAPI + Python)                    
└──────────────────────┬──────────────────────────┘
                       
                       
┌─────────────────────────────────────────────────┐
              Task Queue                          
          (Celery + Redis)                        
└──────────────────────┬──────────────────────────┘
                       
                       
┌─────────────────────────────────────────────────┐
           SAM Audio Lite                         
    (Memory-optimized Meta SAM-Audio)            
└─────────────────────────────────────────────────┘

Frontend jest zbudowany z Next.js i Tailwind v4. Backend działa na FastAPI, a ciężkie zadania separacji audio są odciążane do kolejki przez Celery i Redis. Dzięki temu interfejs pozostaje responsywny podczas długich operacji przetwarzania plików.

Szybki start

W przypadku Windowsa repozytorium zawiera gotowe skrypty bat, które automatycznie konfigurują środowisko Conda, pobierają Redis i instalują zależności.

Jeśli budujesz ręcznie na Linuksie lub przez terminal:

# Создаем окружение
conda create -n audioghost python=3.11 -y
conda activate audioghost

# Ставим PyTorch с поддержкой CUDA 12.6 и FFmpeg
pip install torch==2.9.0+cu126 torchvision==0.24.0+cu126 torchaudio==2.9.0+cu126 --index-url https://download.pytorch.org/whl/cu126
conda install -c conda-forge ffmpeg -y

# Ставим SAM Audio и зависимости бэкенда
pip install git+https://github.com/facebookresearch/sam-audio.git
cd backend && pip install -r requirements.txt

# Ставим фронтенд
cd ../frontend && npm install

Przed uruchomieniem będziesz potrzebować konta na HuggingFace. Model sam-audio-large jest chroniony umową bazową, więc musisz poprosić o dostęp na stronie modelu i wygenerować token, który następnie wprowadzasz przez interfejs webowy serwisu.

Wrażenia i dla kogo to jest

Projekt ma około 470 gwiazdek na GitHub i status MVP v1.0, więc możesz napotkać niedociągnięcia. Na przykład problemy z binarką FFmpeg czasem pojawiają się podczas budowania TorchCodec na Windowsie, a model może mieć trudności ze zbyt abstrakcyjnymi opisami tekstowymi.

Niemniej jednak to jeden z niewielu open-source'owych projektów, który przekształca ciężki model badawczy Mety w działającą usługę lokalną. Jeśli edytujesz filmy, porządkujesz ścieżki audio lub eksperymentujesz z projektowaniem dźwięku na lokalnym GPU, ten projekt zdecydowanie zasługuje na sklonowanie do lokalnego folderu.

Powiązane projekty