audiogen / audiogen_demo.py
ljcortesr
Add application file
cc64d3e
import torchaudio
from audiocraft.models import AudioGen
from audiocraft.data.audio import audio_write
import os
import gradio as gr
def generate_audio(descriptions):
if not os.path.exists('audio_files'):
os.makedirs('audio_files')
model = AudioGen.get_pretrained('facebook/audiogen-medium')
model.set_generation_params(duration=5) # generate 5 seconds.
wav = model.generate([descriptions]) # generates 3 samples.
results = []
for idx, one_wav in enumerate(wav):
filename = f'{descriptions}.wav'
file_path = os.path.join('audio_files', filename)
audio_write(file_path, one_wav.cpu(), model.sample_rate, strategy="loudness", loudness_compressor=True, add_suffix=False)
print(f"Generated audio for '{descriptions}'")
results.append(file_path)
return results[0]
def ui_full():
with gr. Blocks() as interface:
gr.Markdown(
"""
# AudioGen Demo
presented at: [Simple and Controllable Music Generation](https://huggingface.co/)
"""
)
with gr.Row():
descriptions = gr.Textbox(lines=2, label="Enter descriptions of the audio to generate")
with gr.Row():
generate_button = gr.Button("Generate Audio")
with gr.Row():
output = gr.Audio(label="Generated Audio")
generate_button.click(fn=generate_audio, inputs=descriptions, outputs=[output])
interface.queue().launch()
ui_full()