r3gm commited on
Commit
a341276
1 Parent(s): 0b46efa

Update infer-web.py

Browse files
Files changed (1) hide show
  1. infer-web.py +352 -347
infer-web.py CHANGED
@@ -69,6 +69,9 @@ import time
69
  import csv
70
  from shlex import quote as SQuote
71
 
 
 
 
72
  logger = logging.getLogger(__name__)
73
 
74
  RQuote = lambda val: SQuote(str(val))
@@ -2451,384 +2454,386 @@ def GradioSetup():
2451
  outputs=[advanced_settings_batch],
2452
  )
2453
 
2454
- with gr.TabItem(i18n("Train"), visible=False):
2455
 
2456
- with gr.Accordion(label=i18n("Step 1: Processing data")):
2457
- with gr.Row():
2458
- with gr.Column():
2459
- exp_dir1 = gr.Textbox(
2460
- label=i18n("Enter the model name:"),
2461
- value=i18n("Model_Name"),
2462
- )
2463
- if_f0_3 = gr.Checkbox(
2464
- label=i18n("Whether the model has pitch guidance."),
2465
- value=True,
2466
- interactive=True,
2467
- )
2468
- sr2 = gr.Radio(
2469
- label=i18n("Target sample rate:"),
2470
- choices=["40k", "48k", "32k"],
2471
- value="40k",
2472
- interactive=True,
2473
- )
2474
- version19 = gr.Radio(
2475
- label=i18n("Version:"),
2476
- choices=["v1", "v2"],
2477
- value="v2",
2478
- interactive=True,
2479
- visible=True,
2480
- )
2481
-
2482
- with gr.Column():
2483
- np7 = gr.Slider(
2484
- minimum=1,
2485
- maximum=config.n_cpu,
2486
- step=1,
2487
- label=i18n("Number of CPU processes:"),
2488
- value=config.n_cpu,
2489
  interactive=True,
2490
  )
2491
- spk_id5 = gr.Slider(
2492
- minimum=0,
2493
- maximum=4,
2494
- step=1,
2495
- label=i18n("Specify the model ID:"),
2496
- value=0,
2497
  interactive=True,
 
2498
  )
2499
-
2500
- with gr.Row():
2501
- with gr.Column():
2502
- trainset_dir4 = gr.Dropdown(
2503
- choices=sorted(datasets),
2504
- label=i18n("Select your dataset:"),
2505
- value=get_dataset(),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2506
  )
2507
-
2508
- dataset_path = gr.Textbox(
2509
- label=i18n("Or add your dataset path:"),
2510
- interactive=True,
 
 
 
2511
  )
2512
- btn_update_dataset_list = gr.Button(
2513
- i18n("Update list"), variant="primary"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2514
  )
2515
-
2516
- btn_update_dataset_list.click(
2517
- resources.update_dataset_list, [spk_id5], trainset_dir4
2518
- )
2519
- but1 = gr.Button(i18n("Process data"), variant="primary")
2520
- info1 = gr.Textbox(label=i18n("Output information:"), value="")
2521
- but1.click(
2522
- preprocess_dataset,
2523
- [trainset_dir4, exp_dir1, sr2, np7, dataset_path],
2524
- [info1],
2525
- api_name="train_preprocess",
 
 
 
2526
  )
2527
-
2528
- with gr.Accordion(label=i18n("Step 2: Extracting features")):
2529
  with gr.Row():
2530
- with gr.Column():
2531
- gpus6 = gr.Textbox(
2532
- label=i18n(
2533
- "Provide the GPU index(es) separated by '-', like 0-1-2 for using GPUs 0, 1, and 2:"
2534
- ),
2535
- value=gpus,
2536
- interactive=True,
2537
- )
2538
- gpu_info9 = gr.Textbox(
2539
- label=i18n("GPU Information:"),
2540
- value=gpu_info,
2541
- visible=F0GPUVisible,
2542
- )
2543
- with gr.Column():
2544
- f0method8 = gr.Radio(
2545
- label=i18n("Select the pitch extraction algorithm:"),
2546
- choices=[
2547
- "pm",
2548
- "harvest",
2549
- "dio",
2550
- "crepe",
2551
- "mangio-crepe",
2552
- "rmvpe",
2553
- "rmvpe_gpu",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2554
  ],
2555
- value="rmvpe",
2556
- interactive=True,
2557
  )
