Spaces:
Runtime error
Runtime error
| from io import BytesIO | |
| import streamlit as st | |
| import soundfile as sf | |
| from librosa.util import normalize | |
| from librosa.beat import beat_track | |
| from audiodiffusion import AudioDiffusion | |
| if __name__ == "__main__": | |
| st.header("Audio Diffusion") | |
| st.markdown( | |
| "Generate audio using Huggingface diffusers.\ | |
| The models without 'latent' or 'ddim' give better results but take about \ | |
| 20 minutes without a GPU.", ) | |
| model_id = st.selectbox("Model", [ | |
| "teticio/audio-diffusion-256", "teticio/audio-diffusion-breaks-256", | |
| "teticio/audio-diffusion-instrumental-hiphop-256", | |
| "teticio/audio-diffusion-ddim-256", | |
| "teticio/latent-audio-diffusion-256", | |
| "teticio/latent-audio-diffusion-ddim-256" | |
| ], | |
| index=5) | |
| audio_diffusion = AudioDiffusion(model_id=model_id) | |
| if st.button("Generate"): | |
| st.markdown("Generating...") | |
| image, (sample_rate, | |
| audio) = audio_diffusion.generate_spectrogram_and_audio() | |
| st.image(image, caption="Mel spectrogram") | |
| buffer = BytesIO() | |
| sf.write(buffer, normalize(audio), sample_rate, format="WAV") | |
| st.audio(buffer, format="audio/wav") | |
| audio = AudioDiffusion.loop_it(audio, sample_rate) | |
| if audio is not None: | |
| st.markdown("Loop") | |
| buffer = BytesIO() | |
| sf.write(buffer, normalize(audio), sample_rate, format="WAV") | |
| st.audio(buffer, format="audio/wav") | |