Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| from transformers import pipeline | |
| import scipy.io.wavfile | |
| import os | |
| # Stelle sicher, dass der static-Ordner existiert | |
| os.makedirs('static', exist_ok=True) | |
| print("Lade MusicGen Modell... (Dies kann einige Minuten dauern)") | |
| synthesiser = pipeline( | |
| "text-to-audio", | |
| "facebook/musicgen-small", | |
| model_kwargs={"attn_implementation": "eager"} | |
| ) | |
| print("Modell erfolgreich geladen!") | |
| # Funktion zur Musikgenerierung | |
| def generate_music(description): | |
| try: | |
| print(f"Generiere Musik für: '{description}'") | |
| music = synthesiser(description, forward_params={"do_sample": True}) | |
| # Datei speichern | |
| output_path = "static/generated_music.wav" | |
| scipy.io.wavfile.write( | |
| output_path, | |
| rate=music["sampling_rate"], | |
| data=music["audio"] | |
| ) | |
| print("Musik erfolgreich generiert!") | |
| return output_path # Rückgabe des Dateipfads | |
| except Exception as e: | |
| print(f"Fehler bei der Musikgenerierung: {str(e)}") | |
| return f"Fehler: {str(e)}" | |
| # Gradio-Interface | |
| description = "Gib eine Beschreibung ein, um Musik zu generieren:" | |
| title = "MusicGen: Text-to-Audio Generator" | |
| examples = [["A relaxing piece of piano music for a calm evening."]] | |
| interface = gr.Interface( | |
| fn=generate_music, | |
| inputs=gr.Textbox(label="Musikbeschreibung", placeholder="Z.B. Ein fröhliches Lied mit Gitarren."), | |
| outputs=gr.Audio(label="Generierte Musik", type="filepath"), | |
| title=title, | |
| description=description, | |
| examples=examples | |
| ) | |
| # App starten | |
| if __name__ == "__main__": | |
| interface.launch() | |