2558
- hop_length = gr.Slider(
2559
- minimum=1,
2560
- maximum=512,
2561
- step=1,
2562
- label=i18n(
2563
- "Hop Length (lower hop lengths take more time to infer but are more pitch accurate):"
2564
- ),
2565
- value=64,
2566
- interactive=True,
2567
- )
2568
-
2569
  with gr.Row():
2570
- but2 = gr.Button(i18n("Feature extraction"), variant="primary")
2571
- info2 = gr.Textbox(
2572
- label=i18n("Output information:"),
2573
- value="",
2574
- max_lines=8,
2575
- interactive=False,
2576
- )
2577
-
2578
- but2.click(
2579
- extract_f0_feature,
2580
- [
2581
- gpus6,
2582
- np7,
2583
- f0method8,
2584
- if_f0_3,
2585
- exp_dir1,
2586
- version19,
2587
- hop_length,
2588
- ],
2589
- [info2],
2590
- api_name="train_extract_f0_feature",
2591
- )
2592
-
2593
- with gr.Row():
2594
- with gr.Accordion(label=i18n("Step 3: Model training started")):
2595
- with gr.Row():
2596
- save_epoch10 = gr.Slider(
2597
- minimum=1,
2598
- maximum=100,
2599
- step=1,
2600
- label=i18n("Save frequency:"),
2601
- value=10,
2602
- interactive=True,
2603
- visible=True,
2604
- )
2605
- total_epoch11 = gr.Slider(
2606
- minimum=1,
2607
- maximum=10000,
2608
- step=2,
2609
- label=i18n("Training epochs:"),
2610
- value=750,
2611
- interactive=True,
2612
- )
2613
- batch_size12 = gr.Slider(
2614
- minimum=1,
2615
- maximum=50,
2616
- step=1,
2617
- label=i18n("Batch size per GPU:"),
2618
- value=default_batch_size,
2619
- # value=20,
2620
- interactive=True,
2621
- )
2622
-
2623
- with gr.Row():
2624
- if_save_latest13 = gr.Checkbox(
2625
- label=i18n(
2626
- "Whether to save only the latest .ckpt file to save hard drive space"
2627
- ),
2628
- value=True,
2629
  interactive=True,
2630
  )
2631
- if_cache_gpu17 = gr.Checkbox(
2632
  label=i18n(
2633
- "Cache all training sets to GPU memory. Caching small datasets (less than 10 minutes) can speed up training"
2634
  ),
2635
- value=False,
2636
- interactive=True,
2637
  )
2638
- if_save_every_weights18 = gr.Checkbox(
 
2639
  label=i18n(
2640
- "Save a small final model to the 'weights' folder at each save point"
2641
  ),
2642
- value=True,
2643
- interactive=True,
2644
  )
 
2645
  with gr.Column():
2646
- with gr.Row():
2647
- pretrained_G14 = gr.Textbox(
2648
- label=i18n("Load pre-trained base model G path:"),
2649
- value="assets/pretrained_v2/f0G40k.pth",
2650
- interactive=True,
2651
- )
2652
- pretrained_D15 = gr.Textbox(
2653
- label=i18n("Load pre-trained base model D path:"),
2654
- value="assets/pretrained_v2/f0D40k.pth",
2655
- interactive=True,
2656
- )
2657
- with gr.Row():
2658
- gpus16 = gr.Textbox(
2659
- label=i18n(
2660
- "Provide the GPU index(es) separated by '-', like 0-1-2 for using GPUs 0, 1, and 2:"
2661
- ),
2662
- value=gpus,
2663
- interactive=True,
2664
- )
2665
- sr2.change(
2666
- change_sr2,
2667
- [sr2, if_f0_3, version19],
2668
- [pretrained_G14, pretrained_D15],
2669
  )
