Spaces:
Runtime error
Runtime error
| import gradio as gr | |
| import os | |
| import time | |
| import random | |
| import subprocess | |
| def separate_audio(audio_path): | |
| stem_count = 2 | |
| 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=}") | |
| os.makedirs(gradio_temp_path + f"/{audio_filename}/", exist_ok=True) | |
| command = f"spleeter separate -p spleeter:{stem_count}stems {audio_path} -o {gradio_temp_path}/" | |
| command = command.split() | |
| print(f"{command=}") | |
| result = subprocess.run(command) | |
| print(result) | |
| subprocess.run((f"ffmpeg -y -i {gradio_temp_path}/{audio_filename}/accompaniment.wav {gradio_temp_path}/{audio_filename}/accompaniment.mp3").split()) | |
| subprocess.run((f"ffmpeg -y -i {gradio_temp_path}/{audio_filename}/vocals.wav {gradio_temp_path}/{audio_filename}/vocals.mp3").split()) | |
| accompaniment_path = os.path.join(gradio_temp_path, audio_filename, "accompaniment.mp3") | |
| vocals_path = os.path.join(gradio_temp_path, audio_filename, "vocals.mp3") | |
| return accompaniment_path, vocals_path | |
| iface = gr.Interface( | |
| fn=separate_audio, | |
| title="Professional(😂) One click music vocal extraction using Spleeter", | |
| description="Usage Example: you can import the vocal to one of those voice changers then combine instrument with the result to get the normal music but with a changed vocal!", | |
| inputs=[gr.Audio(type="filepath", label="Audio File")], | |
| outputs=[gr.Audio(type="filepath", label='Accompaniment'), gr.Audio(type="filepath", label='Vocals')], | |
| live=True | |
| ) | |
| iface.launch() | |