Spaces:
Running
Running
update
Browse files- deepdenoiser/app.py +10 -8
deepdenoiser/app.py
CHANGED
|
@@ -6,15 +6,14 @@ from typing import Any, AnyStr, Dict, List, NamedTuple, Union
|
|
| 6 |
|
| 7 |
import numpy as np
|
| 8 |
import requests
|
|
|
|
| 9 |
import tensorflow as tf
|
| 10 |
from fastapi import FastAPI
|
| 11 |
from kafka import KafkaProducer
|
|
|
|
| 12 |
from pydantic import BaseModel
|
| 13 |
-
import scipy
|
| 14 |
from scipy.interpolate import interp1d
|
| 15 |
|
| 16 |
-
from model import UNet
|
| 17 |
-
|
| 18 |
tf.compat.v1.disable_eager_execution()
|
| 19 |
tf.compat.v1.logging.set_verbosity(tf.compat.v1.logging.ERROR)
|
| 20 |
PROJECT_ROOT = os.path.realpath(os.path.join(os.path.dirname(__file__), ".."))
|
|
@@ -105,7 +104,6 @@ def normalize_batch(data, window=200):
|
|
| 105 |
|
| 106 |
|
| 107 |
def get_prediction(meta):
|
| 108 |
-
|
| 109 |
FS = 100
|
| 110 |
NPERSEG = 30
|
| 111 |
NFFT = 60
|
|
@@ -125,7 +123,7 @@ def get_prediction(meta):
|
|
| 125 |
|
| 126 |
# sos = scipy.signal.butter(4, 0.1, 'high', fs=100, output='sos') ## for stability of long sequence
|
| 127 |
# vec = scipy.signal.sosfilt(sos, vec)
|
| 128 |
-
f, t, tmp_signal = scipy.signal.stft(vec, fs=FS, nperseg=NPERSEG, nfft=NFFT, boundary=
|
| 129 |
noisy_signal = np.stack([tmp_signal.real, tmp_signal.imag], axis=-1) # [batch * chn, nf, nt, 2]
|
| 130 |
noisy_signal[np.isnan(noisy_signal)] = 0
|
| 131 |
noisy_signal[np.isinf(noisy_signal)] = 0
|
|
@@ -139,7 +137,7 @@ def get_prediction(meta):
|
|
| 139 |
fs=FS,
|
| 140 |
nperseg=NPERSEG,
|
| 141 |
nfft=NFFT,
|
| 142 |
-
boundary=
|
| 143 |
)
|
| 144 |
# _, denoised_noise = scipy.signal.istft(
|
| 145 |
# (noisy_signal[..., 0] + noisy_signal[..., 1] * 1j) * preds[..., 1],
|
|
@@ -169,7 +167,6 @@ class Data(BaseModel):
|
|
| 169 |
|
| 170 |
@app.post("/predict")
|
| 171 |
def predict(data: Data):
|
| 172 |
-
|
| 173 |
denoised = get_prediction(data)
|
| 174 |
|
| 175 |
return denoised
|
|
@@ -177,4 +174,9 @@ def predict(data: Data):
|
|
| 177 |
|
| 178 |
@app.get("/healthz")
|
| 179 |
def healthz():
|
| 180 |
-
return {"status": "ok"}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 6 |
|
| 7 |
import numpy as np
|
| 8 |
import requests
|
| 9 |
+
import scipy
|
| 10 |
import tensorflow as tf
|
| 11 |
from fastapi import FastAPI
|
| 12 |
from kafka import KafkaProducer
|
| 13 |
+
from model import UNet
|
| 14 |
from pydantic import BaseModel
|
|
|
|
| 15 |
from scipy.interpolate import interp1d
|
| 16 |
|
|
|
|
|
|
|
| 17 |
tf.compat.v1.disable_eager_execution()
|
| 18 |
tf.compat.v1.logging.set_verbosity(tf.compat.v1.logging.ERROR)
|
| 19 |
PROJECT_ROOT = os.path.realpath(os.path.join(os.path.dirname(__file__), ".."))
|
|
|
|
| 104 |
|
| 105 |
|
| 106 |
def get_prediction(meta):
|
|
|
|
| 107 |
FS = 100
|
| 108 |
NPERSEG = 30
|
| 109 |
NFFT = 60
|
|
|
|
| 123 |
|
| 124 |
# sos = scipy.signal.butter(4, 0.1, 'high', fs=100, output='sos') ## for stability of long sequence
|
| 125 |
# vec = scipy.signal.sosfilt(sos, vec)
|
| 126 |
+
f, t, tmp_signal = scipy.signal.stft(vec, fs=FS, nperseg=NPERSEG, nfft=NFFT, boundary="zeros")
|
| 127 |
noisy_signal = np.stack([tmp_signal.real, tmp_signal.imag], axis=-1) # [batch * chn, nf, nt, 2]
|
| 128 |
noisy_signal[np.isnan(noisy_signal)] = 0
|
| 129 |
noisy_signal[np.isinf(noisy_signal)] = 0
|
|
|
|
| 137 |
fs=FS,
|
| 138 |
nperseg=NPERSEG,
|
| 139 |
nfft=NFFT,
|
| 140 |
+
boundary="zeros",
|
| 141 |
)
|
| 142 |
# _, denoised_noise = scipy.signal.istft(
|
| 143 |
# (noisy_signal[..., 0] + noisy_signal[..., 1] * 1j) * preds[..., 1],
|
|
|
|
| 167 |
|
| 168 |
@app.post("/predict")
|
| 169 |
def predict(data: Data):
|
|
|
|
| 170 |
denoised = get_prediction(data)
|
| 171 |
|
| 172 |
return denoised
|
|
|
|
| 174 |
|
| 175 |
@app.get("/healthz")
|
| 176 |
def healthz():
|
| 177 |
+
return {"status": "ok"}
|
| 178 |
+
|
| 179 |
+
|
| 180 |
+
@app.get("/")
|
| 181 |
+
def read_root():
|
| 182 |
+
return {"Hello": "DeepDenoiser!"}
|