NeoPy commited on
Commit
8abf83f
·
verified ·
1 Parent(s): e851f76

Update main/app/app.py

Browse files
Files changed (1) hide show
  1. main/app/app.py +244 -239
main/app/app.py CHANGED
@@ -74,6 +74,7 @@ with gr.Blocks(title=" Ultimate RVC Maker ⚡", theme=theme) as app:
74
  with gr.Accordion(translations["use_url"], open=False):
75
  url = gr.Textbox(label=translations["url_audio"], value="", placeholder="https://www.youtube.com/...", scale=6)
76
  download_button = gr.Button(translations["downloads"])
 
77
  with gr.Column():
78
  with gr.Row():
79
  clean_strength = gr.Slider(label=translations["clean_strength"], info=translations["clean_strength_info"], minimum=0, maximum=1, value=0.5, step=0.1, interactive=True, visible=cleaner.value)
@@ -147,6 +148,7 @@ with gr.Blocks(title=" Ultimate RVC Maker ⚡", theme=theme) as app:
147
  model_index = gr.Dropdown(label=translations["index_path"], choices=index_path, value=index_path[0] if len(index_path) >= 1 else "", interactive=True, allow_custom_value=True)
148
  refesh = gr.Button(translations["refesh"])
149
 
 
150
  with gr.Row():
151
  with gr.Column():
152
  audio_select = gr.Dropdown(label=translations["select_separate"], choices=[], value="", interactive=True, allow_custom_value=True, visible=False)
@@ -432,149 +434,112 @@ with gr.Blocks(title=" Ultimate RVC Maker ⚡", theme=theme) as app:
432
  api_name="convert_audio"
433
  )
434
 
435
- with gr.TabItem(translations["convert_with_whisper"], visible=configs.get("convert_with_whisper", True)):
436
- gr.Markdown(f"## {translations['convert_with_whisper']}")
 
437
  with gr.Row():
438
- gr.Markdown(translations["convert_with_whisper_info"])
439
  with gr.Row():
440
- with gr.Column():
441
- with gr.Group():
442
- with gr.Row():
443
- cleaner2 = gr.Checkbox(label=translations["clear_audio"], value=False, interactive=True)
444
- autotune2 = gr.Checkbox(label=translations["autotune"], value=False, interactive=True)
445
- checkpointing2 = gr.Checkbox(label=translations["memory_efficient_training"], value=False, interactive=True)
446
- formant_shifting2 = gr.Checkbox(label=translations["formantshift"], value=False, interactive=True)
447
  with gr.Row():
448
- num_spk = gr.Slider(minimum=2, maximum=8, step=1, info=translations["num_spk_info"], label=translations["num_spk"], value=2, interactive=True)
449
- with gr.Row():
450
- with gr.Column():
451
- convert_button3 = gr.Button(translations["convert_audio"], variant="primary")
 
 
 
 
 
 
 
 
 
452
  with gr.Row():
