Orpheus / ui /app.py
baakaani's picture
bug fix
070fb63
import streamlit as st
st.set_page_config(initial_sidebar_state="collapsed")
import sys
sys.path.append('../')
sys.path.append('./')
import generation_utilities
import numpy as np
import librosa
from glob import glob
import soundfile as sf
import importlib
import numpy as np
importlib.reload(generation_utilities)
from mega import Mega
import os
os.environ["KMP_DUPLICATE_LIB_OK"]="TRUE"
if 'song_name' not in st.session_state:
st.session_state['song_name'] = None
if 'similarity' not in st.session_state:
st.session_state['similarity'] = None
if 'model_name' not in st.session_state:
st.session_state['model_name'] = None
if 'song_list' not in st.session_state:
st.session_state['song_list'] = None
form1 = st.form(key="form1")
song_default = np.random.choice(["22", "Anti-Hero", "Back-To-December","Blank-Space","Cardigan","Delicate","Lover","Love-Story","Willow","You-Belong-With-Me"])
similarity_default = np.random.uniform(0.8, 0.99).__round__(2)
user_id = form1.text_input("Enter your user ID")
song_options = form1.multiselect("Select songs from library",["22", "Anti-Hero", "Back-To-December","Blank-Space","Cardigan","Delicate","Lover","Love-Story","Willow","You-Belong-With-Me"], default=[song_default])
similarity = form1.slider("Similarity", 0.0, 1.0, similarity_default)
submit = form1.form_submit_button("Submit")
if submit:
print(os.path.join(os.getcwd(),"input_songs/"))
song_list = [librosa.load(os.path.join(os.getcwd(),f"input_songs/{song}.mp3"), sr=22050)[0] for song in song_options]
print(song_options,print(song_list))
spectrogram, generated_song, model_name = generation_utilities.generate_songs(song_list, similarity=similarity, quality=500, merging_quality=100)
st.session_state['song_name'] = song_options[0]
st.session_state['song_list'] = [os.path.join(os.getcwd(),f"input_songs/{song}.mp3") for song in song_options]
st.session_state['song_name'] = '_'.join(song_options)
st.session_state['similarity'] = similarity
st.session_state['model_name'] = model_name
st.session_state['user_id'] = user_id
# saving temps
sf.write(os.path.join(os.getcwd(),f"ui/temp.wav"), generated_song, 22050)
np.save(os.path.join(os.getcwd(),"ui/temp.npy"), spectrogram)
st.switch_page("pages/rating.py")
# st.audio(generated_song, format='audio/wav',sample_rate=22050)
# generated_audio_path = "generated_audio.wav"
# sf.write(generated_audio_path, generated_song, 22050)
# st.audio(generated_audio_path, format='audio/wav')
# st.write("Generated!")