Spaces:
Running
on
Zero
Running
on
Zero
Update gradio_app.py
Browse files- gradio_app.py +16 -3
gradio_app.py
CHANGED
@@ -109,17 +109,30 @@ def separate_dnr_video(video_path):
|
|
109 |
return dialog_video, effect_video, music_video
|
110 |
|
111 |
@spaces.GPU()
|
112 |
-
def
|
|
|
113 |
output_files = separate_speakers_core(audio_path)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
114 |
updates = []
|
115 |
for i in range(MAX_SPEAKERS):
|
116 |
-
if i < len(
|
117 |
-
updates.append(gr.update(value=
|
118 |
else:
|
119 |
updates.append(gr.update(value=None, visible=False))
|
120 |
return updates
|
121 |
|
122 |
|
|
|
123 |
# --- Gradio UI ---
|
124 |
with gr.Blocks() as demo:
|
125 |
gr.Markdown("# TIGER: Time-frequency Interleaved Gain Extraction and Reconstruction for Efficient Speech Separation")
|
|
|
109 |
return dialog_video, effect_video, music_video
|
110 |
|
111 |
@spaces.GPU()
|
112 |
+
def separate_speakers_video(video_path):
|
113 |
+
audio_path, video = extract_audio_from_video(video_path)
|
114 |
output_files = separate_speakers_core(audio_path)
|
115 |
+
|
116 |
+
session_id = uuid.uuid4().hex[:8]
|
117 |
+
output_dir = os.path.join("output_sep_video", session_id)
|
118 |
+
os.makedirs(output_dir, exist_ok=True)
|
119 |
+
|
120 |
+
output_videos = []
|
121 |
+
for i, audio_file in enumerate(output_files):
|
122 |
+
speaker_video_path = os.path.join(output_dir, f"speaker_{i+1}_video.mp4")
|
123 |
+
video_with_sep_audio = attach_audio_to_video(video, audio_file, speaker_video_path)
|
124 |
+
output_videos.append(video_with_sep_audio)
|
125 |
+
|
126 |
updates = []
|
127 |
for i in range(MAX_SPEAKERS):
|
128 |
+
if i < len(output_videos):
|
129 |
+
updates.append(gr.update(value=output_videos[i], visible=True, label=f"Speaker {i+1}"))
|
130 |
else:
|
131 |
updates.append(gr.update(value=None, visible=False))
|
132 |
return updates
|
133 |
|
134 |
|
135 |
+
|
136 |
# --- Gradio UI ---
|
137 |
with gr.Blocks() as demo:
|
138 |
gr.Markdown("# TIGER: Time-frequency Interleaved Gain Extraction and Reconstruction for Efficient Speech Separation")
|