Rooni commited on
Commit
7156f5b
·
verified ·
1 Parent(s): d722a91

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +28 -8
app.py CHANGED
@@ -1,19 +1,39 @@
1
  import gradio as gr
2
- from transformers import pipeline
 
3
 
4
- # Загружаем модель MusicGen (примерное название, так как такой модели нет в библиотеке transformers)
5
- # Предполагаем, что модель возвращает аудиофайл в формате mp3
6
- music_generator = pipeline("music-generation", model="musicgen")
7
 
8
  def generate_music(prompt):
 
 
 
 
 
 
 
9
  # Генерируем музыку на основе текстового запроса
10
- # Предполагаем, что результатом является путь к файлу mp3
11
- music_path = music_generator(prompt)
12
- return music_path
 
 
 
 
 
 
 
 
 
 
 
 
13
 
14
  with gr.Blocks() as demo:
15
  with gr.Row():
16
- prompt_input = gr.Textbox(lines=3, placeholder="Введите текст для генерации музыки...", label="Текстовый запрос")
17
  with gr.Row():
18
  generate_button = gr.Button("Создать")
19
  with gr.Row():
 
1
  import gradio as gr
2
+ from transformers import AutoProcessor, MusicgenForConditionalGeneration
3
+ import torch
4
 
5
+ # Загружаем предварительно обученный процессор и модель
6
+ processor = AutoProcessor.from_pretrained("facebook/musicgen-small")
7
+ model = MusicgenForConditionalGeneration.from_pretrained("facebook/musicgen-small")
8
 
9
  def generate_music(prompt):
10
+ # Преобразуем текстовый запрос в формат, подходящий для модели
11
+ inputs = processor(
12
+ text=[prompt],
13
+ padding=True,
14
+ return_tensors="pt",
15
+ )
16
+
17
  # Генерируем музыку на основе текстового запроса
18
+ with torch.no_grad(): # Отключаем расчет градиентов для экономии памяти
19
+ audio_values = model.generate(**inputs, do_sample=True, guidance_scale=3, max_new_tokens=256)
20
+
21
+ # В зависимости от формата выходных данных модели, нужно преобразовать их в аудио
22
+ # В этом примере предполагается, что audio_values - это тензор с аудиоданными
23
+ audio = audio_values.cpu().numpy().flatten() # Преобразуем в одномерный массив
24
+
25
+ # Сохраняем аудио в файл
26
+ # Это пример, вам необходимо использовать правильный формат и библиотеку для сохранения аудио
27
+ # Например, используя soundfile или scipy.io.wavfile для сохранения в WAV
28
+ import soundfile as sf
29
+ audio_file_path = "generated_music.wav"
30
+ sf.write(audio_file_path, audio, samplerate=16000) # Предполагаемая частота дискретизации
31
+
32
+ return audio_file_path
33
 
34
  with gr.Blocks() as demo:
35
  with gr.Row():
36
+ prompt_input = gr.Textbox(lines=3, placeholder="Введите описание музыки...", label="Текстовый запрос")
37
  with gr.Row():
38
  generate_button = gr.Button("Создать")
39
  with gr.Row():