Improve error handling and Basic Pitch implementation
Browse files- app.py +17 -5
- 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 |
-
|
| 9 |
-
|
| 10 |
-
|
| 11 |
-
|
| 12 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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 |
-
|
| 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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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}")
|