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.\ | |
This takes about 20 minutes without a GPU, so why not make yourself a \ | |
cup of tea in the meantime? (Or try the teticio/audio-diffusion-ddim-256 \ | |
model which is faster.)") | |
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" | |
]) | |
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") | |