453
- with gr.Column():
454
- with gr.Accordion(translations["model_accordion"] + " 1", open=True):
455
- with gr.Row():
456
- model_pth2 = gr.Dropdown(label=translations["model_name"], choices=model_name, value=model_name[0] if len(model_name) >= 1 else "", interactive=True, allow_custom_value=True)
457
- model_index2 = gr.Dropdown(label=translations["index_path"], choices=index_path, value=index_path[0] if len(index_path) >= 1 else "", interactive=True, allow_custom_value=True)
458
- with gr.Row():
459
- refesh2 = gr.Button(translations["refesh"])
460
- with gr.Row():
461
- pitch3 = gr.Slider(minimum=-20, maximum=20, step=1, info=translations["pitch_info"], label=translations["pitch"], value=0, interactive=True)
462
- index_strength2 = gr.Slider(label=translations["index_strength"], info=translations["index_strength_info"], minimum=0, maximum=1, value=0.5, step=0.01, interactive=True, visible=model_index2.value != "")
463
- with gr.Accordion(translations["input_output"], open=False):
464
- with gr.Column():
465
- export_format2 = gr.Radio(label=translations["export_format"], info=translations["export_info"], choices=["wav", "mp3", "flac", "ogg", "opus", "m4a", "mp4", "aac", "alac", "wma", "aiff", "webm", "ac3"], value="wav", interactive=True)
466
- input_audio1 = gr.Dropdown(label=translations["audio_path"], value="", choices=paths_for_files, info=translations["provide_audio"], allow_custom_value=True, interactive=True)
467
- output_audio2 = gr.Textbox(label=translations["output_path"], value="audios/output.wav", placeholder="audios/output.wav", info=translations["output_path_info"], interactive=True)
468
- with gr.Column():
469
- refesh4 = gr.Button(translations["refesh"])
470
- with gr.Row():
471
- input2 = gr.File(label=translations["drop_audio"], file_types=[".wav", ".mp3", ".flac", ".ogg", ".opus", ".m4a", ".mp4", ".aac", ".alac", ".wma", ".aiff", ".webm", ".ac3"])
472
- with gr.Column():
473
- with gr.Accordion(translations["model_accordion"] + " 2", open=True):
474
- with gr.Row():
475
- model_pth3 = gr.Dropdown(label=translations["model_name"], choices=model_name, value=model_name[0] if len(model_name) >= 1 else "", interactive=True, allow_custom_value=True)
476
- model_index3 = gr.Dropdown(label=translations["index_path"], choices=index_path, value=index_path[0] if len(index_path) >= 1 else "", interactive=True, allow_custom_value=True)
477
- with gr.Row():
478
- refesh3 = gr.Button(translations["refesh"])
479
- with gr.Row():
480
- pitch4 = gr.Slider(minimum=-20, maximum=20, step=1, info=translations["pitch_info"], label=translations["pitch"], value=0, interactive=True)
481
- index_strength3 = gr.Slider(label=translations["index_strength"], info=translations["index_strength_info"], minimum=0, maximum=1, value=0.5, step=0.01, interactive=True, visible=model_index3.value != "")
482
- with gr.Accordion(translations["setting"], open=False):
483
- with gr.Row():
484
- model_size = gr.Radio(label=translations["model_size"], info=translations["model_size_info"], choices=["tiny", "tiny.en", "base", "base.en", "small", "small.en", "medium", "medium.en", "large-v1", "large-v2", "large-v3", "large-v3-turbo"], value="medium", interactive=True)
485
- with gr.Accordion(translations["f0_method"], open=False):
486
- with gr.Group():
487
- with gr.Row():
488
- onnx_f0_mode4 = gr.Checkbox(label=translations["f0_onnx_mode"], info=translations["f0_onnx_mode_info"], value=False, interactive=True)
489
- unlock_full_method2 = gr.Checkbox(label=translations["f0_unlock"], info=translations["f0_unlock_info"], value=False, interactive=True)
490
- method3 = gr.Radio(label=translations["f0_method"], info=translations["f0_method_info"], choices=method_f0+["hybrid"], value="rmvpe", interactive=True)
491
- hybrid_method3 = gr.Dropdown(label=translations["f0_method_hybrid"], info=translations["f0_method_hybrid_info"], choices=["hybrid[pm+dio]", "hybrid[pm+crepe-tiny]", "hybrid[pm+crepe]", "hybrid[pm+fcpe]", "hybrid[pm+rmvpe]", "hybrid[pm+harvest]", "hybrid[pm+yin]", "hybrid[dio+crepe-tiny]", "hybrid[dio+crepe]", "hybrid[dio+fcpe]", "hybrid[dio+rmvpe]", "hybrid[dio+harvest]", "hybrid[dio+yin]", "hybrid[crepe-tiny+crepe]", "hybrid[crepe-tiny+fcpe]", "hybrid[crepe-tiny+rmvpe]", "hybrid[crepe-tiny+harvest]", "hybrid[crepe+fcpe]", "hybrid[crepe+rmvpe]", "hybrid[crepe+harvest]", "hybrid[crepe+yin]", "hybrid[fcpe+rmvpe]", "hybrid[fcpe+harvest]", "hybrid[fcpe+yin]", "hybrid[rmvpe+harvest]", "hybrid[rmvpe+yin]", "hybrid[harvest+yin]"], value="hybrid[pm+dio]", interactive=True, allow_custom_value=True, visible=method3.value == "hybrid")
492
- hop_length3 = gr.Slider(label="Hop length", info=translations["hop_length_info"], minimum=1, maximum=512, value=128, step=1, interactive=True, visible=False)
493
- with gr.Accordion(translations["hubert_model"], open=False):
494
- embed_mode3 = gr.Radio(label=translations["embed_mode"], info=translations["embed_mode_info"], value="fairseq", choices=embedders_mode, interactive=True, visible=True)
495
- embedders3 = gr.Radio(label=translations["hubert_model"], info=translations["hubert_info"], choices=embedders_model, value="hubert_base", interactive=True)
496
- custom_embedders3 = gr.Textbox(label=translations["modelname"], info=translations["modelname_info"], value="", placeholder="hubert_base", interactive=True, visible=embedders3.value == "custom")
497
- with gr.Column():
498
- clean_strength3 = gr.Slider(label=translations["clean_strength"], info=translations["clean_strength_info"], minimum=0, maximum=1, value=0.5, step=0.1, interactive=True, visible=cleaner2.value)
499
- f0_autotune_strength3 = gr.Slider(minimum=0, maximum=1, label=translations["autotune_rate"], info=translations["autotune_rate_info"], value=1, step=0.1, interactive=True, visible=autotune.value)
500
- resample_sr3 = gr.Slider(minimum=0, maximum=96000, label=translations["resample"], info=translations["resample_info"], value=0, step=1, interactive=True)
501
- filter_radius3 = gr.Slider(minimum=0, maximum=7, label=translations["filter_radius"], info=translations["filter_radius_info"], value=3, step=1, interactive=True)
502
- volume_envelope3 = gr.Slider(minimum=0, maximum=1, label=translations["volume_envelope"], info=translations["volume_envelope_info"], value=1, step=0.1, interactive=True)
503
- protect3 = gr.Slider(minimum=0, maximum=1, label=translations["protect"], info=translations["protect_info"], value=0.5, step=0.01, interactive=True)
504
  with gr.Row():
505
- formant_qfrency3 = gr.Slider(value=1.0, label=translations["formant_qfrency"] + " 1", info=translations["formant_qfrency"], minimum=0.0, maximum=16.0, step=0.1, interactive=True, visible=False)
506
- formant_timbre3 = gr.Slider(value=1.0, label=translations["formant_timbre"] + " 1", info=translations["formant_timbre"], minimum=0.0, maximum=16.0, step=0.1, interactive=True, visible=False)
 
 
507
  with gr.Row():
