root commited on
Commit
989bff9
·
1 Parent(s): d01af32
Files changed (1) hide show
  1. app.py +20 -4
app.py CHANGED
@@ -7,7 +7,12 @@ import re
7
  import os
8
  import os.path as op
9
  import torch
 
 
 
 
10
  from download import download_model
 
11
 
12
  # 下载模型
13
  APP_DIR = op.dirname(op.abspath(__file__))
@@ -17,8 +22,6 @@ os.makedirs(base_full_path, exist_ok=True)
17
  download_model(base_full_path, repo_id="lglg666/SongGeneration-base-full", revision="19ebdb6")
18
  print("Successful downloaded model.")
19
 
20
- from levo_inference import LeVoInference
21
-
22
  # 模型初始化
23
  MODEL = LeVoInference(base_full_path)
24
 
@@ -73,6 +76,18 @@ with open(op.join(APP_DIR, 'conf/vocab.yaml'), 'r', encoding='utf-8') as file:
73
  STRUCTS = yaml.safe_load(file)
74
 
75
 
 
 
 
 
 
 
 
 
 
 
 
 
76
  # 模拟歌曲生成函数
77
  def generate_song(lyric, description=None, prompt_audio=None, genre=None, cfg_coef=None, temperature=None, top_k=None, gen_type="mixed", progress=gr.Progress(track_tqdm=True)):
78
  global MODEL
@@ -138,7 +153,8 @@ def generate_song(lyric, description=None, prompt_audio=None, genre=None, cfg_co
138
  "timestamp": datetime.now().isoformat(),
139
  }
140
 
141
- return (sample_rate, audio_data), json.dumps(input_config, indent=2)
 
142
 
143
 
144
  # 创建Gradio界面
@@ -227,7 +243,7 @@ lyrics
227
  generate_bgm_btn = gr.Button("Generate Pure Music", variant="primary")
228
 
229
  with gr.Column():
230
- output_audio = gr.Audio(label="Generated Song", type="numpy")
231
  output_json = gr.JSON(label="Generated Info")
232
 
233
  # # 示例按钮
 
7
  import os
8
  import os.path as op
9
  import torch
10
+ import soundfile as sf
11
+ import numpy as np
12
+ import tempfile
13
+
14
  from download import download_model
15
+ from levo_inference import LeVoInference
16
 
17
  # 下载模型
18
  APP_DIR = op.dirname(op.abspath(__file__))
 
22
  download_model(base_full_path, repo_id="lglg666/SongGeneration-base-full", revision="19ebdb6")
23
  print("Successful downloaded model.")
24
 
 
 
25
  # 模型初始化
26
  MODEL = LeVoInference(base_full_path)
27
 
 
76
  STRUCTS = yaml.safe_load(file)
77
 
78
 
79
+ def save_as_flac(sample_rate, audio_data):
80
+ if isinstance(audio_data, tuple):
81
+ sample_rate, audio_data = audio_data
82
+
83
+ if audio_data.dtype == np.float64:
84
+ audio_data = audio_data.astype(np.float32)
85
+
86
+ temp_file = tempfile.NamedTemporaryFile(delete=False, suffix=".flac")
87
+ sf.write(temp_file, audio_data, sample_rate, format='FLAC')
88
+ return temp_file.name
89
+
90
+
91
  # 模拟歌曲生成函数
92
  def generate_song(lyric, description=None, prompt_audio=None, genre=None, cfg_coef=None, temperature=None, top_k=None, gen_type="mixed", progress=gr.Progress(track_tqdm=True)):
93
  global MODEL
 
153
  "timestamp": datetime.now().isoformat(),
154
  }
155
 
156
+ filepath = save_as_flac(sample_rate, audio_data)
157
+ return filepath, json.dumps(input_config, indent=2)
158
 
159
 
160
  # 创建Gradio界面
 
243
  generate_bgm_btn = gr.Button("Generate Pure Music", variant="primary")
244
 
245
  with gr.Column():
246
+ output_audio = gr.Audio(label="Generated Song", type="filepath")
247
  output_json = gr.JSON(label="Generated Info")
248
 
249
  # # 示例按钮