import os import gradio as gr import tempfile import subprocess from uuid import uuid4 from audio_sep_splitter import batch_process def split_audio(audio_filepath): output_file = "" stem = "voice" aggressiveness_factor = 2 splitter = "phoenix" vocal_file = batch_process(audio_filepath, output_file, stem, aggressiveness_factor, splitter) mp3_vocal_file = f"{vocal_file}.mp3" subprocess.run(f"ffmpeg -i '{vocal_file}' '{mp3_vocal_file}'", shell=True) return mp3_vocal_file with gr.Blocks() as demo: gr.Markdown("# Audio Source Separator") with gr.Row(): input_file = gr.File(label="Input audio file", type="filepath", file_types=["audio"]) output_file = gr.File(label="Output audio file", type="filepath", file_types=["audio"]) submit_btn = gr.Button("Submit") submit_btn.click(split_audio, input_file, output_file) demo.queue().launch(auth=(os.environ.get("USERNAME"), os.environ.get("PASSWORD")))