SHAKAZAMBA commited on
Commit
b802bc6
1 Parent(s): 6b89706
Files changed (1) hide show
  1. infer.py +26 -25
infer.py CHANGED
@@ -1,36 +1,29 @@
1
- from fastapi import FastAPI, File, UploadFile, HTTPException
2
- from fastapi.responses import FileResponse
3
  from gradio_client import Client
4
  import os
5
  import tempfile
6
 
7
- app = FastAPI()
8
-
9
- # Crea il client Gradio
10
- client = Client("http://127.0.0.1:6969/")
11
 
12
  # Cartella di output in assets
13
  output_folder = "assets/generated"
14
  os.makedirs(output_folder, exist_ok=True)
15
 
16
- @app.post("/process_audio/")
17
- async def process_audio(file: UploadFile = File(...)):
18
- # Verifica l'estensione del file
19
- if not file.filename.lower().endswith(('.wav', '.mp3')):
20
- raise HTTPException(status_code=400, detail="Solo file WAV e MP3 sono supportati.")
 
21
 
22
- # Salva temporaneamente il file caricato
23
- with tempfile.NamedTemporaryFile(delete=False, suffix=os.path.splitext(file.filename)[1]) as temp_file:
24
- temp_file.write(await file.read())
25
- input_file = temp_file.name
26
-
27
  try:
28
  # Prepara il percorso di output
29
- output_filename = f"generated_{os.path.basename(file.filename)}"
30
  output_path = os.path.join(output_folder, output_filename)
31
 
32
  # Esegui la predizione
33
- result = client.predict(
34
  -24, # Pece
35
  0, # Raggio del filtro
36
  0, # Rapporto feature di ricerca
@@ -50,14 +43,22 @@ async def process_audio(file: UploadFile = File(...)):
50
  api_name="/run_infer_script"
51
  )
52
 
53
- # Restituisci il file elaborato
54
- return FileResponse(output_path, media_type="audio/wav", filename=output_filename)
55
 
56
  except Exception as e:
57
- raise HTTPException(status_code=500, detail=f"Errore durante l'elaborazione: {str(e)}")
58
 
59
- finally:
60
- # Pulisci il file temporaneo
61
- os.unlink(input_file)
 
 
 
 
 
 
 
 
62
 
63
- # Non è necessario includere il blocco if __name__ == "__main__" in uno spazio Hugging Face
 
 
1
+ import gradio as gr
 
2
  from gradio_client import Client
3
  import os
4
  import tempfile
5
 
6
+ # Crea il client Gradio per l'inferenza
7
+ inference_client = Client("http://127.0.0.1:6969/")
 
 
8
 
9
  # Cartella di output in assets
10
  output_folder = "assets/generated"
11
  os.makedirs(output_folder, exist_ok=True)
12
 
13
+ def process_audio(audio_file):
14
+ if audio_file is None:
15
+ return None, "Nessun file audio caricato."
16
+
17
+ # Ottieni il percorso temporaneo del file caricato
18
+ input_file = audio_file.name
19
 
 
 
 
 
 
20
  try:
21
  # Prepara il percorso di output
22
+ output_filename = f"generated_{os.path.basename(input_file)}"
23
  output_path = os.path.join(output_folder, output_filename)
24
 
25
  # Esegui la predizione
26
+ result = inference_client.predict(
27
  -24, # Pece
28
  0, # Raggio del filtro
29
  0, # Rapporto feature di ricerca
 
43
  api_name="/run_infer_script"
44
  )
45
 
46
+ return output_path, f"Elaborazione completata. File salvato in {output_path}"
 
47
 
48
  except Exception as e:
49
+ return None, f"Errore durante l'elaborazione: {str(e)}"
50
 
51
+ # Creazione dell'interfaccia Gradio
52
+ iface = gr.Interface(
53
+ fn=process_audio,
54
+ inputs=gr.Audio(type="filepath", label="Carica file audio (WAV o MP3)"),
55
+ outputs=[
56
+ gr.Audio(type="filepath", label="Audio elaborato"),
57
+ gr.Textbox(label="Messaggio")
58
+ ],
59
+ title="Elaborazione Audio con Applio",
60
+ description="Carica un file audio WAV o MP3 per elaborarlo con Applio."
61
+ )
62
 
63
+ # Avvio dell'interfaccia
64
+ iface.launch()