508
- formant_qfrency4 = gr.Slider(value=1.0, label=translations["formant_qfrency"] + " 2", info=translations["formant_qfrency"], minimum=0.0, maximum=16.0, step=0.1, interactive=True, visible=False)
509
- formant_timbre4 = gr.Slider(value=1.0, label=translations["formant_timbre"] + " 2", info=translations["formant_timbre"], minimum=0.0, maximum=16.0, step=0.1, interactive=True, visible=False)
510
- with gr.Row():
511
- gr.Markdown(translations["input_output"])
512
- with gr.Row():
513
- play_audio2 = gr.Audio(show_download_button=True, interactive=False, label=translations["input_audio"])
514
- play_audio3 = gr.Audio(show_download_button=True, interactive=False, label=translations["output_file_tts_convert"])
515
- with gr.Row():
516
- autotune2.change(fn=visible, inputs=[autotune2], outputs=[f0_autotune_strength3])
517
- cleaner2.change(fn=visible, inputs=[cleaner2], outputs=[clean_strength3])
518
- method3.change(fn=lambda method, hybrid: [visible(method == "hybrid"), hoplength_show(method, hybrid)], inputs=[method3, hybrid_method3], outputs=[hybrid_method3, hop_length3])
519
- with gr.Row():
520
- hybrid_method3.change(fn=hoplength_show, inputs=[method3, hybrid_method3], outputs=[hop_length3])
521
- refesh2.click(fn=change_models_choices, inputs=[], outputs=[model_pth2, model_index2])
522
- model_pth2.change(fn=get_index, inputs=[model_pth2], outputs=[model_index2])
523
  with gr.Row():
524
- refesh3.click(fn=change_models_choices, inputs=[], outputs=[model_pth3, model_index3])
525
- model_pth3.change(fn=get_index, inputs=[model_pth3], outputs=[model_index3])
526
- input2.upload(fn=lambda audio_in: shutil.move(audio_in.name, os.path.join("audios")), inputs=[input2], outputs=[input_audio1])
 
 
 
 
 
 
 
 
 
 
 
 
527
  with gr.Row():
528
- input_audio1.change(fn=lambda audio: audio if os.path.isfile(audio) else None, inputs=[input_audio1], outputs=[play_audio2])
529
- formant_shifting2.change(fn=lambda a: [visible(a)]*4, inputs=[formant_shifting2], outputs=[formant_qfrency3, formant_timbre3, formant_qfrency4, formant_timbre4])
530
- embedders3.change(fn=lambda embedders: visible(embedders == "custom"), inputs=[embedders3], outputs=[custom_embedders3])
 
 
 
 
 
 
531
  with gr.Row():
532
- refesh4.click(fn=change_audios_choices, inputs=[input_audio1], outputs=[input_audio1])
533
- model_index2.change(fn=index_strength_show, inputs=[model_index2], outputs=[index_strength2])
534
- model_index3.change(fn=index_strength_show, inputs=[model_index3], outputs=[index_strength3])
535
  with gr.Row():
536
- unlock_full_method2.change(fn=unlock_f0, inputs=[unlock_full_method2], outputs=[method3])
537
- embed_mode3.change(fn=visible_embedders, inputs=[embed_mode3], outputs=[embedders3])
538
- convert_button3.click(
539
- fn=convert_with_whisper,
540
  inputs=[
541
- num_spk,
542
- model_size,
543
- cleaner2,
544
- clean_strength3,
545
- autotune2,
546
- f0_autotune_strength3,
547
- checkpointing2,
548
- model_pth2,
549
- model_pth3,
550
- model_index2,
551
- model_index3,
552
- pitch3,
553
- pitch4,
554
- index_strength2,
555
- index_strength3,
556
- export_format2,
557
- input_audio1,
558
- output_audio2,
559
- onnx_f0_mode4,
560
- method3,
561
- hybrid_method3,
562
- hop_length3,
563
- embed_mode3,
564
- embedders3,
565
- custom_embedders3,
566
- resample_sr3,
567
- filter_radius3,
568
- volume_envelope3,
569
- protect3,
570
- formant_shifting2,
571
- formant_qfrency3,
572
- formant_timbre3,
573
- formant_qfrency4,
574
- formant_timbre4,
575
  ],
576
- outputs=[play_audio3],
577
- api_name="convert_with_whisper"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
578
  )
579
 
580
  with gr.TabItem(translations["convert_text"], visible=configs.get("tts_tab", True)):
@@ -723,113 +688,7 @@ with gr.Blocks(title=" Ultimate RVC Maker ⚡", theme=theme) as app:
723
  api_name="convert_tts"
724
  )
725
 
