aherrasf commited on
Commit
cdc6979
1 Parent(s): 0716168

Improve error handling and Basic Pitch implementation

Browse files
Files changed (2) hide show
  1. app.py +17 -5
  2. model_inference.py +13 -3
app.py CHANGED
@@ -5,11 +5,23 @@ from model_inference import (
5
  )
6
 
7
  def procesar_wav(input_wav_path: str):
8
- # 1) Generar archivos midi
9
- midi_path = inferir_basic_pitch(input_wav_path)
10
-
11
- # Devolver la ruta del archivo MIDI generado
12
- return midi_path
 
 
 
 
 
 
 
 
 
 
 
 
13
 
14
  demo = gr.Interface(
15
  fn=procesar_wav,
 
5
  )
6
 
7
  def procesar_wav(input_wav_path: str):
8
+ if not input_wav_path:
9
+ return None
10
+
11
+ try:
12
+ # 1) Generar archivos midi
13
+ midi_path = inferir_basic_pitch(input_wav_path)
14
+
15
+ # Verificar que se gener贸 el archivo
16
+ if midi_path and os.path.exists(midi_path):
17
+ return midi_path
18
+ else:
19
+ print("Error: No se pudo generar el archivo MIDI")
20
+ return None
21
+
22
+ except Exception as e:
23
+ print(f"Error en procesar_wav: {e}")
24
+ return None
25
 
26
  demo = gr.Interface(
27
  fn=procesar_wav,
model_inference.py CHANGED
@@ -30,8 +30,7 @@ def inferir_basic_pitch(input_file: str) -> str:
30
  midi_path = os.path.join(BASE_MIDI_DIR, f"{base_name}_basic_pitch.mid")
31
 
32
  try:
33
- # Cargar modelo de Basic Pitch
34
- basic_pitch_model = tf.saved_model.load(str(ICASSP_2022_MODEL_PATH))
35
 
36
  # Realizar predicci贸n y guardar archivo MIDI
37
  predict_and_save(
@@ -43,7 +42,18 @@ def inferir_basic_pitch(input_file: str) -> str:
43
  save_notes=False,
44
  )
45
 
46
- return midi_path
 
 
 
 
 
 
 
 
 
 
 
47
 
48
  except Exception as e:
49
  print(f"Error durante la inferencia: {e}")
 
30
  midi_path = os.path.join(BASE_MIDI_DIR, f"{base_name}_basic_pitch.mid")
31
 
32
  try:
33
+ print(f"Procesando archivo: {input_file}")
 
34
 
35
  # Realizar predicci贸n y guardar archivo MIDI
36
  predict_and_save(
 
42
  save_notes=False,
43
  )
44
 
45
+ # Basic Pitch genera el archivo con un nombre espec铆fico
46
+ # Necesitamos encontrar el archivo MIDI generado
47
+ generated_files = [f for f in os.listdir(BASE_MIDI_DIR) if f.endswith('.mid')]
48
+ if generated_files:
49
+ # Tomar el archivo m谩s reciente
50
+ latest_file = max([os.path.join(BASE_MIDI_DIR, f) for f in generated_files],
51
+ key=os.path.getctime)
52
+ print(f"Archivo MIDI generado: {latest_file}")
53
+ return latest_file
54
+ else:
55
+ print("No se gener贸 ning煤n archivo MIDI")
56
+ return None
57
 
58
  except Exception as e:
59
  print(f"Error durante la inferencia: {e}")