TexttoMusicTest / app.py
Master0fNone's picture
Update app.py
87a8aff verified
import gradio as gr
import torch
from transformers import AutoProcessor, MusicgenForConditionalGeneration
# Load Meta's AudioGen model
model_id = "facebook/musicgen-small"
device = "cuda" if torch.cuda.is_available() else "cpu"
processor = AutoProcessor.from_pretrained(model_id)
model = MusicgenForConditionalGeneration.from_pretrained(model_id).to(device)
def generate_audio(text_prompt, duration=5):
"""Generate music based on a text prompt."""
inputs = processor(
text=[text_prompt],
return_tensors="pt"
).to(device)
with torch.no_grad():
audio_waveform = model.generate(**inputs, max_new_tokens=duration * 50)
return audio_waveform[0].cpu().numpy(), 32000 # Sample rate
# Gradio UI
iface = gr.Interface(
fn=generate_audio,
inputs=[
gr.Textbox(label="Music Prompt", placeholder="e.g., A calm piano melody"),
gr.Slider(1, 30, value=5, step=1, label="Duration (seconds)")
],
outputs=gr.Audio(label="Generated Music"),
title="Text-to-Music Generator",
description="Enter a text prompt to generate music using Meta's MusicGen model.",
)
if __name__ == "__main__":
iface.launch()