726
- with gr.TabItem(translations["downloads"], visible=configs.get("downloads_tab", True)):
727
- gr.Markdown(translations["download_markdown"])
728
- with gr.Row():
729
- gr.Markdown(translations["download_markdown_2"])
730
- with gr.Row():
731
- with gr.Accordion(translations["model_download"], open=True):
732
- with gr.Row():
733
- downloadmodel = gr.Radio(label=translations["model_download_select"], choices=[translations["download_url"], translations["download_from_csv"], translations["search_models"], translations["upload"]], interactive=True, value=translations["download_url"])
734
- with gr.Row():
735
- gr.Markdown("___")
736
- with gr.Column():
737
- with gr.Row():
738
- url_input = gr.Textbox(label=translations["model_url"], value="", placeholder="https://...", scale=6)
739
- download_model_name = gr.Textbox(label=translations["modelname"], value="", placeholder=translations["modelname"], scale=2)
740
- url_download = gr.Button(value=translations["downloads"], scale=2)
741
- with gr.Column():
742
- model_browser = gr.Dropdown(choices=models.keys(), label=translations["model_warehouse"], scale=8, allow_custom_value=True, visible=False)
743
- download_from_browser = gr.Button(value=translations["get_model"], scale=2, variant="primary", visible=False)
744
- with gr.Column():
745
- search_name = gr.Textbox(label=translations["name_to_search"], placeholder=translations["modelname"], interactive=True, scale=8, visible=False)
746
- search = gr.Button(translations["search_2"], scale=2, visible=False)
747
- search_dropdown = gr.Dropdown(label=translations["select_download_model"], value="", choices=[], allow_custom_value=True, interactive=False, visible=False)
748
- download = gr.Button(translations["downloads"], variant="primary", visible=False)
749
- with gr.Column():
750
- model_upload = gr.File(label=translations["drop_model"], file_types=[".pth", ".onnx", ".index", ".zip"], visible=False)
751
- with gr.Row():
752
- with gr.Accordion(translations["download_pretrained_2"], open=False):
753
- with gr.Row():
754
- pretrain_download_choices = gr.Radio(label=translations["model_download_select"], choices=[translations["download_url"], translations["list_model"], translations["upload"]], value=translations["download_url"], interactive=True)
755
- with gr.Row():
756
- gr.Markdown("___")
757
- with gr.Column():
758
- with gr.Row():
759
- pretrainD = gr.Textbox(label=translations["pretrained_url"].format(dg="D"), value="", info=translations["only_huggingface"], placeholder="https://...", interactive=True, scale=4)
760
- pretrainG = gr.Textbox(label=translations["pretrained_url"].format(dg="G"), value="", info=translations["only_huggingface"], placeholder="https://...", interactive=True, scale=4)
761
- download_pretrain_button = gr.Button(translations["downloads"], scale=2)
762
- with gr.Column():
763
- with gr.Row():
764
- pretrain_choices = gr.Dropdown(label=translations["select_pretrain"], info=translations["select_pretrain_info"], choices=list(fetch_pretrained_data().keys()), value="Titan_Medium", allow_custom_value=True, interactive=True, scale=6, visible=False)
765
- sample_rate_pretrain = gr.Dropdown(label=translations["pretrain_sr"], info=translations["pretrain_sr"], choices=["48k", "40k", "32k"], value="48k", interactive=True, visible=False)
766
- download_pretrain_choices_button = gr.Button(translations["downloads"], scale=2, variant="primary", visible=False)
767
- with gr.Row():
768
- pretrain_upload_g = gr.File(label=translations["drop_pretrain"].format(dg="G"), file_types=[".pth"], visible=False)
769
- pretrain_upload_d = gr.File(label=translations["drop_pretrain"].format(dg="D"), file_types=[".pth"], visible=False)
770
- with gr.Row():
771
- url_download.click(
772
- fn=download_model,
773
- inputs=[
774
- url_input,
775
- download_model_name
776
- ],
777
- outputs=[url_input],
778
- api_name="download_model"
779
- )
780
- download_from_browser.click(
781
- fn=lambda model: download_model(models[model], model),
782
- inputs=[model_browser],
783
- outputs=[model_browser],
784
- api_name="download_browser"
785
- )
786
- with gr.Row():
787
- downloadmodel.change(fn=change_download_choices, inputs=[downloadmodel], outputs=[url_input, download_model_name, url_download, model_browser, download_from_browser, search_name, search, search_dropdown, download, model_upload])
788
- search.click(fn=search_models, inputs=[search_name], outputs=[search_dropdown, download])
789
- model_upload.upload(fn=save_drop_model, inputs=[model_upload], outputs=[model_upload])
790
- download.click(
791
- fn=lambda model: download_model(model_options[model], model),
792
- inputs=[search_dropdown],
793
- outputs=[search_dropdown],
794
- api_name="search_models"
795
- )
796
- with gr.Row():
797
- pretrain_download_choices.change(fn=change_download_pretrained_choices, inputs=[pretrain_download_choices], outputs=[pretrainD, pretrainG, download_pretrain_button, pretrain_choices, sample_rate_pretrain, download_pretrain_choices_button, pretrain_upload_d, pretrain_upload_g])
798
- pretrain_choices.change(fn=update_sample_rate_dropdown, inputs=[pretrain_choices], outputs=[sample_rate_pretrain])
799
- with gr.Row():
800
- download_pretrain_button.click(
801
- fn=download_pretrained_model,
802
- inputs=[
803
- pretrain_download_choices,
804
- pretrainD,
805
- pretrainG
806
- ],
807
- outputs=[pretrainD],
808
- api_name="download_pretrain_link"
809
- )
810
- download_pretrain_choices_button.click(
811
- fn=download_pretrained_model,
812
- inputs=[
813
- pretrain_download_choices,
814
- pretrain_choices,
815
- sample_rate_pretrain
816
- ],
817
- outputs=[pretrain_choices],
818
- api_name="download_pretrain_choices"
819
- )
820
- pretrain_upload_g.upload(
821
- fn=lambda pretrain_upload_g: shutil.move(pretrain_upload_g.name, os.path.join("assets", "models", "pretrained_custom")),
822
- inputs=[pretrain_upload_g],
823
- outputs=[],
824
- api_name="upload_pretrain_g"
825
- )
826
- pretrain_upload_d.upload(
827
- fn=lambda pretrain_upload_d: shutil.move(pretrain_upload_d.name, os.path.join("assets", "models", "pretrained_custom")),
828
- inputs=[pretrain_upload_d],
829
- outputs=[],
830
- api_name="upload_pretrain_d"
831
- )
832
-
833
  with gr.TabItem(translations["training_model"], visible=configs.get("training_tab", True)):
834
  gr.Markdown(f"## {translations['training_model']}")
835
  with gr.Row():
@@ -1041,6 +900,152 @@ with gr.Blocks(title=" Ultimate RVC Maker ⚡", theme=theme) as app:
1041
  api_name="training_model"
1042
  )
1043
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1044
  with gr.TabItem(translations["audio_editing"], visible=configs.get("audioldm2", True)):
1045
  gr.Markdown(translations["audio_editing_info"])
1046
  with gr.Row():
@@ -1537,7 +1542,7 @@ with gr.Blocks(title=" Ultimate RVC Maker ⚡", theme=theme) as app:
1537
 
1538
  with gr.Row():