2670
- version19.change(
2671
- change_version19,
2672
- [sr2, if_f0_3, version19],
2673
- [pretrained_G14, pretrained_D15, sr2],
2674
- )
2675
- if_f0_3.change(
2676
- fn=change_f0,
2677
- inputs=[if_f0_3, sr2, version19],
2678
- outputs=[f0method8, pretrained_G14, pretrained_D15],
2679
- )
2680
- with gr.Row():
2681
- butstop = gr.Button(
2682
- i18n("Stop training"),
2683
- variant="primary",
2684
  visible=False,
2685
  )
2686
- but3 = gr.Button(
2687
- i18n("Train model"), variant="primary", visible=True
2688
- )
2689
- but3.click(
2690
- fn=stoptraining,
2691
- inputs=[gr.Number(value=0, visible=False)],
2692
- outputs=[but3, butstop],
2693
- api_name="train_stop",
2694
- )
2695
- butstop.click(
2696
- fn=stoptraining,
2697
- inputs=[gr.Number(value=1, visible=False)],
2698
- outputs=[but3, butstop],
2699
  )
2700
- info3 = gr.Textbox(
2701
- label=i18n("Output information:"),
2702
- value="",
2703
- lines=4,
2704
- max_lines=4,
2705
  )
2706
-
2707
- with gr.Column():
2708
- save_action = gr.Dropdown(
2709
- label=i18n("Save type"),
2710
- choices=[
2711
- i18n("Save all"),
2712
- i18n("Save D and G"),
2713
- i18n("Save voice"),
2714
- ],
2715
- value=i18n("Choose the method"),
2716
- interactive=True,
2717
- )
2718
- but4 = gr.Button(
2719
- i18n("Train feature index"), variant="primary"
2720
- )
2721
-
2722
- but7 = gr.Button(i18n("Save model"), variant="primary")
2723
-
2724
- if_save_every_weights18.change(
2725
- fn=lambda if_save_every_weights: (
2726
- {
2727
- "visible": if_save_every_weights,
2728
- "__type__": "update",
2729
- }
2730
- ),
2731
- inputs=[if_save_every_weights18],
2732
- outputs=[save_epoch10],
2733
  )
2734
-
2735
- but3.click(
2736
- click_train,
 
 
 
 
 
 
 
2737
  [
2738
- exp_dir1,
2739
- sr2,
2740
- if_f0_3,
2741
- spk_id5,
2742
- save_epoch10,
2743
- total_epoch11,
2744
- batch_size12,
2745
- if_save_latest13,
2746
- pretrained_G14,
2747
- pretrained_D15,
2748
- gpus16,
2749
- if_cache_gpu17,
2750
- if_save_every_weights18,
2751
- version19,
2752
  ],
2753
- [info3, butstop, but3],
2754
- api_name="train_start",
2755
- )
2756
-
2757
- but4.click(train_index, [exp_dir1, version19], info3)
2758
- but7.click(resources.save_model, [exp_dir1, save_action], info3)
2759
-
2760
- with gr.TabItem(i18n("UVR5")): # UVR section
2761
- with gr.Row():
2762
- with gr.Column():
2763
- model_select = gr.Radio(
2764
- label=i18n("Model Architecture:"),
2765
- choices=["VR", "MDX", "Demucs (Beta)"],
2766
- value="VR",
2767
- interactive=True,
2768
- )
2769
- dir_wav_input = gr.Textbox(
2770
- label=i18n(
2771
- "Enter the path of the audio folder to be processed:"
2772
- ),
2773
- value=os.path.join(now_dir, "assets", "audios"),
2774
- )
2775
- wav_inputs = gr.File(
2776
- file_count="multiple",
2777
- label=i18n(
2778
- "You can also input audio files in batches. Choose one of the two options. Priority is given to reading from the folder."
2779
- ),
2780
- )
2781
-
2782
- with gr.Column():
2783
- model_choose = gr.Dropdown(
2784
- label=i18n("Model:"), choices=uvr5_names
2785
  )
