16
16
logger = logging .getLogger (__name__ )
17
17
stream_latency = - 1
18
18
19
+
19
20
class Harvest (multiprocessing .Process ):
20
21
def __init__ (self , inp_q , opt_q ):
21
22
multiprocessing .Process .__init__ (self )
@@ -100,7 +101,7 @@ class GUI:
100
101
def __init__ (self ) -> None :
101
102
self .config = GUIConfig ()
102
103
self .flag_vc = False
103
- self .function = 'vc'
104
+ self .function = "vc"
104
105
self .delay_time = 0
105
106
self .launcher ()
106
107
@@ -116,7 +117,7 @@ def load(self):
116
117
if data ["sg_input_device" ] not in input_devices :
117
118
data ["sg_input_device" ] = input_devices [sd .default .device [0 ]]
118
119
if data ["sg_output_device" ] not in output_devices :
119
- data ["sg_output_device" ] = output_devices [sd .default .device [1 ]]
120
+ data ["sg_output_device" ] = output_devices [sd .default .device [1 ]]
120
121
except :
121
122
with open ("configs/config.json" , "w" ) as j :
122
123
data = {
@@ -353,7 +354,7 @@ def launcher(self):
353
354
key = "im" ,
354
355
default = False ,
355
356
enable_events = True ,
356
- ),
357
+ ),
357
358
sg .Radio (
358
359
i18n ("输出变声" ),
359
360
"function" ,
@@ -427,7 +428,12 @@ def event_handler(self):
427
428
global stream_latency
428
429
while stream_latency < 0 :
429
430
time .sleep (0.01 )
430
- self .delay_time = stream_latency + values ["block_time" ] + values ["crossfade_length" ] + 0.01
431
+ self .delay_time = (
432
+ stream_latency
433
+ + values ["block_time" ]
434
+ + values ["crossfade_length" ]
435
+ + 0.01
436
+ )
431
437
if values ["I_noise_reduce" ]:
432
438
self .delay_time += values ["crossfade_length" ]
433
439
self .window ["delay_time" ].update (int (self .delay_time * 1000 ))
@@ -452,7 +458,9 @@ def event_handler(self):
452
458
elif event == "I_noise_reduce" :
453
459
self .config .I_noise_reduce = values ["I_noise_reduce" ]
454
460
if stream_latency > 0 :
455
- self .delay_time += (1 if values ["I_noise_reduce" ] else - 1 ) * values ["crossfade_length" ]
461
+ self .delay_time += (
462
+ 1 if values ["I_noise_reduce" ] else - 1
463
+ ) * values ["crossfade_length" ]
456
464
self .window ["delay_time" ].update (int (self .delay_time * 1000 ))
457
465
elif event == "O_noise_reduce" :
458
466
self .config .O_noise_reduce = values ["O_noise_reduce" ]
@@ -633,7 +641,7 @@ def audio_callback(
633
641
self .block_frame_16k :
634
642
].clone ()
635
643
# input noise reduction and resampling
636
- if self .config .I_noise_reduce and self .function == 'vc' :
644
+ if self .config .I_noise_reduce and self .function == "vc" :
637
645
input_wav = self .input_wav [
638
646
- self .crossfade_frame - self .block_frame - 2 * self .zc :
639
647
]
@@ -657,10 +665,12 @@ def audio_callback(
657
665
self .input_wav [- self .block_frame - 2 * self .zc :]
658
666
)[160 :]
659
667
# infer
660
- if self .function == 'vc' :
668
+ if self .function == "vc" :
661
669
f0_extractor_frame = self .block_frame_16k + 800
662
670
if self .config .f0method == "rmvpe" :
663
- f0_extractor_frame = 5120 * ((f0_extractor_frame - 1 ) // 5120 + 1 ) - 160
671
+ f0_extractor_frame = (
672
+ 5120 * ((f0_extractor_frame - 1 ) // 5120 + 1 ) - 160
673
+ )
664
674
infer_wav = self .rvc .infer (
665
675
self .input_wav_res ,
666
676
self .input_wav_res [- f0_extractor_frame :].cpu ().numpy (),
@@ -678,7 +688,9 @@ def audio_callback(
678
688
- self .crossfade_frame - self .sola_search_frame - self .block_frame :
679
689
].clone ()
680
690
# output noise reduction
681
- if (self .config .O_noise_reduce and self .function == 'vc' ) or (self .config .I_noise_reduce and self .function == 'im' ):
691
+ if (self .config .O_noise_reduce and self .function == "vc" ) or (
692
+ self .config .I_noise_reduce and self .function == "im"
693
+ ):
682
694
self .output_buffer [: - self .block_frame ] = self .output_buffer [
683
695
self .block_frame :
684
696
].clone ()
@@ -687,7 +699,7 @@ def audio_callback(
687
699
infer_wav .unsqueeze (0 ), self .output_buffer .unsqueeze (0 )
688
700
).squeeze (0 )
689
701
# volume envelop mixing
690
- if self .config .rms_mix_rate < 1 and self .function == 'vc' :
702
+ if self .config .rms_mix_rate < 1 and self .function == "vc" :
691
703
rms1 = librosa .feature .rms (
692
704
y = self .input_wav_res [- 160 * infer_wav .shape [0 ] // self .zc :]
693
705
.cpu ()
0 commit comments