Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import torchaudio | |
| from audiocraft.models import AudioGen | |
| from audiocraft.data.audio import audio_write | |
| model = AudioGen.get_pretrained('facebook/audiogen-medium') | |
| def infer(prompt, duration): | |
| model.set_generation_params(duration=duration) # generate 5 seconds. | |
| descriptions = [prompt] | |
| wav = model.generate(descriptions) # generates n samples (referring to the number n of prompts in descriptions) | |
| for idx, one_wav in enumerate(wav): | |
| # Will save under {idx}.wav, with loudness normalization at -14 db LUFS. | |
| audio_write(f'{idx}', one_wav.cpu(), model.sample_rate, strategy="loudness", loudness_compressor=True) | |
| return "0.wav" | |
| css=""" | |
| #col-container{ | |
| margin: 0 auto; | |
| max-width: 640px; | |
| } | |
| """ | |
| with gr.Blocks(css=css) as demo: | |
| with gr.Column(elem_id="col-container"): | |
| gr.HTML(""" | |
| <h2 style="text-align: center;"> | |
| AudioGen: Textually-guided audio generation | |
| </h2> | |
| <p style="text-align: center;"> | |
| </p> | |
| """) | |
| prompt_in = gr.Textbox(label="audio prompt") | |
| with gr.Row(): | |
| duration = gr.Slider(label="Duration", minimum=5, maximum=10, step=5, value=5) | |
| submit_btn = gr.Button("Submit") | |
| audio_o = gr.Audio(label="AudioGen result") | |
| submit_btn.click( | |
| fn=infer, | |
| inputs=[prompt_in, duration], | |
| outputs=[audio_o] | |
| ) | |
| demo.queue().launch(debug=True) |