File size: 1,539 Bytes
65f6ccd
 
c89bd94
65f6ccd
 
 
 
 
 
228dc63
65f6ccd
 
b8e52fb
65f6ccd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c89bd94
 
65f6ccd
 
0f19188
 
228dc63
65f6ccd
 
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
import gradio as gr
import torch
from audiocraft.models import MusicGen
import uuid
import os
import torchaudio

# Cargar el modelo
print("Cargando el modelo MusicGen...")
model = MusicGen.get_pretrained('facebook/musicgen-small')
print("Modelo cargado correctamente.")

# Función para generar música
def generar_musica(descripcion):
    try:
        print(f"Generando música con descripción: {descripcion}")

        # Establecer parámetros de generación
        model.set_generation_params(duration=5)  # Prueba con 5 segundos

        # Generar música
        output = model.generate(descriptions=[descripcion])

        if not output:
            print("Error: No se generó ninguna salida.")
            return "Error: No se pudo generar la música."

        # Guardar el archivo de audio correctamente
        output_path = f"output_{uuid.uuid4().hex}.wav"
        torchaudio.save(output_path, output[0].unsqueeze(0), 32000)  # Guardar audio con sample rate 32kHz

        print(f"Música generada y guardada en {output_path}")
        return output_path
    except Exception as e:
        print(f"Error al generar música: {e}")
        return "Error: No se pudo generar la música."

# Crear interfaz con Gradio
demo = gr.Interface(
    fn=generar_musica,
    inputs=gr.Textbox(label="Descripción de la música"),
    outputs=gr.Audio(label="Música Generada"),
    title="Generador de Música AI",
    description="Introduce una descripción y genera una pista de música."
)

if __name__ == "__main__":
    demo.launch()