2786
- agg = gr.Slider(
2787
- minimum=0,
2788
- maximum=20,
2789
- step=1,
2790
- label="Vocal Extraction Aggressive",
2791
- value=10,
2792
- interactive=True,
2793
- visible=False,
2794
- )
2795
- opt_vocal_root = gr.Textbox(
2796
- label=i18n("Specify the output folder for vocals:"),
2797
- value="assets/audios",
2798
- )
2799
- opt_ins_root = gr.Textbox(
2800
- label=i18n("Specify the output folder for accompaniment:"),
2801
- value="assets/audios/audio-others",
2802
- )
2803
- format0 = gr.Radio(
2804
- label=i18n("Export file format:"),
2805
- choices=["wav", "flac", "mp3", "m4a"],
2806
- value="flac",
2807
- interactive=True,
2808
- )
2809
- model_select.change(
2810
- fn=update_model_choices,
2811
- inputs=model_select,
2812
- outputs=model_choose,
2813
- )
2814
- but2 = gr.Button(i18n("Convert"), variant="primary")
2815
- vc_output4 = gr.Textbox(label=i18n("Output information:"))
2816
- # wav_inputs.upload(fn=save_to_wav2_edited, inputs=[wav_inputs], outputs=[])
2817
- but2.click(
2818
- uvr,
2819
- [
2820
- model_choose,
2821
- dir_wav_input,
2822
- opt_vocal_root,
2823
- wav_inputs,
2824
- opt_ins_root,
2825
- agg,
2826
- format0,
2827
- model_select,
2828
- ],
2829
- [vc_output4],
2830
- api_name="uvr_convert",
2831
- )
2832
  with gr.TabItem(i18n("TTS")):
2833
  with gr.Column():
2834
  text_test = gr.Textbox(
 
69
  import csv
70
  from shlex import quote as SQuote
71
 
72
+ import torch
73
+ cpu_flag = torch.cuda.is_available()
74
+
75
  logger = logging.getLogger(__name__)
76
 
77
  RQuote = lambda val: SQuote(str(val))
 
2454
  outputs=[advanced_settings_batch],
2455
  )
2456
 
 
2457
 
2458
+ with gr.Tabs(visible=cpu_flag) as tabs:
2459
+ with gr.TabItem(i18n("Train"), visible=False):
2460
+
2461
+ with gr.Accordion(label=i18n("Step 1: Processing data")):
2462
+ with gr.Row():
2463
+ with gr.Column():
2464
+ exp_dir1 = gr.Textbox(
2465
+ label=i18n("Enter the model name:"),
2466
+ value=i18n("Model_Name"),
2467
+ )
2468
+ if_f0_3 = gr.Checkbox(
2469
+ label=i18n("Whether the model has pitch guidance."),
2470
+ value=True,
2471
+ interactive=True,
2472
+ )
2473
+ sr2 = gr.Radio(
2474
+ label=i18n("Target sample rate:"),
2475
+ choices=["40k", "48k", "32k"],
2476
+ value="40k",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2477
  interactive=True,
2478
  )
2479
+ version19 = gr.Radio(
2480
+ label=i18n("Version:"),
2481
+ choices=["v1", "v2"],
2482
+ value="v2",
 
 
2483
  interactive=True,
2484
+ visible=True,
2485
  )
2486
+
2487
+ with gr.Column():
2488
+ np7 = gr.Slider(
2489
+ minimum=1,
2490
+ maximum=config.n_cpu,
2491
+ step=1,
2492
+ label=i18n("Number of CPU processes:"),
2493
+ value=config.n_cpu,
2494
+ interactive=True,
2495
+ )
2496
+ spk_id5 = gr.Slider(
2497
+ minimum=0,
2498
+ maximum=4,
2499
+ step=1,
2500
+ label=i18n("Specify the model ID:"),
2501
+ value=0,
2502
+ interactive=True,
2503
+ )
2504
+
2505
+ with gr.Row():
2506
+ with gr.Column():
2507
+ trainset_dir4 = gr.Dropdown(
2508
+ choices=sorted(datasets),
2509
+ label=i18n("Select your dataset:"),
2510
+ value=get_dataset(),
2511
+ )
2512
+
2513
+ dataset_path = gr.Textbox(
2514
+ label=i18n("Or add your dataset path:"),
2515
+ interactive=True,
2516
+ )
2517
+ btn_update_dataset_list = gr.Button(
2518
+ i18n("Update list"), variant="primary"
2519
+ )
2520
+
2521
+ btn_update_dataset_list.click(
2522
+ resources.update_dataset_list, [spk_id5], trainset_dir4
2523
  )
