Spaces:
Running
on
Zero
Running
on
Zero
File size: 2,153 Bytes
d2d09cc 1381c8e d2d09cc 4bafd38 404e15b cb36b4b b8c8c14 d2c8353 404e15b d2d09cc 1381c8e d2d09cc 404e15b 771b4e4 404e15b d2d09cc 404e15b d2d09cc 771b4e4 d2d09cc 404e15b d2d09cc 404e15b d2d09cc 404e15b d2d09cc 404e15b d2c8353 404e15b d2c8353 b8c8c14 d2d09cc 404e15b d2d09cc b8c8c14 d2d09cc d2c8353 d2d09cc efd2061 d2d09cc f4dda01 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
import gradio as gr
import torchaudio
from audiocraft.models import MusicGen
import spaces
import logging
import tempfile
import numpy as np
# Configura o logging
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
@spaces.GPU(duration=120)
def generate_music(description, melody_audio):
logging.info("Iniciando a geração de música.")
# Carrega o modelo pré-treinado
logging.info("Carregando o modelo pré-treinado.")
model = MusicGen.get_pretrained('nateraw/musicgen-songstarter-v0.2')
model.set_generation_params(duration=8)
if description:
description = [description]
if melody_audio:
logging.info(f"Carregando a melodia de áudio de: {melody_audio}")
melody, sr = torchaudio.load(melody_audio)
logging.info("Gerando música com descrição e melodia.")
wav = model.generate_with_chroma(description, melody[None], sr)
else:
logging.info("Gerando música apenas com descrição.")
wav = model.generate(description)
else:
logging.info("Gerando música de forma incondicional.")
wav = model.generate_unconditional(1)
# Verifica a forma do tensor de áudio gerado
logging.info(f"A forma do tensor de áudio gerado: {wav[0].shape}")
logging.info("Música gerada com sucesso.")
# Retorna o áudio gerado como uma tupla (sample rate, numpy array)
return model.sample_rate, wav[0].cpu().numpy()
# Define a interface Gradio
description = gr.Textbox(label="Description", placeholder="acoustic, guitar, melody, trap, d minor, 90 bpm")
melody_audio = gr.Audio(label="Melody Audio (optional)", type="filepath")
output_audio = gr.Audio(label="Generated Music", type="numpy")
gr.Interface(
fn=generate_music,
inputs=[description, melody_audio],
outputs=output_audio,
title="MusicGen Demo",
description="Generate music using the MusicGen model.",
examples=[
["trap, synthesizer, songstarters, dark, G# minor, 140 bpm", "./assets/kalhonaho.mp3"],
["upbeat, electronic, synth, dance, 120 bpm", None]
]
).launch() |