Перейти до вмісту
    ШІ / Установка локально Audiocraft (MusicGen) від Meta

    Установка локально Audiocraft (MusicGen) від Meta

    Оцініть цю публікацію!
    [Усього: 0 Середнє значення: 0]

    Прогресивний генератор аудіо локально на ПК від Meta.

    git clone https://github.com/facebookresearch/audiocraft
    cd audiocraft
    python3 -m venv venv
    source venv/bin/activate
    pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124
    pip install -e .  # встановлює залежності проекту

    Установка бібліотеки для інтерфейсу (gradio) та самого інструмента ffmpeg у систему:

    У віртуальному середовищі (venv):

    Bash

    pip install gradio

    У системі (якщо раніше не ставив саму програму):

    Bash

    sudo apt install ffmpeg

    Запуск графічного Audiocraft

    python -m demos.musicgen_app

    Після запуску ти побачиш у терміналі посилання виду http://127.0.0.1:7860. Відкрий його в браузері.

    1. Вибір моделі (Model):
      • Вибери facebook/musicgen-medium. Це “золота середина” для 11 ГБ VRAM.
      • Модель large може вимагати близько 12-14 ГБ.
    2. Введення тексту (Input Text):
      • Описуй музику англійською для кращого результату. Наприклад: “90s hip hop beat, lo-fi chill, smooth saxophone, vinyl crackle” або “Epic cinematic orchestral theme, aggressive drums, dark atmosphere”.
    3. Тривалість (Duration):
      • Для початку став 10–20 секунд, щоб перевірити швидкість.

    Генерація аудіо через Python

    Створити файл в середені папки Audicraft з вмістом:

    import torch
    import soundfile as sf
    from transformers import MusicgenForConditionalGeneration, AutoProcessor
    import os
    import gc
    import time
    
    # Налаштування
    OUTPUT_DIR = "generated_music"
    os.makedirs(OUTPUT_DIR, exist_ok=True)
    MODEL_NAME = "facebook/musicgen-medium" 
    DEVICE = "cuda" if torch.cuda.is_available() else "cpu"
    
    print(f"🚀 Завантаження моделі {MODEL_NAME}...")
    model = MusicgenForConditionalGeneration.from_pretrained(MODEL_NAME).to(DEVICE)
    processor = AutoProcessor.from_pretrained(MODEL_NAME)
    
    # Промпти
    prompts = [
        "128 bpm, 4/4, energetic electronic track, heavy bassline, pulsating synths, driving beat, euphoric drop, modern house vibes",
        "90 bpm, melodic techno, atmospheric soundscapes, deep and hypnotic, cinematic pads, evolving arpeggios, warm bass, ambient",
    ]
    
    def generate(text, idx):
        print(f"🎵 Генерую трек {idx+1}...")
        inputs = processor(text=[text], padding=True, return_tensors="pt").to(DEVICE)
        
      
        with torch.no_grad():
            audio_values = model.generate(**inputs, max_new_tokens=1500)
    
    
        sampling_rate = model.config.audio_encoder.sampling_rate
        audio_data = audio_values[0, 0].cpu().numpy()
        
        filename = f"track_{idx+1}.wav"
        filepath = os.path.join(OUTPUT_DIR, filename)
        
        sf.write(filepath, audio_data, sampling_rate)
        print(f"✅ Збережено: {filepath}")
    
    for i, p in enumerate(prompts):
        try:
            generate(p, i)
            # В кінці циклу:
            torch.cuda.empty_cache()
            gc.collect()
            print("🧹 Пам'ять очищена. Охолодження 10 секунд...")
            time.sleep(10) # Дай чипу трохи охолонути
        except Exception as e:
            print(f"❌ Помилка: {e}")

    Запустити файл через python назва-файла.py або python3 назва-файла.py

    Схоже з цієї категорії:

    Залишити відповідь

    Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *