studio / musicgen_app.py
Ava2lon's picture
Upload 213 files
bac782e verified
Raw
History Blame Contribute Delete
1.54 kB
from fastapi import FastAPI
from fastapi.responses import FileResponse
import gradio as gr
from generate import generate_music
# ======================
# FASTAPI BACKEND
# ======================
api = FastAPI(title="AI Background Music Generator")
@api.get("/health")
def health():
return {"status": "running"}
@api.post("/generate")
async def api_generate(prompt: str, duration: int = 10):
file_path = generate_music(prompt, duration)
return FileResponse(
path=file_path,
media_type="audio/wav",
filename="music.wav"
)
# ======================
# GRADIO UI
# ======================
def ui_generate(prompt, duration):
audio = generate_music(prompt, duration)
return audio
with gr.Blocks(
title="AI Background Music Generator",
theme=gr.themes.Soft(),
) as demo:
gr.Markdown("""
# 🎵 AI Background Music Generator
Generate royalty-free background music instantly.
""")
prompt = gr.Textbox(
label="Music Description",
placeholder="Soft cinematic nasheed style..."
)
duration = gr.Slider(
minimum=5,
maximum=60,
value=10,
step=1,
label="Duration (seconds)"
)
btn = gr.Button("Generate")
output = gr.Audio(type="filepath")
btn.click(
fn=ui_generate,
inputs=[prompt, duration],
outputs=output
)
# ======================
# IMPORTANT FIX
# ======================
# Mount GRADIO as ROOT APP
app = gr.mount_gradio_app(
api,
demo,
path="/",
)