1539
  gr.Markdown(translations["terms_of_use"])
1540
- with gr.Row():
1541
  gr.Markdown(translations["exemption"])
1542
 
1543
  logger.info(translations["start_app"])
 
74
  with gr.Accordion(translations["use_url"], open=False):
75
  url = gr.Textbox(label=translations["url_audio"], value="", placeholder="https://www.youtube.com/...", scale=6)
76
  download_button = gr.Button(translations["downloads"])
77
+ with gr.Row():
78
  with gr.Column():
79
  with gr.Row():
80
  clean_strength = gr.Slider(label=translations["clean_strength"], info=translations["clean_strength_info"], minimum=0, maximum=1, value=0.5, step=0.1, interactive=True, visible=cleaner.value)
 
148
  model_index = gr.Dropdown(label=translations["index_path"], choices=index_path, value=index_path[0] if len(index_path) >= 1 else "", interactive=True, allow_custom_value=True)
149
  refesh = gr.Button(translations["refesh"])
150
 
151
+
152
  with gr.Row():
153
  with gr.Column():
154
  audio_select = gr.Dropdown(label=translations["select_separate"], choices=[], value="", interactive=True, allow_custom_value=True, visible=False)
 
434
  api_name="convert_audio"
435
  )
436
 
437
+
438
+ with gr.TabItem(translations["downloads"], visible=configs.get("downloads_tab", True)):
439
+ gr.Markdown(translations["download_markdown"])
440
  with gr.Row():
441
+ gr.Markdown(translations["download_markdown_2"])
442
  with gr.Row():
443
+ with gr.Accordion(translations["model_download"], open=True):
444
+ with gr.Row():
445
+ downloadmodel = gr.Radio(label=translations["model_download_select"], choices=[translations["download_url"], translations["download_from_csv"], translations["search_models"], translations["upload"]], interactive=True, value=translations["download_url"])
446
+ with gr.Row():
447
+ gr.Markdown("___")
448
+ with gr.Column():
 
449
  with gr.Row():
450
+ url_input = gr.Textbox(label=translations["model_url"], value="", placeholder="https://...", scale=6)
451
+ download_model_name = gr.Textbox(label=translations["modelname"], value="", placeholder=translations["modelname"], scale=2)
452
+ url_download = gr.Button(value=translations["downloads"], scale=2)
453
+ with gr.Column():
454
+ model_browser = gr.Dropdown(choices=models.keys(), label=translations["model_warehouse"], scale=8, allow_custom_value=True, visible=False)
455
+ download_from_browser = gr.Button(value=translations["get_model"], scale=2, variant="primary", visible=False)
456
+ with gr.Column():
457
+ search_name = gr.Textbox(label=translations["name_to_search"], placeholder=translations["modelname"], interactive=True, scale=8, visible=False)
458
+ search = gr.Button(translations["search_2"], scale=2, visible=False)
459
+ search_dropdown = gr.Dropdown(label=translations["select_download_model"], value="", choices=[], allow_custom_value=True, interactive=False, visible=False)
460
+ download = gr.Button(translations["downloads"], variant="primary", visible=False)
461
+ with gr.Column():
462
+ model_upload = gr.File(label=translations["drop_model"], file_types=[".pth", ".onnx", ".index", ".zip"], visible=False)
463
  with gr.Row():
464
+ with gr.Accordion(translations["download_pretrained_2"], open=False):
465
+ with gr.Row():
466
+ pretrain_download_choices = gr.Radio(label=translations["model_download_select"], choices=[translations["download_url"], translations["list_model"], translations["upload"]], value=translations["download_url"], interactive=True)
467
+ with gr.Row():
468
+ gr.Markdown("___")
469
+ with gr.Column():
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
470
  with gr.Row():
471
+ pretrainD = gr.Textbox(label=translations["pretrained_url"].format(dg="D"), value="", info=translations["only_huggingface"], placeholder="https://...", interactive=True, scale=4)
472
+ pretrainG = gr.Textbox(label=translations["pretrained_url"].format(dg="G"), value="", info=translations["only_huggingface"], placeholder="https://...", interactive=True, scale=4)
473
+ download_pretrain_button = gr.Button(translations["downloads"], scale=2)
474
+ with gr.Column():
475
  with gr.Row():
476
+ pretrain_choices = gr.Dropdown(label=translations["select_pretrain"], info=translations["select_pretrain_info"], choices=list(fetch_pretrained_data().keys()), value="Titan_Medium", allow_custom_value=True, interactive=True, scale=6, visible=False)
477
+ sample_rate_pretrain = gr.Dropdown(label=translations["pretrain_sr"], info=translations["pretrain_sr"], choices=["48k", "40k", "32k"], value="48k", interactive=True, visible=False)
478
+ download_pretrain_choices_button = gr.Button(translations["downloads"], scale=2, variant="primary", visible=False)
479
+ with gr.Row():
480
+ pretrain_upload_g = gr.File(label=translations["drop_pretrain"].format(dg="G"), file_types=[".pth"], visible=False)
481
+ pretrain_upload_d = gr.File(label=translations["drop_pretrain"].format(dg="D"), file_types=[".pth"], visible=False)
 
 
 
 
 
 
 
 
 
482
  with gr.Row():
483
+ url_download.click(
484
+ fn=download_model,
485
+ inputs=[
486
+ url_input,
487
+ download_model_name
488
+ ],
489
+ outputs=[url_input],
490
+ api_name="download_model"
491
+ )
492
+ download_from_browser.click(
493
+ fn=lambda model: download_model(models[model], model),
494
+ inputs=[model_browser],
495
+ outputs=[model_browser],
496
+ api_name="download_browser"
497
+ )
498
  with gr.Row():
