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