Spaces:
Build error
Build error
# Import libraries | |
import os | |
import gradio as gr | |
import torch | |
import soundfile as sf | |
import numpy as np | |
from PIL import Image | |
import torch.nn.functional as F | |
import logging | |
from scipy.io.wavfile import write as write_wav | |
from scipy import signal | |
from moviepy.editor import VideoFileClip, AudioFileClip | |
from transformers import AutoProcessor, AutoModelForAudioGeneration | |
import requests # Add this line | |
# Set up logging for better debug tracking | |
logging.basicConfig(level=logging.DEBUG, format="%(asctime)s - %(levelname)s - %(message)s") | |
logger = logging.getLogger() | |
# Download Places365 class labels | |
try: | |
logging.info("Downloading Places365 class labels...") | |
url = "http://places2.csail.mit.edu/models_places365/categories_places365.txt" | |
response = requests.get(url) | |
with open("categories_places365.txt", "wb") as f: | |
f.write(response.content) | |
logging.info("Places365 class labels downloaded successfully.") | |
except Exception as e: | |
logging.error(f"Error downloading Places365 class labels: {e}") | |
raise | |
# Load Places365 model for scene detection (on CPU to save GPU memory) | |
try: | |
logging.info("Loading Places365 model for scene detection...") | |
places365 = torch.hub.load('pytorch/vision:v0.10.0', 'resnet18', pretrained=True) | |
places365.eval() | |
places365.to("cpu") # Move to CPU | |
logging.info("Places365 model loaded successfully.") | |
except Exception as e: | |
logging.error(f"Error loading Places365 model: {e}") | |
raise | |
# Load Places365 class labels | |
with open("categories_places365.txt", "r") as f: | |
SCENE_CLASSES = [line.strip().split(" ")[0][3:] for line in f.readlines()] | |
# Load AudioGen Medium and MusicGen Medium models | |
try: | |
logging.info("Loading AudioGen Medium and MusicGen Medium models...") | |
audiogen_processor = AutoProcessor.from_pretrained("facebook/audiogen-medium") | |
audiogen_model = AutoModelForAudioGeneration.from_pretrained("facebook/audiogen-medium") | |
musicgen_processor = AutoProcessor.from_pretrained("facebook/musicgen-medium") | |
musicgen_model = AutoModelForAudioGeneration.from_pretrained("facebook/musicgen-medium") | |
# Move models to GPU if available | |
device = "cuda" if torch.cuda.is_available() else "cpu" | |
audiogen_model.to(device) | |
musicgen_model.to(device) | |
logging.info("AudioGen Medium and MusicGen Medium models loaded successfully.") | |
except Exception as e: | |
logging.error(f"Error loading AudioGen/MusicGen models: {e}") | |
raise | |
# Rest of the code remains the same... |