2524
+ but1 = gr.Button(i18n("Process data"), variant="primary")
2525
+ info1 = gr.Textbox(label=i18n("Output information:"), value="")
2526
+ but1.click(
2527
+ preprocess_dataset,
2528
+ [trainset_dir4, exp_dir1, sr2, np7, dataset_path],
2529
+ [info1],
2530
+ api_name="train_preprocess",
2531
  )
2532
+
2533
+ with gr.Accordion(label=i18n("Step 2: Extracting features")):
2534
+ with gr.Row():
2535
+ with gr.Column():
2536
+ gpus6 = gr.Textbox(
2537
+ label=i18n(
2538
+ "Provide the GPU index(es) separated by '-', like 0-1-2 for using GPUs 0, 1, and 2:"
2539
+ ),
2540
+ value=gpus,
2541
+ interactive=True,
2542
+ )
2543
+ gpu_info9 = gr.Textbox(
2544
+ label=i18n("GPU Information:"),
2545
+ value=gpu_info,
2546
+ visible=F0GPUVisible,
2547
+ )
2548
+ with gr.Column():
2549
+ f0method8 = gr.Radio(
2550
+ label=i18n("Select the pitch extraction algorithm:"),
2551
+ choices=[
2552
+ "pm",
2553
+ "harvest",
2554
+ "dio",
2555
+ "crepe",
2556
+ "mangio-crepe",
2557
+ "rmvpe",
2558
+ "rmvpe_gpu",
2559
+ ],
2560
+ value="rmvpe",
2561
+ interactive=True,
2562
+ )
2563
+ hop_length = gr.Slider(
2564
+ minimum=1,
2565
+ maximum=512,
2566
+ step=1,
2567
+ label=i18n(
2568
+ "Hop Length (lower hop lengths take more time to infer but are more pitch accurate):"
2569
+ ),
2570
+ value=64,
2571
+ interactive=True,
2572
+ )
2573
+
2574
+ with gr.Row():
2575
+ but2 = gr.Button(i18n("Feature extraction"), variant="primary")
2576
+ info2 = gr.Textbox(
2577
+ label=i18n("Output information:"),
2578
+ value="",
2579
+ max_lines=8,
2580
+ interactive=False,
2581
  )
2582
+
2583
+ but2.click(
2584
+ extract_f0_feature,
2585
+ [
2586
+ gpus6,
2587
+ np7,
2588
+ f0method8,
2589
+ if_f0_3,
2590
+ exp_dir1,
2591
+ version19,
2592
+ hop_length,
2593
+ ],
2594
+ [info2],
2595
+ api_name="train_extract_f0_feature",
2596
  )
2597
+
 
2598
  with gr.Row():
