Spaces:
Runtime error
Runtime error
root
commited on
Commit
·
989bff9
1
Parent(s):
d01af32
use flac
Browse files
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 |
-
|
|
|
|
| 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="
|
| 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 |
# # 示例按钮
|