DanLeBossDeESGI commited on
Commit
0671817
·
1 Parent(s): 8d468ec

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +12 -31
app.py CHANGED
@@ -1,37 +1,18 @@
1
- import torch
2
- from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
3
- from music21 import converter, stream
4
 
5
- # Chargement du modèle
6
- tokenizer = AutoTokenizer.from_pretrained('sander-wood/text-to-music')
7
- model = AutoModelForSeq2SeqLM.from_pretrained('sander-wood/text-to-music')
8
 
9
- # Fonction pour générer de la musique à partir du texte
10
- def generate_music_from_text(text):
11
- input_ids = tokenizer.encode(text, return_tensors='pt', max_length=1024, truncation=True)
12
- outputs = model.generate(input_ids=input_ids, max_length=200, num_return_sequences=1)
13
 
14
- generated_music = tokenizer.decode(outputs[0], skip_special_tokens=True)
15
- return generated_music
 
 
 
16
 
17
- # Interface Streamlit
18
- import streamlit as st
19
 
20
- st.title("Text to Music Generator")
21
 
22
- text_input = st.text_area("Entrez le texte que vous souhaitez transformer en musique:")
23
- if st.button("Générer de la musique"):
24
- if text_input:
25
- generated_music = generate_music_from_text(text_input)
26
- st.subheader("Musique générée:")
27
- st.write(generated_music)
28
-
29
- # Ajoutez une longueur de note par défaut dans la notation ABC
30
- generated_music_with_default_length = f"L:1/4\n{generated_music}"
31
-
32
- # Conversion de la musique en fichier MIDI et affichage
33
- midi_stream = converter.parse(generated_music_with_default_length)
34
- st.subheader("Écoutez la musique générée:")
35
- st.write(midi_stream.show('midi', fp=None, return_data=True))
36
-
37
- st.write("Projet créé avec HuggingFace Transformers et Music21.")
 
1
+ from transformers import AutoProcessor, MusicgenForConditionalGeneration
 
 
2
 
 
 
 
3
 
4
+ processor = AutoProcessor.from_pretrained("facebook/musicgen-large")
5
+ model = MusicgenForConditionalGeneration.from_pretrained("facebook/musicgen-large")
 
 
6
 
7
+ inputs = processor(
8
+ text=["80s pop track with bassy drums and synth", "90s rock song with loud guitars and heavy drums"],
9
+ padding=True,
10
+ return_tensors="pt",
11
+ )
12
 
13
+ audio_values = model.generate(**inputs, max_new_tokens=256)
 
14
 
15
+ from IPython.display import Audio
16
 
17
+ sampling_rate = model.config.audio_encoder.sampling_rate
18
+ Audio(audio_values[0].numpy(), rate=sampling_rate)