2599
+ with gr.Accordion(label=i18n("Step 3: Model training started")):
2600
+ with gr.Row():
2601
+ save_epoch10 = gr.Slider(
2602
+ minimum=1,
2603
+ maximum=100,
2604
+ step=1,
2605
+ label=i18n("Save frequency:"),
2606
+ value=10,
2607
+ interactive=True,
2608
+ visible=True,
2609
+ )
2610
+ total_epoch11 = gr.Slider(
2611
+ minimum=1,
2612
+ maximum=10000,
2613
+ step=2,
2614
+ label=i18n("Training epochs:"),
2615
+ value=750,
2616
+ interactive=True,
2617
+ )
2618
+ batch_size12 = gr.Slider(
2619
+ minimum=1,
2620
+ maximum=50,
2621
+ step=1,
2622
+ label=i18n("Batch size per GPU:"),
2623
+ value=default_batch_size,
2624
+ # value=20,
2625
+ interactive=True,
2626
+ )
2627
+
2628
+ with gr.Row():
2629
+ if_save_latest13 = gr.Checkbox(
2630
+ label=i18n(
2631
+ "Whether to save only the latest .ckpt file to save hard drive space"
2632
+ ),
2633
+ value=True,
2634
+ interactive=True,
2635
+ )
2636
+ if_cache_gpu17 = gr.Checkbox(
2637
+ label=i18n(
2638
+ "Cache all training sets to GPU memory. Caching small datasets (less than 10 minutes) can speed up training"
2639
+ ),
2640
+ value=False,
2641
+ interactive=True,
2642
+ )
2643
+ if_save_every_weights18 = gr.Checkbox(
2644
+ label=i18n(
2645
+ "Save a small final model to the 'weights' folder at each save point"
2646
+ ),
2647
+ value=True,
2648
+ interactive=True,
2649
+ )
2650
+ with gr.Column():
2651
+ with gr.Row():
2652
+ pretrained_G14 = gr.Textbox(
2653
+ label=i18n("Load pre-trained base model G path:"),
2654
+ value="assets/pretrained_v2/f0G40k.pth",
2655
+ interactive=True,
2656
+ )
2657
+ pretrained_D15 = gr.Textbox(
2658
+ label=i18n("Load pre-trained base model D path:"),
2659
+ value="assets/pretrained_v2/f0D40k.pth",
2660
+ interactive=True,
2661
+ )
2662
+ with gr.Row():
2663
+ gpus16 = gr.Textbox(
2664
+ label=i18n(
2665
+ "Provide the GPU index(es) separated by '-', like 0-1-2 for using GPUs 0, 1, and 2:"
2666
+ ),
2667
+ value=gpus,
2668
+ interactive=True,
2669
+ )
2670
+ sr2.change(
2671
+ change_sr2,
2672
+ [sr2, if_f0_3, version19],
2673
+ [pretrained_G14, pretrained_D15],
2674
+ )
2675
+ version19.change(
2676
+ change_version19,
2677
+ [sr2, if_f0_3, version19],
2678
+ [pretrained_G14, pretrained_D15, sr2],
2679
+ )
2680
+ if_f0_3.change(
2681
+ fn=change_f0,
2682
+ inputs=[if_f0_3, sr2, version19],
2683
+ outputs=[f0method8, pretrained_G14, pretrained_D15],
2684
+ )
2685
+ with gr.Row():
2686
+ butstop = gr.Button(
2687
+ i18n("Stop training"),
2688
+ variant="primary",
2689
+ visible=False,
2690
+ )
2691
+ but3 = gr.Button(
2692
+ i18n("Train model"), variant="primary", visible=True
2693
+ )
2694
+ but3.click(
2695
+ fn=stoptraining,
2696
+ inputs=[gr.Number(value=0, visible=False)],
2697
+ outputs=[but3, butstop],
2698
+ api_name="train_stop",
2699
+ )
2700
+ butstop.click(
2701
+ fn=stoptraining,
2702
+ inputs=[gr.Number(value=1, visible=False)],
2703
+ outputs=[but3, butstop],
2704
+ )
2705
+ info3 = gr.Textbox(
2706
+ label=i18n("Output information:"),
2707
+ value="",
2708
+ lines=4,
2709
+ max_lines=4,
2710
+ )
2711
+
2712
+ with gr.Column():
2713
+ save_action = gr.Dropdown(
2714
+ label=i18n("Save type"),
2715
+ choices=[
2716
+ i18n("Save all"),
2717
+ i18n("Save D and G"),
2718
+ i18n("Save voice"),
2719
+ ],
2720
+ value=i18n("Choose the method"),
2721
+ interactive=True,
2722
+ )
2723
+ but4 = gr.Button(
2724
+ i18n("Train feature index"), variant="primary"
2725
+ )
2726
+
2727
+ but7 = gr.Button(i18n("Save model"), variant="primary")
2728
+
2729
+ if_save_every_weights18.change(
2730
+ fn=lambda if_save_every_weights: (
2731
+ {
2732
+ "visible": if_save_every_weights,
2733
+ "__type__": "update",
2734
+ }
2735
+ ),
2736
+ inputs=[if_save_every_weights18],
2737
+ outputs=[save_epoch10],
2738
+ )
2739
+
2740
+ but3.click(
2741
+ click_train,
2742
+ [
2743
+ exp_dir1,
2744
+ sr2,
2745
+ if_f0_3,
2746
+ spk_id5,
2747
+ save_epoch10,
2748
+ total_epoch11,
2749
+ batch_size12,
2750
+ if_save_latest13,
2751
+ pretrained_G14,
2752
+ pretrained_D15,
2753
+ gpus16,
2754
+ if_cache_gpu17,
2755
+ if_save_every_weights18,
2756
+ version19,
2757
  ],
2758
+ [info3, butstop, but3],
2759
+ api_name="train_start",
2760
  )
