Spaces:
Runtime error
Runtime error
import streamlit as st | |
import os | |
import tempfile | |
import subprocess | |
# Set Streamlit app title | |
st.title("Audio Processing App") | |
# Function to process the audio file | |
def separate_audio(audio_path): | |
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=}") | |
# command = f"spleeter separate -o {gradio_temp_path} -p spleeter:2stems {audio_path}" | |
# command = f"ls {gradio_temp_path}" | |
command = f"cp {audio_path} output/test.wav" | |
command = command.split() | |
print(f"{command=}") | |
result = subprocess.run(command) | |
print(result) | |
print("--------") | |
accompaniment_path = f"{gradio_temp_path}/{audio_filename}/accompaniment.wav" | |
vocals_path = f"{gradio_temp_path}/{audio_filename}/vocals.wav" | |
print(f"{accompaniment_path=}") | |
print(os.path.exists(accompaniment_path)) | |
print(f"{vocals_path=}") | |
print(os.path.exists(vocals_path)) | |
return vocals_path, accompaniment_path | |
# Streamlit app content | |
st.write("Upload an audio file (.wav)") | |
uploaded_file = st.file_uploader("Choose a file", type=["wav","mp3"]) | |
if uploaded_file is not None: | |
# Save the uploaded file to a temporary location | |
with tempfile.NamedTemporaryFile(delete=False) as temp_file: | |
temp_file.write(uploaded_file.read()) | |
temp_file_path = temp_file.name | |
# Process the uploaded audio file | |
vocals_path, accompaniment_path = separate_audio(temp_file_path) | |
# Display the output files for download | |
st.write("Output Files:") | |
st.audio(vocals_path, format="audio/wav", start_time=0) | |
st.audio(accompaniment_path, format="audio/wav", start_time=0) | |