Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -9,10 +9,32 @@ os.environ['weight_root']="assets/weights"
|
|
9 |
from infer.modules.vc.modules import VC
|
10 |
from configs.config import Config
|
11 |
import torch
|
|
|
|
|
12 |
os.makedirs(os.path.join(".", "audios"), exist_ok=True)
|
13 |
config = Config()
|
14 |
vc = VC(config)
|
15 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
16 |
def warn(text):
|
17 |
try: gr.Warning(text)
|
18 |
except: pass
|
@@ -289,9 +311,14 @@ with gr.Blocks() as app:
|
|
289 |
audio_refresher.click(fn=refresh,inputs=[],outputs=[audio_picker,model_picker,index_picker])
|
290 |
convert_button = gr.Button("Convert")
|
291 |
with gr.Row():
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
|
|
|
|
|
|
|
|
|
|
296 |
|
297 |
app.queue(max_size=20).launch(debug=True,allowed_paths=["kofi_button.png"])
|
|
|
9 |
from infer.modules.vc.modules import VC
|
10 |
from configs.config import Config
|
11 |
import torch
|
12 |
+
from pydub import AudioSegment
|
13 |
+
import numpy as np
|
14 |
os.makedirs(os.path.join(".", "audios"), exist_ok=True)
|
15 |
config = Config()
|
16 |
vc = VC(config)
|
17 |
|
18 |
+
def stereo(audio_path, delay_ms=0.6):
|
19 |
+
sample_rate, audio_array = audio_path
|
20 |
+
if len(audio_array.shape) == 1:
|
21 |
+
audio_bytes = audio_array.tobytes()
|
22 |
+
mono_audio = AudioSegment(
|
23 |
+
data=audio_bytes,
|
24 |
+
sample_width=audio_array.dtype.itemsize, # 2 bytes for int16
|
25 |
+
frame_rate=sample_rate, # Use the sample rate from your tuple
|
26 |
+
channels=1 # Adjust if your audio has more channels
|
27 |
+
)
|
28 |
+
samples = np.array(mono_audio.get_array_of_samples())
|
29 |
+
delay_samples = int(mono_audio.frame_rate * (delay_ms / 1000.0))
|
30 |
+
left_channel = np.zeros_like(samples)
|
31 |
+
right_channel = samples
|
32 |
+
left_channel[delay_samples:] = samples[:-delay_samples] #Offset to the left
|
33 |
+
stereo_samples = np.column_stack((left_channel, right_channel))
|
34 |
+
return (sample_rate, stereo_samples.astype(np.int16))
|
35 |
+
else:
|
36 |
+
return audio_path
|
37 |
+
|
38 |
def warn(text):
|
39 |
try: gr.Warning(text)
|
40 |
except: pass
|
|
|
311 |
audio_refresher.click(fn=refresh,inputs=[],outputs=[audio_picker,model_picker,index_picker])
|
312 |
convert_button = gr.Button("Convert")
|
313 |
with gr.Row():
|
314 |
+
with gr.Tabs():
|
315 |
+
with gr.TabItem("Original"):
|
316 |
+
audio_player = gr.Audio()
|
317 |
+
inputs = [audio_picker,model_picker,index_picker,index_rate,pitch,method]
|
318 |
+
audio_picker.change(fn=update_audio_player, inputs=[audio_picker],outputs=[audio_player])
|
319 |
+
convert_button.click(convert, inputs=inputs,outputs=[audio_picker,audio_player])
|
320 |
+
with gr.TabItem("Stereo"):
|
321 |
+
stereo_player = gr.Audio()
|
322 |
+
audio_player.change(fn=stereo, inputs=[audio_player],outputs=[stereo_player])
|
323 |
|
324 |
app.queue(max_size=20).launch(debug=True,allowed_paths=["kofi_button.png"])
|