CoolFace
Apppublic

teticio/audio-diffusion

sourceHugging Facegpl-3.0updated 4y agoView on Hugging Face
54likes
app.py51 linesDownload Raw Back to root
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