2761
+
2762
+ but4.click(train_index, [exp_dir1, version19], info3)
2763
+ but7.click(resources.save_model, [exp_dir1, save_action], info3)
2764
+
2765
+ with gr.TabItem(i18n("UVR5")): # UVR section
 
 
 
 
 
 
2766
  with gr.Row():
2767
+ with gr.Column():
2768
+ model_select = gr.Radio(
2769
+ label=i18n("Model Architecture:"),
2770
+ choices=["VR", "MDX", "Demucs (Beta)"],
2771
+ value="VR",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2772
  interactive=True,
2773
  )
2774
+ dir_wav_input = gr.Textbox(
2775
  label=i18n(
2776
+ "Enter the path of the audio folder to be processed:"
2777
  ),
2778
+ value=os.path.join(now_dir, "assets", "audios"),
 
2779
  )
2780
+ wav_inputs = gr.File(
2781
+ file_count="multiple",
2782
  label=i18n(
2783
+ "You can also input audio files in batches. Choose one of the two options. Priority is given to reading from the folder."
2784
  ),
 
 
2785
  )
2786
+
2787
  with gr.Column():
2788
+ model_choose = gr.Dropdown(
2789
+ label=i18n("Model:"), choices=uvr5_names
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2790
  )
2791
+ agg = gr.Slider(
2792
+ minimum=0,
2793
+ maximum=20,
2794
+ step=1,
2795
+ label="Vocal Extraction Aggressive",
2796
+ value=10,
2797
+ interactive=True,
 
 
 
 
 
 
 
2798
  visible=False,
2799
  )
2800
+ opt_vocal_root = gr.Textbox(
2801
+ label=i18n("Specify the output folder for vocals:"),
2802
+ value="assets/audios",
 
 
 
 
 
 
 
 
 
 
2803
  )
2804
+ opt_ins_root = gr.Textbox(
2805
+ label=i18n("Specify the output folder for accompaniment:"),
2806
+ value="assets/audios/audio-others",
 
 
2807
  )
2808
+ format0 = gr.Radio(
2809
+ label=i18n("Export file format:"),
2810
+ choices=["wav", "flac", "mp3", "m4a"],
2811
+ value="flac",
2812
+ interactive=True,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2813
  )
2814
+ model_select.change(
2815
+ fn=update_model_choices,
2816
+ inputs=model_select,
2817
+ outputs=model_choose,
2818
+ )
2819
+ but2 = gr.Button(i18n("Convert"), variant="primary")
2820
+ vc_output4 = gr.Textbox(label=i18n("Output information:"))
2821
+ # wav_inputs.upload(fn=save_to_wav2_edited, inputs=[wav_inputs], outputs=[])
2822
+ but2.click(
2823
+ uvr,
2824
  [
2825
+ model_choose,
2826
+ dir_wav_input,
2827
+ opt_vocal_root,
2828
+ wav_inputs,
2829
+ opt_ins_root,
2830
+ agg,
2831
+ format0,
2832
+ model_select,
 
 
 
 
 
 
2833
  ],
2834
+ [vc_output4],
2835
+ api_name="uvr_convert",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2836
  )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2837
  with gr.TabItem(i18n("TTS")):
2838
  with gr.Column():
2839
  text_test = gr.Textbox(