in svoice/models/swave.py [0:0]
def __init__(self, N, L, H, R, C, sr, segment, input_normalize):
super(SWave, self).__init__()
# hyper-parameter
self.N, self.L, self.H, self.R, self.C, self.sr, self.segment = N, L, H, R, C, sr, segment
self.input_normalize = input_normalize
self.context_len = 2 * self.sr / 1000
self.context = int(self.sr * self.context_len / 1000)
self.layer = self.R
self.filter_dim = self.context * 2 + 1
self.num_spk = self.C
# similar to dprnn paper, setting chancksize to sqrt(2*L)
self.segment_size = int(
np.sqrt(2 * self.sr * self.segment / (self.L/2)))
# model sub-networks
self.encoder = Encoder(L, N)
self.decoder = Decoder(L)
self.separator = Separator(self.filter_dim + self.N, self.N, self.H,
self.filter_dim, self.num_spk, self.layer, self.segment_size, self.input_normalize)
# init
for p in self.parameters():
if p.dim() > 1:
nn.init.xavier_normal_(p)