| import gradio as gr |
| from transformers import pipeline |
| import scipy.io.wavfile as wavfile |
| import numpy as np |
|
|
| |
| model_id = "facebook/musicgen-small" |
| synthesizer = pipeline("text-to-audio", model=model_id) |
|
|
| def generate_music(prompt): |
| |
| output = synthesizer(prompt, forward_params={"do_sample": True}) |
| |
| |
| sampling_rate = output["sampling_rate"] |
| audio_data = output["audio"] |
| |
| |
| |
| return (sampling_rate, audio_data.T) |
|
|
| |
| with gr.Blocks() as demo: |
| gr.Markdown("# 🎵 Open Hearts Music Generator") |
| gr.Markdown("Enter your cinematic prompt below to generate a unique track.") |
| |
| with gr.Row(): |
| with gr.Column(): |
| input_text = gr.Textbox( |
| label="Your Music Prompt", |
| placeholder="A cinematic pop-folk crossover with piano and strings...", |
| lines=3 |
| ) |
| generate_btn = gr.Button("Generate Music", variant="primary") |
| |
| with gr.Column(): |
| audio_output = gr.Audio(label="Resulting Audio") |
|
|
| |
| generate_btn.click(fn=generate_music, inputs=input_text, outputs=audio_output) |
|
|
| |
| if __name__ == "__main__": |
| demo.launch() |