499
+ downloadmodel.change(fn=change_download_choices, inputs=[downloadmodel], outputs=[url_input, download_model_name, url_download, model_browser, download_from_browser, search_name, search, search_dropdown, download, model_upload])
500
+ search.click(fn=search_models, inputs=[search_name], outputs=[search_dropdown, download])
501
+ model_upload.upload(fn=save_drop_model, inputs=[model_upload], outputs=[model_upload])
502
+ download.click(
503
+ fn=lambda model: download_model(model_options[model], model),
504
+ inputs=[search_dropdown],
505
+ outputs=[search_dropdown],
506
+ api_name="search_models"
507
+ )
508
  with gr.Row():
509
+ pretrain_download_choices.change(fn=change_download_pretrained_choices, inputs=[pretrain_download_choices], outputs=[pretrainD, pretrainG, download_pretrain_button, pretrain_choices, sample_rate_pretrain, download_pretrain_choices_button, pretrain_upload_d, pretrain_upload_g])
510
+ pretrain_choices.change(fn=update_sample_rate_dropdown, inputs=[pretrain_choices], outputs=[sample_rate_pretrain])
 
511
  with gr.Row():
512
+ download_pretrain_button.click(
513
+ fn=download_pretrained_model,
 
 
514
  inputs=[
515
+ pretrain_download_choices,
516
+ pretrainD,
517
+ pretrainG
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
518
  ],
519
+ outputs=[pretrainD],
520
+ api_name="download_pretrain_link"
521
+ )
522
+ download_pretrain_choices_button.click(
523
+ fn=download_pretrained_model,
524
+ inputs=[
525
+ pretrain_download_choices,
526
+ pretrain_choices,
527
+ sample_rate_pretrain
528
+ ],
529
+ outputs=[pretrain_choices],
530
+ api_name="download_pretrain_choices"
531
+ )
532
+ pretrain_upload_g.upload(
533
+ fn=lambda pretrain_upload_g: shutil.move(pretrain_upload_g.name, os.path.join("assets", "models", "pretrained_custom")),
534
+ inputs=[pretrain_upload_g],
535
+ outputs=[],
536
+ api_name="upload_pretrain_g"
537
+ )
538
+ pretrain_upload_d.upload(
539
+ fn=lambda pretrain_upload_d: shutil.move(pretrain_upload_d.name, os.path.join("assets", "models", "pretrained_custom")),
540
+ inputs=[pretrain_upload_d],
541
+ outputs=[],
542
+ api_name="upload_pretrain_d"
543
  )
544
 
545
  with gr.TabItem(translations["convert_text"], visible=configs.get("tts_tab", True)):
 
688
  api_name="convert_tts"
689
  )
690
 
691
+
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
692
  with gr.TabItem(translations["training_model"], visible=configs.get("training_tab", True)):
693
  gr.Markdown(f"## {translations['training_model']}")
694
  with gr.Row():
 
900
  api_name="training_model"
901
  )
902
 
