Spaces:
Runtime error
Runtime error
| import gradio as gr | |
| import os | |
| import random | |
| import subprocess | |
| def separate_audio(audio_path, stem_count): | |
| print(f"{audio_path=}") | |
| head, tail = os.path.split(audio_path) | |
| gradio_temp_path = head | |
| audio_filename = tail.split('.')[0] | |
| print(f"{gradio_temp_path=}") | |
| print(f"{audio_filename=}") | |
| print(f"{stem_count=}") | |
| command = f"spleeter separate -p spleeter:{stem_count}stems {audio_path}" | |
| command = command.split() | |
| print(f"{command=}") | |
| result = subprocess.run(command) | |
| print(result) | |
| randomnumber = str(random.randint(111111111, 999999999)) | |
| paths = [] | |
| if stem_count == 2: | |
| paths.append(gradio_temp_path + f"/separated_audio/{randomnumber}/accompaniment.wav") | |
| paths.append(gradio_temp_path + f"/separated_audio/{randomnumber}/vocals.wav") | |
| elif stem_count == 4 or stem_count == 5: | |
| paths.append(gradio_temp_path + f"/separated_audio/{randomnumber}/vocals.wav") | |
| paths.append(gradio_temp_path + f"/separated_audio/{randomnumber}/drums.wav") | |
| paths.append(gradio_temp_path + f"/separated_audio/{randomnumber}/bass.wav") | |
| paths.append(gradio_temp_path + f"/separated_audio/{randomnumber}/other.wav") | |
| if stem_count == 5: | |
| paths.append(gradio_temp_path + f"/separated_audio/{randomnumber}/piano.wav") | |
| # Return the audio file paths as a list of Audio components | |
| return [gr.Audio(file_path=path) for path in paths] | |
| # Define the Gradio interface | |
| iface = gr.Interface( | |
| fn=separate_audio, | |
| inputs=[gr.Audio(type="filepath"), gr.Radio([2, 4, 5])], | |
| outputs=[gr.Audio(label='Accompaniment'), gr.Audio(label='Vocals'), gr.Audio(label='Drums'), gr.Audio(label='Bass'), gr.Audio(label='Other'), gr.Audio(label='Piano')] | |
| ) | |
| # Launch the interface | |
| iface.launch() | |