# app.py import streamlit as st from finalproject import generate_reversible_audio, plot_spectrogram from scipy.io.wavfile import write as write_wav import tempfile st.title("Reversible Audio Generation") prompt1 = st.text_input("Prompt 1 (forward direction)", "A dog barking") prompt2 = st.text_input("Prompt 2 (reverse direction)", "A cat meowing") if st.button("Generate Audio"): with st.spinner("Generating..."): spec, audio, flipped_spec, flipped_audio = generate_reversible_audio(prompt1, prompt2) # Display spectrograms st.subheader("Forward Spectrogram") st.image("data:image/png;base64," + plot_spectrogram(spec)) st.subheader("Reverse Spectrogram") st.image("data:image/png;base64," + plot_spectrogram(flipped_spec)) # Save and play audio with tempfile.NamedTemporaryFile(suffix=".wav", delete=False) as f1: write_wav(f1.name, 16000, audio) st.audio(f1.name, format="audio/wav") with tempfile.NamedTemporaryFile(suffix=".wav", delete=False) as f2: write_wav(f2.name, 16000, flipped_audio) st.audio(f2.name, format="audio/wav")