darshankr's picture
Upload 795 files
287c28c verified
raw
history blame contribute delete
919 Bytes
import torch
import librosa
import numpy as np
class Denoiser:
def __init__(self, orig_sr:int, target_sr:int):
self.orig_sr = orig_sr
self.target_sr = target_sr
self.device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
from asteroid.models import BaseModel as AsteroidBaseModel
self.model = AsteroidBaseModel.from_pretrained("JorisCos/DCCRNet_Libri1Mix_enhsingle_16k").to(self.device)
def denoise(self, wav):
if type(wav) != np.ndarray:
wav = np.array(wav)
if len(wav.shape) > 1:
wav = np.mean(wav, axis=1)
wav = librosa.resample(wav, orig_sr=self.orig_sr, target_sr=self.target_sr)
wav = torch.Tensor(wav.reshape(1, 1, wav.shape[0])).float().to(self.device)
wav = self.model.separate(wav)[0][0] #(batch, channels, time) -> (time)
return wav.cpu().detach().numpy()