903
+ with gr.TabItem(translations["convert_with_whisper"], visible=configs.get("convert_with_whisper", True)):
904
+ gr.Markdown(f"## {translations['convert_with_whisper']}")
905
+ with gr.Row():
906
+ gr.Markdown(translations["convert_with_whisper_info"])
907
+ with gr.Row():
908
+ with gr.Column():
909
+ with gr.Group():
910
+ with gr.Row():
911
+ cleaner2 = gr.Checkbox(label=translations["clear_audio"], value=False, interactive=True)
912
+ autotune2 = gr.Checkbox(label=translations["autotune"], value=False, interactive=True)
913
+ checkpointing2 = gr.Checkbox(label=translations["memory_efficient_training"], value=False, interactive=True)
914
+ formant_shifting2 = gr.Checkbox(label=translations["formantshift"], value=False, interactive=True)
915
+ with gr.Row():
916
+ num_spk = gr.Slider(minimum=2, maximum=8, step=1, info=translations["num_spk_info"], label=translations["num_spk"], value=2, interactive=True)
917
+ with gr.Row():
918
+ with gr.Column():
919
+ convert_button3 = gr.Button(translations["convert_audio"], variant="primary")
920
+ with gr.Row():
921
+ with gr.Column():
922
+ with gr.Accordion(translations["model_accordion"] + " 1", open=True):
923
+ with gr.Row():
924
+ model_pth2 = gr.Dropdown(label=translations["model_name"], choices=model_name, value=model_name[0] if len(model_name) >= 1 else "", interactive=True, allow_custom_value=True)
925
+ model_index2 = gr.Dropdown(label=translations["index_path"], choices=index_path, value=index_path[0] if len(index_path) >= 1 else "", interactive=True, allow_custom_value=True)
926
+ with gr.Row():
927
+ refesh2 = gr.Button(translations["refesh"])
928
+ with gr.Row():
929
+ pitch3 = gr.Slider(minimum=-20, maximum=20, step=1, info=translations["pitch_info"], label=translations["pitch"], value=0, interactive=True)
930
+ index_strength2 = gr.Slider(label=translations["index_strength"], info=translations["index_strength_info"], minimum=0, maximum=1, value=0.5, step=0.01, interactive=True, visible=model_index2.value != "")
931
+ with gr.Accordion(translations["input_output"], open=False):
932
+ with gr.Column():
933
+ export_format2 = gr.Radio(label=translations["export_format"], info=translations["export_info"], choices=["wav", "mp3", "flac", "ogg", "opus", "m4a", "mp4", "aac", "alac", "wma", "aiff", "webm", "ac3"], value="wav", interactive=True)
934
+ input_audio1 = gr.Dropdown(label=translations["audio_path"], value="", choices=paths_for_files, info=translations["provide_audio"], allow_custom_value=True, interactive=True)
935
+ output_audio2 = gr.Textbox(label=translations["output_path"], value="audios/output.wav", placeholder="audios/output.wav", info=translations["output_path_info"], interactive=True)
936
+ with gr.Column():
937
+ refesh4 = gr.Button(translations["refesh"])
938
+ with gr.Row():
939
+ input2 = gr.File(label=translations["drop_audio"], file_types=[".wav", ".mp3", ".flac", ".ogg", ".opus", ".m4a", ".mp4", ".aac", ".alac", ".wma", ".aiff", ".webm", ".ac3"])
940
+ with gr.Column():
941
+ with gr.Accordion(translations["model_accordion"] + " 2", open=True):
942
+ with gr.Row():
943
+ model_pth3 = gr.Dropdown(label=translations["model_name"], choices=model_name, value=model_name[0] if len(model_name) >= 1 else "", interactive=True, allow_custom_value=True)
944
+ model_index3 = gr.Dropdown(label=translations["index_path"], choices=index_path, value=index_path[0] if len(index_path) >= 1 else "", interactive=True, allow_custom_value=True)
945
+ with gr.Row():
946
+ refesh3 = gr.Button(translations["refesh"])
947
+ with gr.Row():
948
+ pitch4 = gr.Slider(minimum=-20, maximum=20, step=1, info=translations["pitch_info"], label=translations["pitch"], value=0, interactive=True)
949
+ index_strength3 = gr.Slider(label=translations["index_strength"], info=translations["index_strength_info"], minimum=0, maximum=1, value=0.5, step=0.01, interactive=True, visible=model_index3.value != "")
950
+ with gr.Accordion(translations["setting"], open=False):
951
+ with gr.Row():
952
+ model_size = gr.Radio(label=translations["model_size"], info=translations["model_size_info"], choices=["tiny", "tiny.en", "base", "base.en", "small", "small.en", "medium", "medium.en", "large-v1", "large-v2", "large-v3", "large-v3-turbo"], value="medium", interactive=True)
953
+ with gr.Accordion(translations["f0_method"], open=False):
954
+ with gr.Group():
955
+ with gr.Row():
956
+ onnx_f0_mode4 = gr.Checkbox(label=translations["f0_onnx_mode"], info=translations["f0_onnx_mode_info"], value=False, interactive=True)
957
+ unlock_full_method2 = gr.Checkbox(label=translations["f0_unlock"], info=translations["f0_unlock_info"], value=False, interactive=True)
958
+ method3 = gr.Radio(label=translations["f0_method"], info=translations["f0_method_info"], choices=method_f0+["hybrid"], value="rmvpe", interactive=True)
959
+ hybrid_method3 = gr.Dropdown(label=translations["f0_method_hybrid"], info=translations["f0_method_hybrid_info"], choices=["hybrid[pm+dio]", "hybrid[pm+crepe-tiny]", "hybrid[pm+crepe]", "hybrid[pm+fcpe]", "hybrid[pm+rmvpe]", "hybrid[pm+harvest]", "hybrid[pm+yin]", "hybrid[dio+crepe-tiny]", "hybrid[dio+crepe]", "hybrid[dio+fcpe]", "hybrid[dio+rmvpe]", "hybrid[dio+harvest]", "hybrid[dio+yin]", "hybrid[crepe-tiny+crepe]", "hybrid[crepe-tiny+fcpe]", "hybrid[crepe-tiny+rmvpe]", "hybrid[crepe-tiny+harvest]", "hybrid[crepe+fcpe]", "hybrid[crepe+rmvpe]", "hybrid[crepe+harvest]", "hybrid[crepe+yin]", "hybrid[fcpe+rmvpe]", "hybrid[fcpe+harvest]", "hybrid[fcpe+yin]", "hybrid[rmvpe+harvest]", "hybrid[rmvpe+yin]", "hybrid[harvest+yin]"], value="hybrid[pm+dio]", interactive=True, allow_custom_value=True, visible=method3.value == "hybrid")
960
+ hop_length3 = gr.Slider(label="Hop length", info=translations["hop_length_info"], minimum=1, maximum=512, value=128, step=1, interactive=True, visible=False)
961
+ with gr.Accordion(translations["hubert_model"], open=False):
962
+ embed_mode3 = gr.Radio(label=translations["embed_mode"], info=translations["embed_mode_info"], value="fairseq", choices=embedders_mode, interactive=True, visible=True)
963
+ embedders3 = gr.Radio(label=translations["hubert_model"], info=translations["hubert_info"], choices=embedders_model, value="hubert_base", interactive=True)
964
+ custom_embedders3 = gr.Textbox(label=translations["modelname"], info=translations["modelname_info"], value="", placeholder="hubert_base", interactive=True, visible=embedders3.value == "custom")
965
+ with gr.Column():
966
+ clean_strength3 = gr.Slider(label=translations["clean_strength"], info=translations["clean_strength_info"], minimum=0, maximum=1, value=0.5, step=0.1, interactive=True, visible=cleaner2.value)
967
+ f0_autotune_strength3 = gr.Slider(minimum=0, maximum=1, label=translations["autotune_rate"], info=translations["autotune_rate_info"], value=1, step=0.1, interactive=True, visible=autotune.value)
968
+ resample_sr3 = gr.Slider(minimum=0, maximum=96000, label=translations["resample"], info=translations["resample_info"], value=0, step=1, interactive=True)
969
+ filter_radius3 = gr.Slider(minimum=0, maximum=7, label=translations["filter_radius"], info=translations["filter_radius_info"], value=3, step=1, interactive=True)
970
+ volume_envelope3 = gr.Slider(minimum=0, maximum=1, label=translations["volume_envelope"], info=translations["volume_envelope_info"], value=1, step=0.1, interactive=True)
971
+ protect3 = gr.Slider(minimum=0, maximum=1, label=translations["protect"], info=translations["protect_info"], value=0.5, step=0.01, interactive=True)
972
+ with gr.Row():
973
+ formant_qfrency3 = gr.Slider(value=1.0, label=translations["formant_qfrency"] + " 1", info=translations["formant_qfrency"], minimum=0.0, maximum=16.0, step=0.1, interactive=True, visible=False)
974
+ formant_timbre3 = gr.Slider(value=1.0, label=translations["formant_timbre"] + " 1", info=translations["formant_timbre"], minimum=0.0, maximum=16.0, step=0.1, interactive=True, visible=False)
975
+ with gr.Row():
976
+ formant_qfrency4 = gr.Slider(value=1.0, label=translations["formant_qfrency"] + " 2", info=translations["formant_qfrency"], minimum=0.0, maximum=16.0, step=0.1, interactive=True, visible=False)
977
+ formant_timbre4 = gr.Slider(value=1.0, label=translations["formant_timbre"] + " 2", info=translations["formant_timbre"], minimum=0.0, maximum=16.0, step=0.1, interactive=True, visible=False)
978
+ with gr.Row():
979
+ gr.Markdown(translations["input_output"])
980
+ with gr.Row():
981
+ play_audio2 = gr.Audio(show_download_button=True, interactive=False, label=translations["input_audio"])
982
+ play_audio3 = gr.Audio(show_download_button=True, interactive=False, label=translations["output_file_tts_convert"])
983
+ with gr.Row():
984
+ autotune2.change(fn=visible, inputs=[autotune2], outputs=[f0_autotune_strength3])
985
+ cleaner2.change(fn=visible, inputs=[cleaner2], outputs=[clean_strength3])
986
+ method3.change(fn=lambda method, hybrid: [visible(method == "hybrid"), hoplength_show(method, hybrid)], inputs=[method3, hybrid_method3], outputs=[hybrid_method3, hop_length3])
987
+ with gr.Row():
988
+ hybrid_method3.change(fn=hoplength_show, inputs=[method3, hybrid_method3], outputs=[hop_length3])
989
+ refesh2.click(fn=change_models_choices, inputs=[], outputs=[model_pth2, model_index2])
990
+ model_pth2.change(fn=get_index, inputs=[model_pth2], outputs=[model_index2])
991
+ with gr.Row():
992
+ refesh3.click(fn=change_models_choices, inputs=[], outputs=[model_pth3, model_index3])
993
+ model_pth3.change(fn=get_index, inputs=[model_pth3], outputs=[model_index3])
994
+ input2.upload(fn=lambda audio_in: shutil.move(audio_in.name, os.path.join("audios")), inputs=[input2], outputs=[input_audio1])
995
+ with gr.Row():
996
+ input_audio1.change(fn=lambda audio: audio if os.path.isfile(audio) else None, inputs=[input_audio1], outputs=[play_audio2])
997
+ formant_shifting2.change(fn=lambda a: [visible(a)]*4, inputs=[formant_shifting2], outputs=[formant_qfrency3, formant_timbre3, formant_qfrency4, formant_timbre4])
998
+ embedders3.change(fn=lambda embedders: visible(embedders == "custom"), inputs=[embedders3], outputs=[custom_embedders3])
999
+ with gr.Row():
1000
+ refesh4.click(fn=change_audios_choices, inputs=[input_audio1], outputs=[input_audio1])
1001
+ model_index2.change(fn=index_strength_show, inputs=[model_index2], outputs=[index_strength2])
1002
+ model_index3.change(fn=index_strength_show, inputs=[model_index3], outputs=[index_strength3])
1003
+ with gr.Row():
1004
+ unlock_full_method2.change(fn=unlock_f0, inputs=[unlock_full_method2], outputs=[method3])
1005
+ embed_mode3.change(fn=visible_embedders, inputs=[embed_mode3], outputs=[embedders3])
1006
+ convert_button3.click(
1007
+ fn=convert_with_whisper,
1008
+ inputs=[
1009
+ num_spk,
1010
+ model_size,
1011
+ cleaner2,
1012
+ clean_strength3,
1013
+ autotune2,
1014
+ f0_autotune_strength3,
1015
+ checkpointing2,
1016
+ model_pth2,
1017
+ model_pth3,
1018
+ model_index2,
1019
+ model_index3,
1020
+ pitch3,
1021
+ pitch4,
1022
+ index_strength2,
1023
+ index_strength3,
1024
+ export_format2,
1025
+ input_audio1,
1026
+ output_audio2,
1027
+ onnx_f0_mode4,
1028
+ method3,
1029
+ hybrid_method3,
1030
+ hop_length3,
1031
+ embed_mode3,
1032
+ embedders3,
1033
+ custom_embedders3,
1034
+ resample_sr3,
1035
+ filter_radius3,
1036
+ volume_envelope3,
1037
+ protect3,
1038
+ formant_shifting2,
1039
+ formant_qfrency3,
1040
+ formant_timbre3,
1041
+ formant_qfrency4,
1042
+ formant_timbre4,
1043
+ ],
1044
+ outputs=[play_audio3],
1045
+ api_name="convert_with_whisper"
1046
+ )
1047
+
1048
+
1049
  with gr.TabItem(translations["audio_editing"], visible=configs.get("audioldm2", True)):
1050
  gr.Markdown(translations["audio_editing_info"])
1051
  with gr.Row():
 
1542
 
1543
  with gr.Row():
1544
  gr.Markdown(translations["terms_of_use"])
1545
+
1546
  gr.Markdown(translations["exemption"])
1547
 
1548
  logger.info(translations["start_app"])