From ab26d543a0bca7501b0318e80669792f85281f72 Mon Sep 17 00:00:00 2001 From: philgzl Date: Thu, 20 Apr 2023 10:30:07 +0200 Subject: [PATCH 1/8] Update for near perfect correlation with pystoi --- torch_stoi/stoi.py | 212 ++++++++++++++++++++++++++++++++------------- 1 file changed, 150 insertions(+), 62 deletions(-) diff --git a/torch_stoi/stoi.py b/torch_stoi/stoi.py index 7181c00..1a14a1f 100755 --- a/torch_stoi/stoi.py +++ b/torch_stoi/stoi.py @@ -76,7 +76,7 @@ def __init__(self, self.resample = torchaudio.transforms.Resample( orig_freq=self.sample_rate, new_freq=FS, - resampling_method='sinc_interpolation', + resampling_method='sinc_interp_hann', ) self.win_len = (N_FRAME * sample_rate) // FS self.nfft = 2 * self.win_len @@ -116,70 +116,116 @@ def forward(self, est_targets: torch.Tensor, est_targets.view(-1, wav_len), targets.view(-1, wav_len), ).view(inner) + batch_size = targets.shape[0] + if self.do_resample and self.sample_rate != FS: targets = self.resample(targets) est_targets = self.resample(est_targets) + if self.use_vad: + targets, est_targets, mask = self.remove_silent_frames( + targets, est_targets, self.dyn_range, self.win_len, + self.win_len//2 + ) + # Remove the last mask frame to replicate a bug in pystoi + # The bug is caused by a matlab-like indexing which removes a frame + # See https://github.com/mpariente/pystoi/issues/32 + mask, _ = mask.sort(-1, descending=True) + mask = mask[..., 1:] + # Here comes the real computation, take STFT x_spec = self.stft(targets, self.win, self.nfft, overlap=2) y_spec = self.stft(est_targets, self.win, self.nfft, overlap=2) + # Reapply the mask because of overlap in STFT + if self.use_vad: + x_spec *= mask.unsqueeze(1) + y_spec *= mask.unsqueeze(1) + + """Uncommenting the following lines and the last block at the end + allows to replicate the pystoi behavior when less than N speech frames + are detected + """ + # # Ensure at least 30 frames for intermediate intelligibility + # if self.use_vad: + # not_enough = mask.sum(-1) < self.intel_frames + # if not_enough.any(): + # import warnings + # warnings.warn('Not enough STFT frames to compute intermediate ' + # 'intelligibility measure after removing silent ' + # 'frames. Returning 1e-5. Please check you wav ' + # 'files', RuntimeWarning) + # if not_enough.all(): + # return torch.full(batch_size, 1e-5) + # x_spec = x_spec[~not_enough] + # y_spec = y_spec[~not_enough] + # mask = mask[~not_enough] + # Apply OB matrix to the spectrograms as in Eq. (1) - x_tob = torch.matmul(self.OBM, torch.norm(x_spec, 2, -1) ** 2 + EPS).pow(0.5) - y_tob = torch.matmul(self.OBM, torch.norm(y_spec, 2, -1) ** 2 + EPS).pow(0.5) + x_tob = torch.matmul(self.OBM, x_spec.abs().pow(2) + EPS).sqrt() + y_tob = torch.matmul(self.OBM, y_spec.abs().pow(2) + EPS).sqrt() + # Perform N-frame segmentation --> (batch, 15, N, n_chunks) - batch = targets.shape[0] x_seg = unfold(x_tob.unsqueeze(2), kernel_size=(1, self.intel_frames), - stride=(1, 1)).view(batch, x_tob.shape[1], N, -1) + stride=(1, 1)).view(batch_size, x_tob.shape[1], self.intel_frames, -1) y_seg = unfold(y_tob.unsqueeze(2), kernel_size=(1, self.intel_frames), - stride=(1, 1)).view(batch, y_tob.shape[1], N, -1) - # Compute mask if use_vad + stride=(1, 1)).view(batch_size, y_tob.shape[1], self.intel_frames, -1) + # Reapply the mask because of overlap in N-frame segmentation if self.use_vad: - # Detech silent frames (boolean mask of shape (batch, 1, frame_idx) - mask = self.detect_silent_frames(targets, self.dyn_range, - self.win_len, self.win_len // 2) - mask = pad(mask, [0, x_tob.shape[-1] - mask.shape[-1]]) - # Unfold on the mask, to float and mean per frame. - mask_f = unfold(mask.unsqueeze(2).float(), - kernel_size=(1, self.intel_frames), - stride=(1, 1)).view(batch, 1, N, -1) - else: - mask_f = None + mask = mask[..., self.intel_frames-1:] + x_seg *= mask.unsqueeze(1).unsqueeze(2) + y_seg *= mask.unsqueeze(1).unsqueeze(2) if self.extended: # Normalize rows and columns of intermediate intelligibility frames - x_n = self.rowcol_norm(x_seg, mask=mask_f) - y_n = self.rowcol_norm(y_seg, mask=mask_f) + # No need to pass the mask because zeros do not affect statistics + x_n = self.rowcol_norm(x_seg) + y_n = self.rowcol_norm(y_seg) corr_comp = x_n * y_n - correction = self.intel_frames * x_n.shape[-1] + corr_comp = corr_comp.sum(1) + else: # Find normalization constants and normalize - norm_const = (masked_norm(x_seg, dim=2, keepdim=True, mask=mask_f) / - (masked_norm(y_seg, dim=2, keepdim=True, mask=mask_f) - + EPS)) + # No need to pass the mask because zeros do not affect statistics + norm_const = ( + x_seg.norm(p=2, dim=2, keepdim=True) / + (y_seg.norm(p=2, dim=2, keepdim=True) + EPS) + ) y_seg_normed = y_seg * norm_const # Clip as described in [1] clip_val = 10 ** (-self.beta / 20) y_prim = torch.min(y_seg_normed, x_seg * (1 + clip_val)) # Mean/var normalize vectors - y_prim = meanvar_norm(y_prim, dim=2, mask=mask_f) - x_seg = meanvar_norm(x_seg, dim=2, mask=mask_f) + # No need to pass the mask because zeros do not affect statistics + y_prim = y_prim - y_prim.mean(2, keepdim=True) + x_seg = x_seg - x_seg.mean(2, keepdim=True) + y_prim = y_prim / (y_prim.norm(p=2, dim=2, keepdim=True) + EPS) + x_seg = x_seg / (x_seg.norm(p=2, dim=2, keepdim=True) + EPS) # Matrix with entries summing to sum of correlations of vectors corr_comp = y_prim * x_seg - # J, M as in [1], eq.6 - correction = x_seg.shape[1] * x_seg.shape[-1] + corr_comp = corr_comp.sum(2) # Compute average (E)STOI w. or w/o VAD. - sum_over = list(range(1, x_seg.ndim)) # Keep batch dim + output = corr_comp.mean(1) if self.use_vad: - corr_comp = corr_comp * mask_f - correction = correction * mask_f.mean() + EPS - # Return -(E)STOI to optimize for - return - torch.sum(corr_comp, dim=sum_over) / correction + output = output.sum(-1)/mask.sum(-1) + else: + output = output.mean(-1) + + """Uncomment this to replicate the pystoi behavior when less than N + speech frames are detected + """ + # if np.any(not_enough): + # output_ = torch.empty(batch_size) + # output_[not_enough] = 1e-5 + # output_[~not_enough] = output + # output = output_ + + return - output @staticmethod - def detect_silent_frames(x, dyn_range, framelen, hop): + def remove_silent_frames(x, y, dyn_range, framelen, hop): """ Detects silent frames on input tensor. A frame is excluded if its energy is lower than max(energy) - dyn_range @@ -192,55 +238,97 @@ def detect_silent_frames(x, dyn_range, framelen, hop): Returns: torch.BoolTensor, framewise mask. """ + window = torch.from_numpy(np.hanning(framelen + 2)[1:-1]) + x_frames = unfold(x[:, None, None, :], kernel_size=(1, framelen), - stride=(1, hop))[..., :-1] + stride=(1, hop)) + y_frames = unfold(y[:, None, None, :], kernel_size=(1, framelen), + stride=(1, hop)) + x_frames *= window[:, None] + y_frames *= window[:, None] + # Compute energies in dB x_energies = 20 * torch.log10(torch.norm(x_frames, dim=1, keepdim=True) + EPS) # Find boolean mask of energies lower than dynamic_range dB # with respect to maximum clean speech energy frame - mask = (torch.max(x_energies, dim=2, keepdim=True)[0] - dyn_range - - x_energies) < 0 - return mask + mask = (x_energies.amax(2, keepdim=True) - dyn_range - x_energies) < 0 + mask = mask.squeeze(1) + + # Remove silent frames and pad with zeroes + x_frames = x_frames.permute(0, 2, 1) + y_frames = y_frames.permute(0, 2, 1) + x_frames = _mask_audio(x_frames, mask) + y_frames = _mask_audio(y_frames, mask) + + x_sil = _overlap_and_add(x_frames, hop) + y_sil = _overlap_and_add(y_frames, hop) + x_frames = x_frames.permute(0, 2, 1) + y_frames = y_frames.permute(0, 2, 1) + + return x_sil, y_sil, mask @staticmethod def stft(x, win, fft_size, overlap=4): + """We can't use torch.stft: + - It's buggy with center=False as it discards the last frame + - It pads the frame left and right before taking the fft instead + of padding right + - Probably other reasons; torch.stft is very broken and too abstract + Instead we unfold and take rfft like grown-ups. This gives the same + result as pystoi.utils.stft. + """ win_len = win.shape[0] hop = int(win_len / overlap) - # Last frame not taken because NFFT size is larger, torch bug IMO. - x_padded = torch.nn.functional.pad(x, pad=[0, hop]) - # From torch 1.8.0 - try: - return torch.stft(x_padded, fft_size, hop_length=hop, window=win, - center=False, win_length=win_len, return_complex=False) - # Under 1.8.0 - except TypeError: - return torch.stft(x_padded, fft_size, hop_length=hop, window=win, - center=False, win_length=win_len) + frames = unfold(x[:, None, None, :], kernel_size=(1, win_len), + stride=(1, hop)) + # Remove last frame to replicate bug in pystoi + # See https://github.com/mpariente/pystoi/issues/32 + frames = frames[..., :-1] + return torch.fft.rfft(frames*win[:, None], n=fft_size, dim=1) @staticmethod - def rowcol_norm(x, mask=None): + def rowcol_norm(x): """ Mean/variance normalize axis 2 and 1 of input vector""" for dim in [2, 1]: - x = meanvar_norm(x, mask=mask, dim=dim) + x = x - x.mean(dim, keepdim=True) + x = x / (x.norm(p=2, dim=dim, keepdim=True) + EPS) return x -def meanvar_norm(x, mask=None, dim=-1): - x = x - masked_mean(x, dim=dim, mask=mask, keepdim=True) - x = x / (masked_norm(x, p=2, dim=dim, keepdim=True, mask=mask) + EPS) - return x +def _overlap_and_add(x_frames, hop): + batch_size, num_frames, framelen = x_frames.shape + # Compute the number of segments, per frame. + segments = -(-framelen // hop) # Divide and round up. + # Pad the framelen dimension to segments * hop and add n=segments frames + signal = pad( + x_frames, (0, segments * hop - framelen, 0, segments) + ) + + # Reshape to a 4D tensor, splitting the framelen dimension in two + signal = signal.reshape((batch_size, num_frames + segments, segments, hop)) + # Transpose dimensions so shape = (batch, segments, frame+segments, hop) + signal = signal.permute(0, 2, 1, 3) + # Reshape so that signal.shape = (batch, segments * (frame+segments), hop) + signal = signal.reshape((batch_size, -1, hop)) -def masked_mean(x, dim=-1, mask=None, keepdim=False): - if mask is None: - return x.mean(dim=dim, keepdim=keepdim) - return (x * mask).sum(dim=dim, keepdim=keepdim) / ( - mask.sum(dim=dim, keepdim=keepdim) + EPS + # Now behold the magic!! Remove last n=segments elements from second axis + signal = signal[:, :-segments] + # Reshape to (batch, segments, frame+segments-1, hop) + signal = signal.reshape( + (batch_size, segments, num_frames + segments - 1, hop) ) + # This has introduced a shift by one in all rows + + # Now, reduce over the columns and flatten the array to achieve the result + signal = signal.sum(axis=1) + end = (num_frames - 1) * hop + framelen + signal = signal.reshape((batch_size, -1))[:end] + return signal -def masked_norm(x, p=2, dim=-1, mask=None, keepdim=False): - if mask is None: - return torch.norm(x, p=p, dim=dim, keepdim=keepdim) - return torch.norm(x * mask, p=p, dim=dim, keepdim=keepdim) +def _mask_audio(x, mask): + return torch.stack([ + pad(xi[mi], (0, 0, 0, len(xi) - mi.sum())) for xi, mi in zip(x, mask) + ]) From 4d3a2299abf797e57b6749ac6a312b7f61ca52c5 Mon Sep 17 00:00:00 2001 From: philgzl Date: Mon, 24 Apr 2023 13:41:11 +0200 Subject: [PATCH 2/8] Revert resampling_method update --- torch_stoi/stoi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/torch_stoi/stoi.py b/torch_stoi/stoi.py index 1a14a1f..1a950b5 100755 --- a/torch_stoi/stoi.py +++ b/torch_stoi/stoi.py @@ -76,7 +76,7 @@ def __init__(self, self.resample = torchaudio.transforms.Resample( orig_freq=self.sample_rate, new_freq=FS, - resampling_method='sinc_interp_hann', + resampling_method='sinc_interpolation', ) self.win_len = (N_FRAME * sample_rate) // FS self.nfft = 2 * self.win_len From 5470b7d26798dd933ccc11a48aa85a2a3ccc161f Mon Sep 17 00:00:00 2001 From: philgzl Date: Mon, 24 Apr 2023 13:43:34 +0200 Subject: [PATCH 3/8] Fix comments --- torch_stoi/stoi.py | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/torch_stoi/stoi.py b/torch_stoi/stoi.py index 1a950b5..fc6427f 100755 --- a/torch_stoi/stoi.py +++ b/torch_stoi/stoi.py @@ -127,8 +127,7 @@ def forward(self, est_targets: torch.Tensor, targets, est_targets, self.dyn_range, self.win_len, self.win_len//2 ) - # Remove the last mask frame to replicate a bug in pystoi - # The bug is caused by a matlab-like indexing which removes a frame + # Remove the last mask frame to replicate pystoi behavior # See https://github.com/mpariente/pystoi/issues/32 mask, _ = mask.sort(-1, descending=True) mask = mask[..., 1:] @@ -274,15 +273,14 @@ def stft(x, win, fft_size, overlap=4): - It's buggy with center=False as it discards the last frame - It pads the frame left and right before taking the fft instead of padding right - - Probably other reasons; torch.stft is very broken and too abstract - Instead we unfold and take rfft like grown-ups. This gives the same - result as pystoi.utils.stft. + Instead we unfold and take rfft. This gives the same result as + pystoi.utils.stft. """ win_len = win.shape[0] hop = int(win_len / overlap) frames = unfold(x[:, None, None, :], kernel_size=(1, win_len), stride=(1, hop)) - # Remove last frame to replicate bug in pystoi + # Remove last frame to replicate pystoi behavior # See https://github.com/mpariente/pystoi/issues/32 frames = frames[..., :-1] return torch.fft.rfft(frames*win[:, None], n=fft_size, dim=1) From 3f9fbdb8e568762ac0b81476208d3c7391d9c184 Mon Sep 17 00:00:00 2001 From: philgzl Date: Mon, 24 Apr 2023 13:44:29 +0200 Subject: [PATCH 4/8] Fix CUDA processing --- torch_stoi/stoi.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/torch_stoi/stoi.py b/torch_stoi/stoi.py index fc6427f..bfa1eb0 100755 --- a/torch_stoi/stoi.py +++ b/torch_stoi/stoi.py @@ -124,7 +124,7 @@ def forward(self, est_targets: torch.Tensor, if self.use_vad: targets, est_targets, mask = self.remove_silent_frames( - targets, est_targets, self.dyn_range, self.win_len, + targets, est_targets, self.dyn_range, self.win, self.win_len, self.win_len//2 ) # Remove the last mask frame to replicate pystoi behavior @@ -224,7 +224,7 @@ def forward(self, est_targets: torch.Tensor, return - output @staticmethod - def remove_silent_frames(x, y, dyn_range, framelen, hop): + def remove_silent_frames(x, y, dyn_range, window, framelen, hop): """ Detects silent frames on input tensor. A frame is excluded if its energy is lower than max(energy) - dyn_range @@ -237,8 +237,6 @@ def remove_silent_frames(x, y, dyn_range, framelen, hop): Returns: torch.BoolTensor, framewise mask. """ - window = torch.from_numpy(np.hanning(framelen + 2)[1:-1]) - x_frames = unfold(x[:, None, None, :], kernel_size=(1, framelen), stride=(1, hop)) y_frames = unfold(y[:, None, None, :], kernel_size=(1, framelen), @@ -265,7 +263,7 @@ def remove_silent_frames(x, y, dyn_range, framelen, hop): x_frames = x_frames.permute(0, 2, 1) y_frames = y_frames.permute(0, 2, 1) - return x_sil, y_sil, mask + return x_sil, y_sil, mask.long() @staticmethod def stft(x, win, fft_size, overlap=4): From 67c21ae697f895b68b0eb0dbc1eaaeb1fadc877d Mon Sep 17 00:00:00 2001 From: philgzl Date: Mon, 24 Apr 2023 13:45:55 +0200 Subject: [PATCH 5/8] Update plots --- plots/16kHzExtendedwithVAD.png | Bin 143619 -> 77782 bytes plots/16kHzExtendedwoVAD.png | Bin 161688 -> 144170 bytes plots/16kHzwithVAD.png | Bin 113601 -> 69016 bytes plots/16kHzwoVAD.png | Bin 145952 -> 124844 bytes plots/8kHzExtendedwithVAD.png | Bin 197214 -> 76573 bytes plots/8kHzExtendedwoVAD.png | Bin 183412 -> 144794 bytes plots/8kHzwithVAD.png | Bin 159950 -> 68179 bytes plots/8kHzwoVAD.png | Bin 153567 -> 123660 bytes 8 files changed, 0 insertions(+), 0 deletions(-) diff --git a/plots/16kHzExtendedwithVAD.png b/plots/16kHzExtendedwithVAD.png index 83ff77ae7a4a361b907b5b4114bd7152ab91768f..fd04a10d9fe6af82a43756df3d5b2127eff8ffa0 100755 GIT binary patch literal 77782 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 Fe*o8)+t~mB literal 143619 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

okGEiDwV&42}Y>X&lLM-E5{N$?W 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