File size: 2,279 Bytes
36ad38b |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
import streamlit as st
st.set_page_config(initial_sidebar_state="collapsed")
import sys
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)
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)
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:
song_list = [librosa.load(f"../input_songs/{song}.mp3", sr=22050)[0] for song in song_options]
print(song_options)
spectrogram, generated_song, model_name = generation_utilities.generate_songs(song_list, similarity=similarity, quality=500, merging_quality=100, device='cuda')
st.session_state['song_name'] = song_options[0]
st.session_state['song_list'] = [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
# saving temps
sf.write(f"temp.wav", generated_song, 22050)
np.save("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!") |