teticio/audio-diffusion
54
1import argparse2 3import gradio as gr4 5from audiodiffusion import AudioDiffusion6 7 8def generate_spectrogram_audio_and_loop(model_id):9 audio_diffusion = AudioDiffusion(model_id=model_id)10 image, (sample_rate,11 audio) = audio_diffusion.generate_spectrogram_and_audio()12 loop = AudioDiffusion.loop_it(audio, sample_rate)13 if loop is None:14 loop = audio15 return image, (sample_rate, audio), (sample_rate, loop)16 17 18demo = gr.Interface(19 fn=generate_spectrogram_audio_and_loop,20 title="Audio Diffusion",21 description="Generate audio using Huggingface diffusers.\22 The models without 'latent' or 'ddim' give better results but take about \23 20 minutes without a GPU. For GPU, you can use \24 [colab](https://colab.research.google.com/github/teticio/audio-diffusion/blob/master/notebooks/gradio_app.ipynb) \25 to run this app.",26 inputs=[27 gr.Dropdown(label="Model",28 choices=[29 "teticio/audio-diffusion-256",30 "teticio/audio-diffusion-breaks-256",31 "teticio/audio-diffusion-instrumental-hiphop-256",32 "teticio/audio-diffusion-ddim-256",33 "teticio/latent-audio-diffusion-256",34 "teticio/latent-audio-diffusion-ddim-256"35 ],36 value="teticio/latent-audio-diffusion-ddim-256")37 ],38 outputs=[39 gr.Image(label="Mel spectrogram", image_mode="L"),40 gr.Audio(label="Audio"),41 gr.Audio(label="Loop"),42 ],43 allow_flagging="never")44 45if __name__ == "__main__":46 parser = argparse.ArgumentParser()47 parser.add_argument("--port", type=int)48 parser.add_argument("--server", type=int)49 args = parser.parse_args()50 demo.launch(server_name=args.server or "0.0.0.0", server_port=args.port)51 