Loops_malagasy / app.py
Razoa's picture
Update app.py
b86c248 verified
Raw
History Blame Contribute Delete
2.02 kB
import gradio as gr
from audiocraft.models import MusicGen
import torch
# Mampiasa 'small' mba ho haingana sy ho zakaky ny RAM
print("Loading model...")
model = MusicGen.get_pretrained('facebook/musicgen-small')
def generate_malagasy_loop(gadona_soratana, bpm, key, scale):
# Zavamaneno 3 tianao
instruments = "electric guitar, acoustic piano, saxophone"
# Ny baiko ho an'ny AI
prompt = f"A 15-second musical loop, {gadona_soratana} style from Madagascar, {instruments}, {bpm} BPM, {key} {scale}, high quality, seamless."
# Famerana ny halavany ho 15 segondra
model.set_generation_params(duration=15)
# Famoronana ny feo
wav = model.generate([prompt])
# Fitahirizana vonjimaika
path = "loop_2026.wav"
from audiocraft.utils.export_utils import write_wav
write_wav(path, wav[0].cpu(), model.sample_rate)
return path
# CSS manafina ny soratra Gradio eo ambany
custom_css = "footer {visibility: hidden}"
with gr.Blocks(theme=gr.themes.Soft(), css=custom_css) as demo:
gr.Markdown("# 🎹 Malagasy AI Loop Maker 2026")
gr.Markdown("Soraty ny gadona (Salegy, Tsapiky, sns) dia mamorona loop 15s misy Guitar, Piano, ary Sax ny AI.")
with gr.Row():
with gr.Column():
gadona = gr.Textbox(label="Gadona tiana", value="Salegy Modern")
bpm = gr.Slider(minimum=60, maximum=180, value=124, label="BPM")
with gr.Row():
key = gr.Dropdown(["C", "D", "E", "F", "G", "A", "B"], label="Clé", value="G")
scale = gr.Radio(["Major", "Minor"], label="Loko", value="Major")
btn = gr.Button("MAMORONA LOOP (15s)", variant="primary")
with gr.Column():
audio_out = gr.Audio(label="Ny Loop-nao")
gr.Markdown("---")
gr.Markdown("© 2026 - AI Music Lab Madagascar")
btn.click(fn=generate_malagasy_loop, inputs=[gadona, bpm, key, scale], outputs=audio_out)
demo.launch()