Spaces:
Runtime error
Runtime error
| import os | |
| from scipy.io.wavfile import write | |
| import gradio as gr | |
| import yt_dlp | |
| os.makedirs("ytdl", exist_ok=True) | |
| def separator(audio): | |
| os.makedirs("output", exist_ok=True) | |
| write('test.wav', audio[0], audio[1]) | |
| result = os.system("audio-separator test.wav --model_filename model_bs_roformer_ep_317_sdr_12.9755.ckpt --output_dir=./output --output_format=wav") | |
| files = [ | |
| "./output/test_(Instrumental)_model_bs_roformer_ep_317_sdr_12.wav", | |
| "./output/test_(Vocals)_model_bs_roformer_ep_317_sdr_12.wav" | |
| ] | |
| for file in files: | |
| if not os.path.isfile(file): | |
| print(f"File not found: {file}") | |
| else: | |
| print(f"File exists: {file}") | |
| return files | |
| def download_audio(url): | |
| ydl_opts = { | |
| 'format': 'bestaudio/best', | |
| 'outtmpl': 'ytdl/%(title)s.%(ext)s', | |
| 'postprocessors': [{ | |
| 'key': 'FFmpegExtractAudio', | |
| 'preferredcodec': 'mp3', | |
| 'preferredquality': '192', | |
| }], | |
| } | |
| with yt_dlp.YoutubeDL(ydl_opts) as ydl: | |
| info_dict = ydl.extract_info(url, download=True) | |
| file_path = ydl.prepare_filename(info_dict).rsplit('.', 1)[0] + '.mp3' | |
| return file_path | |
| def download_and_show(url): | |
| file_path = download_audio(url) | |
| return file_path | |
| with gr.Blocks() as demo: | |
| with gr.Tab("Separator"): | |
| audio_input = gr.Audio(type="numpy", label="Input") | |
| output1 = gr.Audio(type="filepath", label="Stem 1", interactive=False) | |
| output2 = gr.Audio(type="filepath", label="Stem 2", interactive=False) | |
| submit_button = gr.Button("Separate") | |
| submit_button.click( | |
| separator, | |
| inputs=[audio_input], | |
| outputs=[output1, output2] | |
| ) | |
| with gr.Tab("Download YouTube audio for separation"): | |
| url = gr.Textbox(label="URL to YouTube") | |
| download = gr.Button("Download") | |
| download.click( | |
| download_and_show, | |
| inputs=[url], | |
| outputs=[audio_input] | |
| ) | |
| demo.launch() | |