Spaces:
Running
Running
admin
commited on
Commit
Β·
c74f66c
1
Parent(s):
bf44bd7
sync ms
Browse files
app.py
CHANGED
|
@@ -62,6 +62,12 @@ def get_args(parser: argparse.ArgumentParser):
|
|
| 62 |
default=False,
|
| 63 |
help="whether to show control code",
|
| 64 |
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 65 |
return parser.parse_args()
|
| 66 |
|
| 67 |
|
|
@@ -115,6 +121,7 @@ def generate_music(
|
|
| 115 |
temperature = args.temperature
|
| 116 |
seed = args.seed
|
| 117 |
show_control_code = args.show_control_code
|
|
|
|
| 118 |
print(" Hyper parms ".center(60, "#"), "\n")
|
| 119 |
args_dict: dict = vars(args)
|
| 120 |
for arg in args_dict.keys():
|
|
@@ -123,14 +130,14 @@ def generate_music(
|
|
| 123 |
print("\n", " Output tunes ".center(60, "#"))
|
| 124 |
start_time = time.time()
|
| 125 |
for i in range(num_tunes):
|
| 126 |
-
title = f"T:{emo} Fragment\n"
|
| 127 |
artist = f"C:Generated by AI\n"
|
| 128 |
tune = f"X:{str(i + 1)}\n{title}{artist}{prompt}"
|
| 129 |
lines = re.split(r"(\n)", tune)
|
| 130 |
tune = ""
|
| 131 |
skip = False
|
| 132 |
for line in lines:
|
| 133 |
-
if show_control_code or line[:2] not in ["S:", "B:", "E:"]:
|
| 134 |
if not skip:
|
| 135 |
print(line, end="")
|
| 136 |
tune += line
|
|
@@ -279,7 +286,7 @@ def generate_music(
|
|
| 279 |
return generate_music(args, emo, weights)
|
| 280 |
|
| 281 |
|
| 282 |
-
def
|
| 283 |
if os.path.exists(TEMP_DIR):
|
| 284 |
shutil.rmtree(TEMP_DIR)
|
| 285 |
|
|
@@ -296,6 +303,7 @@ def inference(dataset: str, v: str, a: str, add_chord: bool):
|
|
| 296 |
|
| 297 |
parser = argparse.ArgumentParser()
|
| 298 |
args = get_args(parser)
|
|
|
|
| 299 |
return generate_music(
|
| 300 |
args,
|
| 301 |
emo=emotion,
|
|
@@ -303,7 +311,7 @@ def inference(dataset: str, v: str, a: str, add_chord: bool):
|
|
| 303 |
)
|
| 304 |
|
| 305 |
|
| 306 |
-
def
|
| 307 |
dataset: str,
|
| 308 |
pitch_std: str,
|
| 309 |
mode: str,
|
|
@@ -328,6 +336,7 @@ def infer(
|
|
| 328 |
|
| 329 |
parser = argparse.ArgumentParser()
|
| 330 |
args = get_args(parser)
|
|
|
|
| 331 |
return generate_music(
|
| 332 |
args,
|
| 333 |
emo=emotion,
|
|
@@ -405,7 +414,7 @@ if __name__ == "__main__":
|
|
| 405 |
with gr.Column():
|
| 406 |
gr.Video(
|
| 407 |
"./tutorial.mp4",
|
| 408 |
-
label="
|
| 409 |
show_download_button=False,
|
| 410 |
show_share_button=False,
|
| 411 |
)
|
|
@@ -433,7 +442,7 @@ if __name__ == "__main__":
|
|
| 433 |
value="High",
|
| 434 |
)
|
| 435 |
chord_check = gr.Checkbox(
|
| 436 |
-
label="Generate chords (
|
| 437 |
value=False,
|
| 438 |
)
|
| 439 |
gen_btn = gr.Button("Generate")
|
|
@@ -462,7 +471,7 @@ if __name__ == "__main__":
|
|
| 462 |
label="Volume (dB)",
|
| 463 |
)
|
| 464 |
chord_check_2 = gr.Checkbox(
|
| 465 |
-
label="Generate chords (
|
| 466 |
value=False,
|
| 467 |
)
|
| 468 |
gen_btn_2 = gr.Button("Generate")
|
|
@@ -508,7 +517,7 @@ if __name__ == "__main__":
|
|
| 508 |
)
|
| 509 |
|
| 510 |
gen_btn.click(
|
| 511 |
-
fn=
|
| 512 |
inputs=[dataset_option, valence_radio, arousal_radio, chord_check],
|
| 513 |
outputs=[
|
| 514 |
wav_audio,
|
|
@@ -522,7 +531,7 @@ if __name__ == "__main__":
|
|
| 522 |
)
|
| 523 |
|
| 524 |
gen_btn_2.click(
|
| 525 |
-
fn=
|
| 526 |
inputs=[
|
| 527 |
dataset_option,
|
| 528 |
std_option,
|
|
|
|
| 62 |
default=False,
|
| 63 |
help="whether to show control code",
|
| 64 |
)
|
| 65 |
+
parser.add_argument(
|
| 66 |
+
"-template",
|
| 67 |
+
type=bool,
|
| 68 |
+
default=True,
|
| 69 |
+
help="whether to generate by features",
|
| 70 |
+
)
|
| 71 |
return parser.parse_args()
|
| 72 |
|
| 73 |
|
|
|
|
| 121 |
temperature = args.temperature
|
| 122 |
seed = args.seed
|
| 123 |
show_control_code = args.show_control_code
|
| 124 |
+
use_template = args.template
|
| 125 |
print(" Hyper parms ".center(60, "#"), "\n")
|
| 126 |
args_dict: dict = vars(args)
|
| 127 |
for arg in args_dict.keys():
|
|
|
|
| 130 |
print("\n", " Output tunes ".center(60, "#"))
|
| 131 |
start_time = time.time()
|
| 132 |
for i in range(num_tunes):
|
| 133 |
+
title = f"T:{emo} Fragment\n" if use_template else "T:Melody Fragment\n"
|
| 134 |
artist = f"C:Generated by AI\n"
|
| 135 |
tune = f"X:{str(i + 1)}\n{title}{artist}{prompt}"
|
| 136 |
lines = re.split(r"(\n)", tune)
|
| 137 |
tune = ""
|
| 138 |
skip = False
|
| 139 |
for line in lines:
|
| 140 |
+
if show_control_code or line[:2] not in ["S:", "B:", "E:", "D:"]:
|
| 141 |
if not skip:
|
| 142 |
print(line, end="")
|
| 143 |
tune += line
|
|
|
|
| 286 |
return generate_music(args, emo, weights)
|
| 287 |
|
| 288 |
|
| 289 |
+
def infer_by_template(dataset: str, v: str, a: str, add_chord: bool):
|
| 290 |
if os.path.exists(TEMP_DIR):
|
| 291 |
shutil.rmtree(TEMP_DIR)
|
| 292 |
|
|
|
|
| 303 |
|
| 304 |
parser = argparse.ArgumentParser()
|
| 305 |
args = get_args(parser)
|
| 306 |
+
args.template = True
|
| 307 |
return generate_music(
|
| 308 |
args,
|
| 309 |
emo=emotion,
|
|
|
|
| 311 |
)
|
| 312 |
|
| 313 |
|
| 314 |
+
def infer_by_features(
|
| 315 |
dataset: str,
|
| 316 |
pitch_std: str,
|
| 317 |
mode: str,
|
|
|
|
| 336 |
|
| 337 |
parser = argparse.ArgumentParser()
|
| 338 |
args = get_args(parser)
|
| 339 |
+
args.template = False
|
| 340 |
return generate_music(
|
| 341 |
args,
|
| 342 |
emo=emotion,
|
|
|
|
| 414 |
with gr.Column():
|
| 415 |
gr.Video(
|
| 416 |
"./tutorial.mp4",
|
| 417 |
+
label="Video demo",
|
| 418 |
show_download_button=False,
|
| 419 |
show_share_button=False,
|
| 420 |
)
|
|
|
|
| 442 |
value="High",
|
| 443 |
)
|
| 444 |
chord_check = gr.Checkbox(
|
| 445 |
+
label="Generate chords (coming soon)",
|
| 446 |
value=False,
|
| 447 |
)
|
| 448 |
gen_btn = gr.Button("Generate")
|
|
|
|
| 471 |
label="Volume (dB)",
|
| 472 |
)
|
| 473 |
chord_check_2 = gr.Checkbox(
|
| 474 |
+
label="Generate chords (coming soon)",
|
| 475 |
value=False,
|
| 476 |
)
|
| 477 |
gen_btn_2 = gr.Button("Generate")
|
|
|
|
| 517 |
)
|
| 518 |
|
| 519 |
gen_btn.click(
|
| 520 |
+
fn=infer_by_template,
|
| 521 |
inputs=[dataset_option, valence_radio, arousal_radio, chord_check],
|
| 522 |
outputs=[
|
| 523 |
wav_audio,
|
|
|
|
| 531 |
)
|
| 532 |
|
| 533 |
gen_btn_2.click(
|
| 534 |
+
fn=infer_by_features,
|
| 535 |
inputs=[
|
| 536 |
dataset_option,
|
| 537 |
std_option,
|