Spaces:
Running
Running
Hendrik Schroeter
commited on
Commit
•
b64ea7b
1
Parent(s):
9b336fb
Update to df3, improve cleanup
Browse files
app.py
CHANGED
@@ -3,7 +3,7 @@ import math
|
|
3 |
import os
|
4 |
import tempfile
|
5 |
import time
|
6 |
-
from typing import Optional, Tuple, Union
|
7 |
|
8 |
import gradio as gr
|
9 |
import matplotlib.pyplot as plt
|
@@ -19,7 +19,7 @@ from df.enhance import enhance, init_df, load_audio, save_audio
|
|
19 |
from df.io import resample
|
20 |
|
21 |
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
|
22 |
-
model, df, _ = init_df(
|
23 |
model = model.to(device=device).eval()
|
24 |
|
25 |
fig_noisy: plt.Figure
|
@@ -100,7 +100,7 @@ def load_audio_gradio(
|
|
100 |
return audio, meta
|
101 |
|
102 |
|
103 |
-
def demo_fn(speech_upl: str, noise_type: str, snr: int, mic_input: str):
|
104 |
if mic_input:
|
105 |
speech_upl = mic_input
|
106 |
sr = config("sr", 48000, int, section="df")
|
@@ -147,16 +147,10 @@ def demo_fn(speech_upl: str, noise_type: str, snr: int, mic_input: str):
|
|
147 |
ax_enh.clear()
|
148 |
noisy_im = spec_im(sample, sr=sr, figure=fig_noisy, ax=ax_noisy)
|
149 |
enh_im = spec_im(enhanced, sr=sr, figure=fig_enh, ax=ax_enh)
|
150 |
-
|
151 |
-
if
|
152 |
-
|
153 |
-
|
154 |
-
is_old = (time.time() - os.path.getmtime(f)) / 3600 > 24 * days
|
155 |
-
if is_old and f not in (enhanced_wav, noisy_wav):
|
156 |
-
try:
|
157 |
-
os.remove(f)
|
158 |
-
except Exception as e:
|
159 |
-
print(f"failed to remove file {f}: {e}")
|
160 |
return noisy_wav, noisy_im, enhanced_wav, enh_im
|
161 |
|
162 |
|
@@ -257,6 +251,19 @@ def spec_im(
|
|
257 |
return Image.frombytes("RGB", figure.canvas.get_width_height(), figure.canvas.tostring_rgb())
|
258 |
|
259 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
260 |
def toggle(choice):
|
261 |
if choice == "mic":
|
262 |
return gr.update(visible=True, value=None), gr.update(visible=False, value=None)
|
@@ -320,5 +327,5 @@ with gr.Blocks() as demo:
|
|
320 |
),
|
321 |
gr.Markdown(open("usage.md").read())
|
322 |
|
323 |
-
|
324 |
demo.launch(enable_queue=True)
|
|
|
3 |
import os
|
4 |
import tempfile
|
5 |
import time
|
6 |
+
from typing import List, Optional, Tuple, Union
|
7 |
|
8 |
import gradio as gr
|
9 |
import matplotlib.pyplot as plt
|
|
|
19 |
from df.io import resample
|
20 |
|
21 |
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
|
22 |
+
model, df, _ = init_df(config_allow_defaults=True)
|
23 |
model = model.to(device=device).eval()
|
24 |
|
25 |
fig_noisy: plt.Figure
|
|
|
100 |
return audio, meta
|
101 |
|
102 |
|
103 |
+
def demo_fn(speech_upl: str, noise_type: str, snr: int, mic_input: Optional[str] = None):
|
104 |
if mic_input:
|
105 |
speech_upl = mic_input
|
106 |
sr = config("sr", 48000, int, section="df")
|
|
|
147 |
ax_enh.clear()
|
148 |
noisy_im = spec_im(sample, sr=sr, figure=fig_noisy, ax=ax_noisy)
|
149 |
enh_im = spec_im(enhanced, sr=sr, figure=fig_enh, ax=ax_enh)
|
150 |
+
filter = [speech_upl, noisy_wav, enhanced_wav]
|
151 |
+
if mic_input is not None and mic_input != "":
|
152 |
+
filter.append(mic_input)
|
153 |
+
cleanup_tmp(filter)
|
|
|
|
|
|
|
|
|
|
|
|
|
154 |
return noisy_wav, noisy_im, enhanced_wav, enh_im
|
155 |
|
156 |
|
|
|
251 |
return Image.frombytes("RGB", figure.canvas.get_width_height(), figure.canvas.tostring_rgb())
|
252 |
|
253 |
|
254 |
+
def cleanup_tmp(filter: List[str] = [], hours_keep=2):
|
255 |
+
# Cleanup some old wav files
|
256 |
+
if os.path.exists("/tmp"):
|
257 |
+
for f in glob.glob("/tmp/*"):
|
258 |
+
is_old = (time.time() - os.path.getmtime(f)) / 3600 > hours_keep
|
259 |
+
if is_old and f not in filter:
|
260 |
+
try:
|
261 |
+
os.remove(f)
|
262 |
+
logger.info(f"Removed file {f}")
|
263 |
+
except Exception as e:
|
264 |
+
logger.warning(f"failed to remove file {f}: {e}")
|
265 |
+
|
266 |
+
|
267 |
def toggle(choice):
|
268 |
if choice == "mic":
|
269 |
return gr.update(visible=True, value=None), gr.update(visible=False, value=None)
|
|
|
327 |
),
|
328 |
gr.Markdown(open("usage.md").read())
|
329 |
|
330 |
+
cleanup_tmp()
|
331 |
demo.launch(enable_queue=True)
|