Spaces:
Running
on
Zero
Running
on
Zero
File size: 2,040 Bytes
d2d09cc 1381c8e d2d09cc 4bafd38 404e15b 4830873 404e15b d2d09cc 1381c8e d2d09cc 404e15b 771b4e4 404e15b d2d09cc 404e15b d2d09cc 771b4e4 d2d09cc 404e15b d2d09cc 404e15b d2d09cc 404e15b d2d09cc 404e15b 4830873 404e15b 1381c8e d2d09cc 404e15b d2d09cc 1381c8e d2d09cc 1381c8e d2d09cc efd2061 d2d09cc 1381c8e |
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 |
import gradio as gr
import torchaudio
from audiocraft.models import MusicGen
import spaces
import logging
# 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)
logging.info(f"A forma do tensor de áudio gerado: {wav[0].shape}")
logging.info("Música gerada com sucesso.")
return wav[0] # Retorna o tensor de áudio diretamente
# 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") # Especifica o tipo como "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()
|