Sergiosamyy commited on
Commit
e359ea8
·
verified ·
1 Parent(s): dddefb6

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +9 -6
app.py CHANGED
@@ -3,7 +3,7 @@ import torch
3
  from audiocraft.models import MusicGen
4
  import uuid
5
  import os
6
- import torchaudio
7
 
8
  # Cargar el modelo
9
  print("Cargando el modelo MusicGen...")
@@ -16,21 +16,24 @@ def generar_musica(descripcion):
16
  print(f"Generando música con descripción: {descripcion}")
17
 
18
  # Establecer parámetros de generación
19
- model.set_generation_params(duration=5) # Prueba con 5 segundos
20
 
21
  # Generar música
22
  output = model.generate(descriptions=[descripcion])
23
 
24
- if not isinstance(output, torch.Tensor):
25
- print("Error: La salida del modelo no es un tensor válido.")
26
  return "Error: No se pudo generar la música."
27
 
28
- # Convertir el tensor a numpy
29
  audio_data = output[0].cpu().detach().numpy()
30
 
 
 
 
31
  # Guardar el archivo de audio correctamente
32
  output_path = f"output_{uuid.uuid4().hex}.wav"
33
- torchaudio.save(output_path, torch.tensor(audio_data).unsqueeze(0), 32000) # Sample rate 32kHz
34
 
35
  print(f"Música generada y guardada en {output_path}")
36
  return output_path
 
3
  from audiocraft.models import MusicGen
4
  import uuid
5
  import os
6
+ import scipy.io.wavfile
7
 
8
  # Cargar el modelo
9
  print("Cargando el modelo MusicGen...")
 
16
  print(f"Generando música con descripción: {descripcion}")
17
 
18
  # Establecer parámetros de generación
19
+ model.set_generation_params(duration=10) # Asegurar duración de 10 segundos
20
 
21
  # Generar música
22
  output = model.generate(descriptions=[descripcion])
23
 
24
+ if not isinstance(output, torch.Tensor) or output.numel() == 0:
25
+ print("Error: La salida del modelo es vacía o inválida.")
26
  return "Error: No se pudo generar la música."
27
 
28
+ # Convertir el tensor a NumPy
29
  audio_data = output[0].cpu().detach().numpy()
30
 
31
+ # Normalizar audio a 16 bits
32
+ audio_data = (audio_data * 32767).astype("int16")
33
+
34
  # Guardar el archivo de audio correctamente
35
  output_path = f"output_{uuid.uuid4().hex}.wav"
36
+ scipy.io.wavfile.write(output_path, 32000, audio_data)
37
 
38
  print(f"Música generada y guardada en {output_path}")
39
  return output_path