import gradio as gr import numpy as np from audioldm import text_to_audio, seed_everything, build_model audioldm = build_model() def text2audio(text, duration, guidance_scale, random_seed): # print(text, length, guidance_scale) waveform = text_to_audio(audioldm, text, random_seed, duration=duration, guidance_scale=guidance_scale, n_candidate_gen_per_text=1) # [bs, 1, samples] waveform = [(16000, wave[0]) for wave in waveform] # waveform = [(16000, np.random.randn(16000)), (16000, np.random.randn(16000))] return waveform # iface = gr.Interface(fn=text2audio, inputs=[ # gr.Textbox(value="A man is speaking in a huge room", max_lines=1), # gr.Slider(2.5, 10, value=5, step=2.5), # gr.Slider(0, 5, value=2.5, step=0.5), # gr.Number(value=42) # ], outputs=[gr.Audio(label="Output", type="numpy"), gr.Audio(label="Output", type="numpy")], # allow_flagging="never" # ) # iface.launch(share=True) iface = gr.Blocks() with iface: gr.HTML( """

Text-to-Audio Generation with AudioLDM

[Paper] [Project page]

""" ) with gr.Group(): with gr.Box(): ############# Input textbox = gr.Textbox(value="A hammer is hitting a wooden surface", max_lines=1) duration = gr.Slider(2.5, 10, value=5, step=2.5) guidance_scale = gr.Slider(0, 5, value=2.5, step=0.5) seed = gr.Number(value=42) ############# Output outputs=[gr.Audio(label="Output", type="numpy"), gr.Audio(label="Output", type="numpy")] btn = gr.Button("Submit").style(full_width=True) btn.click(text2audio, inputs=[textbox, duration, guidance_scale, seed], outputs=outputs) gr.HTML('''
''') iface.queue(concurrency_count=2) iface.launch(debug=True, share=True)