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!")