EconLab AI commited on
Commit
bd44176
·
1 Parent(s): 866a7b6

Add Loading

Browse files
Files changed (1) hide show
  1. app.py +41 -30
app.py CHANGED
@@ -3,50 +3,61 @@ from transformers import pipeline
3
  import scipy.io.wavfile
4
  import os
5
 
6
- # Stelle sicher, dass der static-Ordner existiert
7
  os.makedirs('static', exist_ok=True)
8
 
9
- print("Lade MusicGen Modell... (Dies kann einige Minuten dauern)")
10
- synthesiser = pipeline(
11
- "text-to-audio",
12
  "facebook/musicgen-small",
13
  model_kwargs={"attn_implementation": "eager"}
14
  )
15
- print("Modell erfolgreich geladen!")
16
 
17
  # Funktion zur Musikgenerierung
18
  def generate_music(description):
19
  try:
20
- print(f"Generiere Musik für: '{description}'")
21
- music = synthesiser(description, forward_params={"do_sample": True})
22
-
23
- # Datei speichern
24
  output_path = "static/generated_music.wav"
 
25
  scipy.io.wavfile.write(
26
- output_path,
27
- rate=music["sampling_rate"],
28
  data=music["audio"]
29
  )
30
- print("Musik erfolgreich generiert!")
31
- return output_path # Rückgabe des Dateipfads
32
  except Exception as e:
33
- print(f"Fehler bei der Musikgenerierung: {str(e)}")
34
- return f"Fehler: {str(e)}"
35
 
36
- # Gradio-Interface
37
- description = "Gib eine Beschreibung ein, um Musik zu generieren:"
38
- title = "MusicGen: Text-to-Audio Generator"
39
- examples = [["A relaxing piece of piano music for a calm evening."]]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
40
 
41
- interface = gr.Interface(
42
- fn=generate_music,
43
- inputs=gr.Textbox(label="Musikbeschreibung", placeholder="Z.B. Ein fröhliches Lied mit Gitarren."),
44
- outputs=gr.Audio(label="Generierte Musik", type="filepath"),
45
- title=title,
46
- description=description,
47
- examples=examples
48
- )
49
-
50
- # App starten
51
  if __name__ == "__main__":
52
- interface.launch()
 
 
3
  import scipy.io.wavfile
4
  import os
5
 
6
+ # Sicherstellen, dass der 'static'-Ordner existiert
7
  os.makedirs('static', exist_ok=True)
8
 
9
+ # MusicGen-Pipeline initialisieren
10
+ synthesizer = pipeline(
11
+ "text-to-audio",
12
  "facebook/musicgen-small",
13
  model_kwargs={"attn_implementation": "eager"}
14
  )
 
15
 
16
  # Funktion zur Musikgenerierung
17
  def generate_music(description):
18
  try:
19
+ # Musik generieren
20
+ music = synthesizer(description, forward_params={"do_sample": True})
21
+ # Ausgabe-Pfad definieren
 
22
  output_path = "static/generated_music.wav"
23
+ # Musikdatei speichern
24
  scipy.io.wavfile.write(
25
+ output_path,
26
+ rate=music["sampling_rate"],
27
  data=music["audio"]
28
  )
29
+ return output_path # Pfad zur generierten Musikdatei zurückgeben
 
30
  except Exception as e:
31
+ return str(e) # Fehlernachricht zurückgeben
 
32
 
33
+ # Gradio-Interface erstellen
34
+ with gr.Blocks() as demo:
35
+ gr.Markdown("# 🎶 MusicGen: Text-zu-Audio Generator")
36
+ gr.Markdown("Gib eine Beschreibung ein, um ein Musikstück zu generieren.")
37
+
38
+ with gr.Row():
39
+ with gr.Column(scale=3):
40
+ description = gr.Textbox(
41
+ label="Musikbeschreibung",
42
+ placeholder="Z.B. Ein fröhliches Lied mit Gitarren.",
43
+ lines=3
44
+ )
45
+ generate_button = gr.Button("🎼 Generieren")
46
+ with gr.Column(scale=2):
47
+ output = gr.Audio(label="Generierte Musik", type="filepath", autoplay=True)
48
+
49
+ # Beispiel-Eingaben
50
+ examples = [
51
+ ["Ein entspannendes Klavierstück für einen ruhigen Abend."],
52
+ ["Ein energiegeladener Rocksong mit E-Gitarren."],
53
+ ["Sanfte Hintergrundmusik mit Naturgeräuschen."]
54
+ ]
55
+ gr.Examples(examples=examples, inputs=description)
56
+
57
+ # Ereignisbindung
58
+ generate_button.click(fn=generate_music, inputs=description, outputs=output)
59
 
60
+ # Anwendung starten
 
 
 
 
 
 
 
 
 
61
  if __name__ == "__main__":
62
+ demo.launch()
63
+ # ddd