BorisovMaksim commited on
Commit
b80b88c
·
1 Parent(s): 685fbad

update app

Browse files
Files changed (2) hide show
  1. app.py +18 -11
  2. denoisers/demucs.py +5 -0
app.py CHANGED
@@ -5,29 +5,34 @@ from pathlib import Path
5
  from denoisers.SpectralGating import SpectralGating
6
  from huggingface_hub import hf_hub_download
7
  from denoisers.demucs import Demucs
8
- import hydra
9
- from omegaconf import DictConfig
10
  import torch
 
 
11
 
12
 
13
 
14
- @hydra.main(version_base=None, config_path="conf", config_name="config")
15
- def run_app(cfg: DictConfig):
16
- model = Demucs(cfg['model'])
17
- model_path = hf_hub_download(repo_id="BorisovMaksim/demucs", filename="Demucs_original_sr_epoch3.pt")
18
- checkpoint = torch.load(model_path)
 
 
19
  model.load_state_dict(checkpoint['model_state_dict'])
20
 
21
  def denoising_transform(audio):
22
- src_path = Path(__file__).parent.resolve() / Path("cache_wav/original/{}.wav".format(str(uuid.uuid4())))
23
- tgt_path = Path(__file__).parent.resolve() / Path("cache_wav/denoised/{}.wav".format(str(uuid.uuid4())))
 
24
  src_path.parent.mkdir(exist_ok=True, parents=True)
25
  tgt_path.parent.mkdir(exist_ok=True, parents=True)
26
  (ffmpeg.input(audio)
27
  .output(src_path.as_posix(), acodec='pcm_s16le', ac=1, ar=22050)
28
  .run()
29
  )
30
- model.predict(audio, tgt_path)
 
 
31
  return tgt_path
32
 
33
  demo = gr.Interface(
@@ -45,5 +50,7 @@ def run_app(cfg: DictConfig):
45
  demo.launch()
46
 
47
  if __name__ == "__main__":
48
- run_app()
 
 
49
 
 
5
  from denoisers.SpectralGating import SpectralGating
6
  from huggingface_hub import hf_hub_download
7
  from denoisers.demucs import Demucs
 
 
8
  import torch
9
+ import torchaudio
10
+ import yaml
11
 
12
 
13
 
14
+ def run_app(model_filename, config_filename):
15
+ model_path = hf_hub_download(repo_id="BorisovMaksim/demucs", filename=model_filename)
16
+ config_path = hf_hub_download(repo_id="BorisovMaksim/demucs", filename=config_filename)
17
+ with open(config_path, 'r') as f:
18
+ config = yaml.safe_load(f)
19
+ model = Demucs(config['demucs'])
20
+ checkpoint = torch.load(model_path, map_location=torch.device('cpu'))
21
  model.load_state_dict(checkpoint['model_state_dict'])
22
 
23
  def denoising_transform(audio):
24
+ # Path(__file__).parent.resolve()
25
+ src_path = Path("cache_wav/original/{}.wav".format(str(uuid.uuid4())))
26
+ tgt_path = Path("cache_wav/denoised/{}.wav".format(str(uuid.uuid4())))
27
  src_path.parent.mkdir(exist_ok=True, parents=True)
28
  tgt_path.parent.mkdir(exist_ok=True, parents=True)
29
  (ffmpeg.input(audio)
30
  .output(src_path.as_posix(), acodec='pcm_s16le', ac=1, ar=22050)
31
  .run()
32
  )
33
+ wav, rate = torchaudio.load(audio)
34
+ reduced_noise = model.predict(wav)
35
+ torchaudio.save(tgt_path, reduced_noise, rate)
36
  return tgt_path
37
 
38
  demo = gr.Interface(
 
50
  demo.launch()
51
 
52
  if __name__ == "__main__":
53
+ model_filename = "original_sr/Demucs_original_sr_epoch3.pt"
54
+ config_filename = "original_sr/config.yaml"
55
+ run_app(model_filename, config_filename)
56
 
denoisers/demucs.py CHANGED
@@ -83,3 +83,8 @@ class Demucs(torch.nn.Module):
83
  x = decoder(x + outs[i])
84
  x = pad_cut_batch_audio(x, model_input.shape)
85
  return x
 
 
 
 
 
 
83
  x = decoder(x + outs[i])
84
  x = pad_cut_batch_audio(x, model_input.shape)
85
  return x
86
+
87
+ def predict(self, wav):
88
+ prediction = self.forward(torch.reshape(wav, (1, 1, -1)))
89
+ return prediction.detach()[0]
90
+