Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -850,6 +850,38 @@ with gr.Blocks(css="""
|
|
850 |
title="Export Stems + Final Mix Together",
|
851 |
description="Perfect for sharing with producers or archiving"
|
852 |
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
853 |
|
854 |
# Launch Gradio App
|
855 |
demo.launch()
|
|
|
850 |
title="Export Stems + Final Mix Together",
|
851 |
description="Perfect for sharing with producers or archiving"
|
852 |
)
|
853 |
+
# Add this at the bottom of your app.py (or in a dedicated section)
|
854 |
+
|
855 |
+
def huggingface_predict_interface(audio_url, effects, isolate, preset, fmt):
|
856 |
+
# Save base64 audio to file
|
857 |
+
import base64, tempfile
|
858 |
+
header, encoded = audio_url.split(",", 1)
|
859 |
+
audio_binary = base64.b64decode(encoded)
|
860 |
+
with tempfile.NamedTemporaryFile(delete=False, suffix=".mp3") as f:
|
861 |
+
f.write(audio_binary)
|
862 |
+
audio_path = f.name
|
863 |
+
|
864 |
+
# Run your existing process_audio function
|
865 |
+
output_path, _, _, _, _, _ = process_audio(audio_path, effects, isolate, preset, fmt)
|
866 |
+
|
867 |
+
# Return base64 string back
|
868 |
+
with open(output_path, "rb") as f:
|
869 |
+
encoded_out = base64.b64encode(f.read()).decode("utf-8")
|
870 |
+
return f"data:audio/{fmt.lower()};base64,{encoded_out}"
|
871 |
+
|
872 |
+
# Define Gradio interface for API
|
873 |
+
gr.Interface(
|
874 |
+
fn=huggingface_predict_interface,
|
875 |
+
inputs=[
|
876 |
+
gr.Text(label="Audio Data URL"), # base64 string
|
877 |
+
gr.Textbox(label="Effects JSON List"), # or gr.List if calling internally
|
878 |
+
gr.Checkbox(label="Isolate Vocals"),
|
879 |
+
gr.Textbox(label="Preset Name"),
|
880 |
+
gr.Textbox(label="Export Format")
|
881 |
+
],
|
882 |
+
outputs=gr.Text(label="Processed Audio URL"),
|
883 |
+
allow_flagging="never"
|
884 |
+
).launch()
|
885 |
|
886 |
# Launch Gradio App
|
887 |
demo.launch()
|